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);
- }
-}