summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-03-07 12:03:46 +0100
committerGitHub <noreply@github.com>2021-03-07 12:03:46 +0100
commitac687bc364ad85ef1ebe2ce2b361e00b498d7812 (patch)
tree25cfa8cb49b7984eeb67794c8c74e5d143f14fed /Source/Android/app/src/main/java
parenta5555c6300fa8a51560c43a6802e68fe56bf362d (diff)
parent13cc327909c91000d283ca399ac2cbb874dc6c20 (diff)
Merge pull request #9568 from JosJuice/android-delay-save-tab
Android: Don't save settings immediately after switching platform tab
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java19
5 files changed, 29 insertions, 10 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
index 82cee6bdfb..60f0a1c9d1 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java
@@ -279,4 +279,9 @@ public enum BooleanSetting implements AbstractBooleanSetting
{
return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
+
+ public void setBooleanGlobal(int layer, boolean newValue)
+ {
+ NativeConfig.setBoolean(layer, mFile, mSection, mKey, newValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java
index d418302179..da0f118335 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java
@@ -78,4 +78,9 @@ public enum FloatSetting implements AbstractFloatSetting
{
return NativeConfig.getFloat(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
+
+ public void setFloatGlobal(int layer, float newValue)
+ {
+ NativeConfig.setFloat(layer, mFile, mSection, mKey, newValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
index 469aa9de1e..e18eda9cfb 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
@@ -147,4 +147,9 @@ public enum IntSetting implements AbstractIntSetting
{
return NativeConfig.getInt(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
+
+ public void setIntGlobal(int layer, int newValue)
+ {
+ NativeConfig.setInt(layer, mFile, mSection, mKey, newValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
index 3ca6f86606..d0f03ece97 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java
@@ -109,4 +109,9 @@ public enum StringSetting implements AbstractStringSetting
{
return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
+
+ public void setStringGlobal(int layer, String newValue)
+ {
+ NativeConfig.setString(layer, mFile, mSection, mKey, newValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
index f0a1b9fb89..507f994fed 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
@@ -23,6 +23,7 @@ import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
import org.dolphinemu.dolphinemu.adapters.PlatformPagerAdapter;
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
+import org.dolphinemu.dolphinemu.features.settings.model.NativeConfig;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
@@ -113,10 +114,17 @@ public final class MainActivity extends AppCompatActivity
protected void onStop()
{
super.onStop();
+
if (isChangingConfigurations())
{
MainPresenter.skipRescanningLibrary();
}
+ else if (DirectoryInitialization.areDolphinDirectoriesReady())
+ {
+ // If the currently selected platform tab changed, save it to disk
+ NativeConfig.save(NativeConfig.LAYER_BASE);
+ }
+
StartupHandler.setSessionTime(this);
}
@@ -321,16 +329,7 @@ public final class MainActivity extends AppCompatActivity
public void onTabSelected(@NonNull TabLayout.Tab tab)
{
super.onTabSelected(tab);
-
- try (Settings settings = new Settings())
- {
- settings.loadSettings();
-
- IntSetting.MAIN_LAST_PLATFORM_TAB.setInt(settings, tab.getPosition());
-
- // Context is set to null to avoid toasts
- settings.saveSettings(null, null);
- }
+ IntSetting.MAIN_LAST_PLATFORM_TAB.setIntGlobal(NativeConfig.LAYER_BASE, tab.getPosition());
}
});