From 97c1745909561ebb9ed6f7c4d3107d2f60894255 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 31 Oct 2013 04:59:24 -0400 Subject: [PATCH] Revert "[Android] Move the main activity to use Fragments." This is pretty pointless at the moment actually. This reverts commit bfdc1e0e601a85db973adc49215e5c77719e2d7e. - Keeps some modifications to the MainMenuActivity. Most notably the title string retains itself upon orientation changes. - Also fix some bugs in the PreferenceListFragment. Most notably, the handler message not being removed. --- android/phoenix/AndroidManifest.xml | 2 +- .../phoenix/res/layout/main_menu_layout.xml | 12 --- android/phoenix/res/values/strings.xml | 2 +- .../com/retroarch/browser/CoreSelection.java | 1 - .../retroarch/browser/HistorySelection.java | 1 - .../{mainmenu => }/MainMenuActivity.java | 94 ++++++++++++------- .../browser/mainmenu/MainMenuFragment.java | 21 ----- 7 files changed, 62 insertions(+), 71 deletions(-) delete mode 100644 android/phoenix/res/layout/main_menu_layout.xml rename android/phoenix/src/com/retroarch/browser/{mainmenu => }/MainMenuActivity.java (81%) delete mode 100644 android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java diff --git a/android/phoenix/AndroidManifest.xml b/android/phoenix/AndroidManifest.xml index 3fffa73921..b9d2f1061e 100644 --- a/android/phoenix/AndroidManifest.xml +++ b/android/phoenix/AndroidManifest.xml @@ -18,7 +18,7 @@ - + diff --git a/android/phoenix/res/layout/main_menu_layout.xml b/android/phoenix/res/layout/main_menu_layout.xml deleted file mode 100644 index 2136cb2d95..0000000000 --- a/android/phoenix/res/layout/main_menu_layout.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/android/phoenix/res/values/strings.xml b/android/phoenix/res/values/strings.xml index 4fcf64202b..9a043bbaa3 100644 --- a/android/phoenix/res/values/strings.xml +++ b/android/phoenix/res/values/strings.xml @@ -9,10 +9,10 @@ Detect Optimal device settings Extracting assets, please wait … + Asset Extraction RetroArch - Main Menu - Asset Extraction TV Mode Load Core Load Game diff --git a/android/phoenix/src/com/retroarch/browser/CoreSelection.java b/android/phoenix/src/com/retroarch/browser/CoreSelection.java index ad5337bf15..ac4f230875 100644 --- a/android/phoenix/src/com/retroarch/browser/CoreSelection.java +++ b/android/phoenix/src/com/retroarch/browser/CoreSelection.java @@ -1,7 +1,6 @@ package com.retroarch.browser; import com.retroarch.R; -import com.retroarch.browser.mainmenu.MainMenuActivity; import com.retroarch.browser.preferences.util.ConfigFile; import com.retroarch.browser.preferences.util.UserPreferences; diff --git a/android/phoenix/src/com/retroarch/browser/HistorySelection.java b/android/phoenix/src/com/retroarch/browser/HistorySelection.java index 97f7f98199..8fe525614e 100644 --- a/android/phoenix/src/com/retroarch/browser/HistorySelection.java +++ b/android/phoenix/src/com/retroarch/browser/HistorySelection.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.io.InputStreamReader; import com.retroarch.R; -import com.retroarch.browser.mainmenu.MainMenuActivity; import com.retroarch.browser.preferences.util.UserPreferences; import android.app.ListActivity; diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuActivity.java b/android/phoenix/src/com/retroarch/browser/MainMenuActivity.java similarity index 81% rename from android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuActivity.java rename to android/phoenix/src/com/retroarch/browser/MainMenuActivity.java index 2496193249..72e07f6c8e 100644 --- a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuActivity.java +++ b/android/phoenix/src/com/retroarch/browser/MainMenuActivity.java @@ -1,13 +1,10 @@ -package com.retroarch.browser.mainmenu; +package com.retroarch.browser; import java.io.*; import com.retroarch.R; -import com.retroarch.browser.NativeInterface; -import com.retroarch.browser.RetroActivity; import com.retroarch.browser.preferences.util.UserPreferences; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; @@ -19,38 +16,34 @@ import android.media.AudioManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.preference.PreferenceManager; +import android.preference.PreferenceActivity; import android.provider.Settings; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; import android.util.Log; import android.widget.Toast; -/** - * Class representing the {@link FragmentActivity} for the main menu. - */ -public final class MainMenuActivity extends FragmentActivity { +public final class MainMenuActivity extends PreferenceActivity { private static MainMenuActivity instance = null; + private static final int ACTIVITY_LOAD_ROM = 0; + private static final int ACTIVITY_RETROARCH = 1; private static final String TAG = "MainMenu"; + private static String libretro_path; + private static String libretro_name; @Override + @SuppressWarnings("deprecation") public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // Set the content view. This will give us the FrameLayout to switch fragments in and out of. - setContentView(R.layout.main_menu_layout); - - // Show the main UI for this FragmentActivity. - final Fragment mainMenuFragment = new MainMenuFragment(); - final FragmentManager fm = getSupportFragmentManager(); - fm.beginTransaction().replace(R.id.content_frame, mainMenuFragment).commit(); + // Load the main menu XML. + addPreferencesFromResource(R.xml.main_menu); // Cache an instance of this class (TODO: Bad practice, kill this somehow). instance = this; // Get libretro path and name. SharedPreferences prefs = UserPreferences.getPreferences(this); + libretro_path = prefs.getString("libretro_path", getApplicationInfo().dataDir + "/cores"); + libretro_name = prefs.getString("libretro_name", getString(R.string.no_core)); // Bind audio stream to hardware controls. setVolumeControlStream(AudioManager.STREAM_MUSIC); @@ -73,7 +66,8 @@ public final class MainMenuActivity extends FragmentActivity { Intent startedByIntent = getIntent(); if (startedByIntent.getStringExtra("ROM") != null && startedByIntent.getStringExtra("LIBRETRO") != null) { if (savedInstanceState == null || !savedInstanceState.getBoolean("romexec")) - loadRomExternal(startedByIntent.getStringExtra("ROM"), startedByIntent.getStringExtra("LIBRETRO")); + loadRomExternal(startedByIntent.getStringExtra("ROM"), + startedByIntent.getStringExtra("LIBRETRO")); else finish(); } @@ -111,7 +105,7 @@ public final class MainMenuActivity extends FragmentActivity { cacheStream.close(); if (currentCacheVersion == version) { - Log.i(TAG, "Assets already extracted, skipping..."); + Log.i("ASSETS", "Assets already extracted, skipping..."); return true; } } @@ -154,7 +148,7 @@ public final class MainMenuActivity extends FragmentActivity { final Handler handler = new Handler(); dialog.setContentView(R.layout.assets); dialog.setCancelable(false); - dialog.setTitle(R.string.asset_extraction); + dialog.setTitle("Asset extraction"); // Java is fun :) Thread assetsThread = new Thread(new Runnable() { @@ -175,8 +169,8 @@ public final class MainMenuActivity extends FragmentActivity { public void setModule(String core_path, String core_name) { UserPreferences.updateConfigFile(this); - String libretro_path = core_path; - String libretro_name = core_name; + libretro_path = core_path; + libretro_name = core_name; SharedPreferences prefs = UserPreferences.getPreferences(this); SharedPreferences.Editor edit = prefs.edit(); @@ -186,6 +180,7 @@ public final class MainMenuActivity extends FragmentActivity { // Set the title section to contain the name of the selected core. setCoreTitle(libretro_name); + } public void setCoreTitle(String core_name) { @@ -313,15 +308,10 @@ public final class MainMenuActivity extends FragmentActivity { @Override public void startActivity(Intent intent) { - final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(this); - final String corePath = sPrefs.getString("libretro_path", ""); - - // If ROMActivity is attempting to be accessed. - if (intent.getComponent().getClassName().equals("com.retroarch.browser.diractivities.ROMActivity")) { - // If the path for a core hasn't been set yet, prompt the user to do so. - // otherwise, launch the activity to browse for a ROM to load. - if (!new File(corePath).isDirectory()) { - startActivity(intent); + if (intent.getComponent().getClassName() + .equals("com.retroarch.browser.diractivities.ROMActivity")) { + if (!new File(libretro_path).isDirectory()) { + super.startActivityForResult(intent, ACTIVITY_LOAD_ROM); } else { Toast.makeText(this, R.string.load_a_core_first, Toast.LENGTH_SHORT).show(); } @@ -330,12 +320,48 @@ public final class MainMenuActivity extends FragmentActivity { } } + @Override + protected void onActivityResult(int reqCode, int resCode, Intent data) { + switch (reqCode) { + case ACTIVITY_LOAD_ROM: { + if (data.getStringExtra("PATH") != null) { + UserPreferences.updateConfigFile(this); + String current_ime = Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); + Toast.makeText(this,String.format(getString(R.string.loading_data), data.getStringExtra("PATH")), Toast.LENGTH_SHORT).show(); + Intent myIntent = new Intent(this, RetroActivity.class); + myIntent.putExtra("ROM", data.getStringExtra("PATH")); + myIntent.putExtra("LIBRETRO", libretro_path); + myIntent.putExtra("CONFIGFILE", UserPreferences.getDefaultConfigPath(this)); + myIntent.putExtra("IME", current_ime); + startActivityForResult(myIntent, ACTIVITY_RETROARCH); + } + break; + } + + case ACTIVITY_RETROARCH: { + Log.i(TAG, "RetroArch finished running."); + UserPreferences.readbackConfigFile(this); + break; + } + } + } + @Override protected void onSaveInstanceState(Bundle data) { super.onSaveInstanceState(data); + data.putCharSequence("title", getTitle()); data.putBoolean("romexec", true); } + @Override + protected void onRestoreInstanceState(Bundle state) { + super.onRestoreInstanceState(state); + + if (state != null) { + setTitle(state.getCharSequence("title")); + } + } + private void loadRomExternal(String rom, String core) { UserPreferences.updateConfigFile(this); String current_ime = Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); @@ -347,4 +373,4 @@ public final class MainMenuActivity extends FragmentActivity { myIntent.putExtra("IME", current_ime); startActivity(myIntent); } -} +} \ No newline at end of file diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java deleted file mode 100644 index abd423abdf..0000000000 --- a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.retroarch.browser.mainmenu; - -import android.os.Bundle; - -import com.retroarch.R; -import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment; - -/** - * Fragment that represents the main menu. - */ -public class MainMenuFragment extends PreferenceListFragment -{ - @Override - public void onCreate(Bundle savedInstanceState) - { - super.onCreate(savedInstanceState); - - // Load the XML for the main menu. - this.addPreferencesFromResource(R.xml.main_menu); - } -}