diff --git a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/MainActivity.java b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/MainActivity.java index 0c3352c69..50cc3447e 100644 --- a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/MainActivity.java +++ b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/MainActivity.java @@ -396,7 +396,7 @@ public class MainActivity extends AppCompatActivity implements super.onPostCreate(savedInstanceState); } - private void restartActivity() { + public void recreateActivity() { this.recreate(); OptionsFragment optionsFrag = new OptionsFragment(); getSupportFragmentManager() @@ -539,17 +539,6 @@ public class MainActivity extends AppCompatActivity implements generateErrorLog(); drawer.closeDrawer(GravityCompat.START); return true; - case R.id.theme_menu: - int app_theme = mPrefs.getInt(Config.pref_app_theme, 0); - if (app_theme == 7) { - mPrefs.edit().putInt(Config.pref_app_theme, 0).apply(); - restartActivity(); - } else { - mPrefs.edit().putInt(Config.pref_app_theme, 7).apply(); - restartActivity(); - } - drawer.closeDrawer(GravityCompat.START); - return true; default: drawer.closeDrawer(GravityCompat.START); diff --git a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/config/OptionsFragment.java b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/config/OptionsFragment.java index 62ff5fe22..33e7e284f 100644 --- a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/config/OptionsFragment.java +++ b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/config/OptionsFragment.java @@ -69,6 +69,7 @@ public class OptionsFragment extends Fragment { // Container Activity must implement this interface public interface OnClickListener { + void recreateActivity(); void onMainBrowseSelected(String path_entry, boolean games, String query); void launchBIOSdetection(); } @@ -129,7 +130,6 @@ public class OptionsFragment extends Fragment { app.getConfigurationPrefs(mPrefs); // Generate the menu options and fill in existing settings - Button mainBrowse = (Button) getView().findViewById(R.id.browse_main_path); mSpnrThemes = (Spinner) getView().findViewById(R.id.pick_button_theme); new LocateThemes(this).execute(home_directory + "/themes"); @@ -181,6 +181,36 @@ public class OptionsFragment extends Fragment { reios_opt.setChecked(mPrefs.getBoolean(Emulator.pref_usereios, false)); reios_opt.setOnCheckedChangeListener(reios_options); + String[] app_themes = getResources().getStringArray(R.array.themes_app); + Spinner aSpnrThemes = (Spinner) getView().findViewById(R.id.pick_app_theme); + ArrayAdapter themeAdapter = new ArrayAdapter<>(getActivity(), + android.R.layout.simple_spinner_item, app_themes); + themeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + aSpnrThemes.setAdapter(themeAdapter); + int app_theme = mPrefs.getInt(Config.pref_app_theme, 0); + if (app_theme == 7) { + aSpnrThemes.setSelection(themeAdapter.getPosition("Dream"), true); + } else { + aSpnrThemes.setSelection(app_theme, true); + } + aSpnrThemes.setOnItemSelectedListener(new OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { + String theme = String.valueOf(parentView.getItemAtPosition(position)); + if (theme.equals("Dream")) { + mPrefs.edit().putInt(Config.pref_app_theme, 7).apply(); + mCallback.recreateActivity(); + } else { + mPrefs.edit().putInt(Config.pref_app_theme, 0).apply(); + mCallback.recreateActivity(); + } + } + @Override + public void onNothingSelected(AdapterView parentView) { + + } + }); + OnCheckedChangeListener details_options = new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, @@ -573,7 +603,7 @@ public class OptionsFragment extends Fragment { @Override protected List doInBackground(String... paths) { File storage = new File(paths[0]); - String[] mediaTypes = options.get().getResources().getStringArray(R.array.themes); + String[] mediaTypes = options.get().getResources().getStringArray(R.array.themes_ext); FilenameFilter[] filter = new FilenameFilter[mediaTypes.length]; int i = 0; for (final String type : mediaTypes) { @@ -706,7 +736,23 @@ public class OptionsFragment extends Fragment { mPrefs.edit().remove(Config.pref_renderdepth).apply(); mPrefs.edit().remove(Config.pref_button_theme).apply(); - getActivity().finish(); + Emulator.usereios = false; + Emulator.nativeact = false; + Emulator.dynarecopt = true; + Emulator.unstableopt = false; + Emulator.cable = 3; + Emulator.dcregion = 3; + Emulator.broadcast = 4; + Emulator.limitfps = true; + Emulator.mipmaps = true; + Emulator.widescreen = false; + Emulator.frameskip = 0; + Emulator.pvrrender = false; + Emulator.syncedrender = false; + Emulator.bootdisk = null; + Emulator.nosound = false; + + mCallback.recreateActivity(); } private void showToastMessage(String message, int duration) { diff --git a/shell/android-studio/reicast/src/main/res/layout-v14/configure_fragment.xml b/shell/android-studio/reicast/src/main/res/layout-v14/configure_fragment.xml index 6139526a2..408a62678 100644 --- a/shell/android-studio/reicast/src/main/res/layout-v14/configure_fragment.xml +++ b/shell/android-studio/reicast/src/main/res/layout-v14/configure_fragment.xml @@ -124,11 +124,11 @@ android:orientation="vertical" > + android:text="@string/app_theme" /> + + + + + + + + + + + + android:text="@string/app_theme" /> + + + + + + + + + + + - \ No newline at end of file diff --git a/shell/android-studio/reicast/src/main/res/menu/activity_main.xml b/shell/android-studio/reicast/src/main/res/menu/activity_main.xml index 12b4bb146..0f333b78a 100644 --- a/shell/android-studio/reicast/src/main/res/menu/activity_main.xml +++ b/shell/android-studio/reicast/src/main/res/menu/activity_main.xml @@ -25,7 +25,4 @@ - diff --git a/shell/android-studio/reicast/src/main/res/values/donottranslate.xml b/shell/android-studio/reicast/src/main/res/values/donottranslate.xml index d9eab5c55..0bef40f1c 100644 --- a/shell/android-studio/reicast/src/main/res/values/donottranslate.xml +++ b/shell/android-studio/reicast/src/main/res/values/donottranslate.xml @@ -20,7 +20,12 @@ VGA - + + Dark + Dream + + + png jpg jpeg diff --git a/shell/android-studio/reicast/src/main/res/values/strings.xml b/shell/android-studio/reicast/src/main/res/values/strings.xml index 5c4c865e5..f2958eaeb 100644 --- a/shell/android-studio/reicast/src/main/res/values/strings.xml +++ b/shell/android-studio/reicast/src/main/res/values/strings.xml @@ -7,6 +7,7 @@ System Path\n (location of data folder with dc_boot.bin/dc_flash.bin inside) Default System Path Storage Path\n (location of *.gdi, *.chd or *.cdi images) + Application Theme Onscreen Button Theme Select a BIOS source @@ -145,7 +146,6 @@ Rate Me Send Logs Cloud VMU - Switch Theme Cancel Dismiss