From b909c4247ba6646b193e570ad6f07f295d0429b9 Mon Sep 17 00:00:00 2001 From: Ender's Games Date: Sat, 29 Sep 2018 21:23:04 -0400 Subject: [PATCH 1/3] Add a popup for when permissions are not accepted Despite it being obvious that to play games from the sdcard, you need to access the sdcard, mistakes can happen. --- .../java/com/reicast/emulator/MainActivity.java | 17 +++++++++++++++++ .../reicast/src/main/res/values/strings.xml | 1 + 2 files changed, 18 insertions(+) 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 28376831d..8f83582d1 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 @@ -563,6 +563,23 @@ public class MainActivity extends AppCompatActivity implements } } + @Override + public void onRequestPermissionsResult( + int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { + if (requestCode == PERMISSION_REQUEST) { + if (!(grantResults.length > 0 && grantResults[0] + == PackageManager.PERMISSION_GRANTED)) { + StringBuilder disabled = new StringBuilder(); + for (String permission : permissions) { + disabled.append("\n"); + disabled.append(permission); + } + showToastMessage(getString(R.string.permission_blocked, + disabled.toString()), Snackbar.LENGTH_LONG); + } + } + } + public boolean isCallable(Intent intent) { List list = getPackageManager().queryIntentActivities( intent, PackageManager.MATCH_DEFAULT_ONLY); 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 22620e428..b2d1e6c99 100644 --- a/shell/android-studio/reicast/src/main/res/values/strings.xml +++ b/shell/android-studio/reicast/src/main/res/values/strings.xml @@ -15,6 +15,7 @@ Please configure a home directory. Please move BIOS to %1$s/data/ Please configure a game directory. + Permission(s) blocked:%1$s Unsupported kernel version! Locate Browse From 24504bc22e57ecdcfe1e792309fc6c18d9d144cb Mon Sep 17 00:00:00 2001 From: Ender's Games Date: Sat, 29 Sep 2018 22:08:01 -0400 Subject: [PATCH 2/3] Fix a typo. Always check your copy/paste twice. --- core/nullDC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/nullDC.cpp b/core/nullDC.cpp index 00309250c..f18a772ec 100755 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -354,7 +354,7 @@ void LoadCustom() char *reios_id = reios_disk_id(); cfgSaveStr(reios_id, "software.name", reios_software_name); - settings.dynarec.Enable = cfgLoadInt(reios_id,"Dynarec.Enabled", settings.dynarec.Enable ? 1 : 0) != 0; + settings.dynarec.Enable = cfgGameInt(reios_id,"Dynarec.Enabled", settings.dynarec.Enable ? 1 : 0) != 0; settings.dynarec.idleskip = cfgGameInt(reios_id,"Dynarec.idleskip", settings.dynarec.idleskip ? 1 : 0) != 0; settings.dynarec.unstable_opt = cfgGameInt(reios_id,"Dynarec.unstable-opt", settings.dynarec.unstable_opt); settings.dynarec.safemode = cfgGameInt(reios_id,"Dynarec.safemode", settings.dynarec.safemode); From e392d4702ce3f9f9b53160b9f343073144c5f869 Mon Sep 17 00:00:00 2001 From: Ender's Games Date: Sun, 30 Sep 2018 00:08:37 -0400 Subject: [PATCH 3/3] Prevent changing to a theme if it's already set This may resolve issues with some devices reloading when attempting to enter settings. --- .../java/com/reicast/emulator/config/OptionsFragment.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 c5e4c40ed..f31f4a998 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 @@ -197,12 +197,15 @@ public class OptionsFragment extends Fragment { @Override public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { String theme = String.valueOf(parentView.getItemAtPosition(position)); + int current = mPrefs.getInt(Config.pref_app_theme, 0); if (theme.equals("Dream")) { mPrefs.edit().putInt(Config.pref_app_theme, 7).apply(); - mCallback.recreateActivity(); + if (current != 7) + mCallback.recreateActivity(); } else { mPrefs.edit().putInt(Config.pref_app_theme, position).apply(); - mCallback.recreateActivity(); + if (current != position) + mCallback.recreateActivity(); } } @Override