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)