From 0c2619e5c86ad787adae0d150d6d6f2dab6a0f43 Mon Sep 17 00:00:00 2001 From: Ender's Games Date: Wed, 8 Aug 2018 18:03:23 -0400 Subject: [PATCH] Android: Crashing isn't close, Fix modvol settings --- .../java/com/reicast/emulator/Emulator.java | 2 ++ .../com/reicast/emulator/MainActivity.java | 36 +++++++++++-------- .../emulator/config/OptionsFragment.java | 15 ++------ .../java/com/reicast/emulator/emu/JNIdc.java | 1 + .../reicast/src/main/res/values/strings.xml | 2 +- 5 files changed, 27 insertions(+), 29 deletions(-) diff --git a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/Emulator.java b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/Emulator.java index 694ea1f8b..5b3951339 100644 --- a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/Emulator.java +++ b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/Emulator.java @@ -65,6 +65,7 @@ public class Emulator extends Application { Emulator.frameskip = mPrefs.getInt(pref_frameskip, frameskip); Emulator.pvrrender = mPrefs.getBoolean(pref_pvrrender, pvrrender); Emulator.syncedrender = mPrefs.getBoolean(pref_syncedrender, syncedrender); + Emulator.modvols = mPrefs.getBoolean(pref_modvols, modvols); Emulator.cheatdisk = mPrefs.getString(pref_cheatdisk, cheatdisk); Emulator.usereios = mPrefs.getBoolean(pref_usereios, usereios); Emulator.nativeact = mPrefs.getBoolean(pref_nativeact, nativeact); @@ -90,6 +91,7 @@ public class Emulator extends Application { JNIdc.frameskip(Emulator.frameskip); JNIdc.pvrrender(Emulator.pvrrender ? 1 : 0); JNIdc.syncedrender(Emulator.syncedrender ? 1 : 0); + JNIdc.modvols(Emulator.modvols ? 1 : 0); JNIdc.usereios(Emulator.usereios ? 1 : 0); JNIdc.cheatdisk(Emulator.cheatdisk); JNIdc.dreamtime(DreamTime.getDreamtime()); 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 ec60745b1..dde0278ab 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 @@ -2,14 +2,12 @@ package com.reicast.emulator; import android.Manifest; import android.app.AlertDialog; -import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; -import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -20,6 +18,8 @@ import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; @@ -365,6 +365,15 @@ public class MainActivity extends AppCompatActivity implements onMainBrowseSelected(true, null, false, null); } + public void onSettingsReload(Fragment options) { + getSupportFragmentManager().beginTransaction().remove(options).commit(); + OptionsFragment optionsFrag = new OptionsFragment(); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.fragment_container, optionsFrag, "OPTIONS_FRAG") + .addToBackStack(null).commit(); + } + @Override protected void onPause() { super.onPause(); @@ -439,9 +448,8 @@ public class MainActivity extends AppCompatActivity implements browseFrag.setArguments(args); getSupportFragmentManager() .beginTransaction() - .replace(R.id.fragment_container, browseFrag, - "MAIN_BROWSER").addToBackStack(null) - .commit(); + .replace(R.id.fragment_container, browseFrag, "MAIN_BROWSER") + .addToBackStack(null).commit(); setTitle(R.string.browser); drawer.closeDrawer(GravityCompat.START); return true; @@ -458,8 +466,7 @@ public class MainActivity extends AppCompatActivity implements optionsFrag = new OptionsFragment(); getSupportFragmentManager() .beginTransaction() - .replace(R.id.fragment_container, - optionsFrag, "OPTIONS_FRAG") + .replace(R.id.fragment_container, optionsFrag, "OPTIONS_FRAG") .addToBackStack(null).commit(); setTitle(R.string.settings); drawer.closeDrawer(GravityCompat.START); @@ -477,8 +484,8 @@ public class MainActivity extends AppCompatActivity implements inputFrag = new InputFragment(); getSupportFragmentManager() .beginTransaction() - .replace(R.id.fragment_container, inputFrag, - "INPUT_FRAG").addToBackStack(null).commit(); + .replace(R.id.fragment_container, inputFrag, "INPUT_FRAG") + .addToBackStack(null).commit(); setTitle(R.string.input); drawer.closeDrawer(GravityCompat.START); return true; @@ -495,8 +502,8 @@ public class MainActivity extends AppCompatActivity implements aboutFrag = new AboutFragment(); getSupportFragmentManager() .beginTransaction() - .replace(R.id.fragment_container, aboutFrag, - "ABOUT_FRAG").addToBackStack(null).commit(); + .replace(R.id.fragment_container, aboutFrag, "ABOUT_FRAG") + .addToBackStack(null).commit(); setTitle(R.string.about); drawer.closeDrawer(GravityCompat.START); return true; @@ -513,8 +520,7 @@ public class MainActivity extends AppCompatActivity implements cloudFrag = new CloudFragment(); getSupportFragmentManager() .beginTransaction() - .replace(R.id.fragment_container, - cloudFrag, "CLOUD_FRAG") + .replace(R.id.fragment_container, cloudFrag, "CLOUD_FRAG") .addToBackStack(null).commit(); setTitle(R.string.cloud); drawer.closeDrawer(GravityCompat.START); @@ -522,8 +528,8 @@ public class MainActivity extends AppCompatActivity implements case R.id.rateme_menu: // vib.vibrate(50); - startActivity(new Intent(Intent.ACTION_VIEW, Uri - .parse("market://details?id=" + getPackageName()))); + startActivity(new Intent(Intent.ACTION_VIEW, + Uri.parse("market://details?id=" + getPackageName()))); //setTitle(R.string.rateme); drawer.closeDrawer(GravityCompat.START); return true; 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 5d336b62e..7bb95f638 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 @@ -15,8 +15,6 @@ import android.support.constraint.ConstraintLayout; import android.support.design.widget.Snackbar; import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; import android.text.Editable; import android.text.TextWatcher; import android.view.Gravity; @@ -72,6 +70,7 @@ public class OptionsFragment extends Fragment { // Container Activity must implement this interface public interface OnClickListener { void onMainBrowseSelected(boolean browse, String path_entry, boolean games, String query); + void onSettingsReload(Fragment options); } @Override @@ -729,17 +728,7 @@ public class OptionsFragment extends Fragment { mPrefs.edit().remove(Config.pref_renderdepth).apply(); mPrefs.edit().remove(Config.pref_theme).apply(); - Emulator app = (Emulator) getActivity().getApplicationContext(); - app.getConfigurationPrefs(mPrefs); - - FragmentManager manager = getActivity().getSupportFragmentManager(); - FragmentTransaction ft = manager.beginTransaction(); - Fragment newFragment = this; - this.onDestroy(); - ft.remove(this); - ft.replace(R.id.fragment_container,newFragment); - ft.addToBackStack(null); - ft.commit(); + mCallback.onSettingsReload(this); } private void showToastMessage(String message, int duration) { diff --git a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/emu/JNIdc.java b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/emu/JNIdc.java index d9940f19e..90b826805 100644 --- a/shell/android-studio/reicast/src/main/java/com/reicast/emulator/emu/JNIdc.java +++ b/shell/android-studio/reicast/src/main/java/com/reicast/emulator/emu/JNIdc.java @@ -43,6 +43,7 @@ public final class JNIdc public static native void frameskip(int frames); public static native void pvrrender(int render); public static native void syncedrender(int sync); + public static native void modvols(int volumes); public static native void cheatdisk(String disk); public static native void usereios(int reios); public static native void dreamtime(long clock); 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 c508fc5b2..80c49fcb2 100644 --- a/shell/android-studio/reicast/src/main/res/values/strings.xml +++ b/shell/android-studio/reicast/src/main/res/values/strings.xml @@ -56,7 +56,7 @@ Reset Emu Reset Emulator Settings - Emulator settings will be cleared and app will close. Folder and input settings will NOT be removed.\nAre you sure you want to continue? + Warning: Emulator settings will be cleared. Folder and input settings are not included. This cannot be undone.\nAre you sure you want to continue? Game List Game (ie. Crazy Taxi)