summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-10-11 19:08:37 +0200
committerJosJuice <josjuice@gmail.com>2020-10-19 20:03:47 +0200
commit195b551d87c46684032a698f5a1988ab4015a8f2 (patch)
treebb4e7a9a0fea14eb1ada48c37127340090fb95e4 /Source/Android/app/src/main/java
parent0f5bf90013cd1358b3ccb2f22c09748e40a552f4 (diff)
Android: Allow reading global settings without a Settings object
This makes things more convenient for code that just wants to read the current value of a setting.
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocBooleanSetting.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocStringSetting.java57
-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/fragments/MenuFragment.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java7
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java31
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java6
11 files changed, 103 insertions, 33 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocBooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocBooleanSetting.java
index 0626852b5d..e3e8bacaad 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocBooleanSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocBooleanSetting.java
@@ -49,4 +49,10 @@ public class AdHocBooleanSetting implements AbstractBooleanSetting
{
NativeConfig.setBoolean(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
+
+ public static boolean getBooleanGlobal(String file, String section, String key,
+ boolean defaultValue)
+ {
+ return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, file, section, key, defaultValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocStringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocStringSetting.java
new file mode 100644
index 0000000000..5d69b92158
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AdHocStringSetting.java
@@ -0,0 +1,57 @@
+package org.dolphinemu.dolphinemu.features.settings.model;
+
+public class AdHocStringSetting implements AbstractStringSetting
+{
+ private final String mFile;
+ private final String mSection;
+ private final String mKey;
+ private final String mDefaultValue;
+
+ public AdHocStringSetting(String file, String section, String key, String defaultValue)
+ {
+ mFile = file;
+ mSection = section;
+ mKey = key;
+ mDefaultValue = defaultValue;
+
+ if (!NativeConfig.isSettingSaveable(file, section, key))
+ {
+ throw new IllegalArgumentException("File/section/key is unknown or legacy");
+ }
+ }
+
+ @Override
+ public boolean isOverridden(Settings settings)
+ {
+ return NativeConfig.isOverridden(mFile, mSection, mKey);
+ }
+
+ @Override
+ public boolean isRuntimeEditable()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean delete(Settings settings)
+ {
+ return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
+ }
+
+ @Override
+ public String getString(Settings settings)
+ {
+ return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
+ }
+
+ @Override
+ public void setString(Settings settings, String newValue)
+ {
+ NativeConfig.setString(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
+ }
+
+ public static String getStringGlobal(String file, String section, String key, String defaultValue)
+ {
+ return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, file, section, key, defaultValue);
+ }
+}
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 15d5d9069e..53cfc419b3 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
@@ -191,4 +191,9 @@ public enum BooleanSetting implements AbstractBooleanSetting
settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
}
}
+
+ public boolean getBooleanGlobal()
+ {
+ return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
+ }
}
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 d5fea9894a..d418302179 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
@@ -73,4 +73,9 @@ public enum FloatSetting implements AbstractFloatSetting
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
}
}
+
+ public float getFloatGlobal()
+ {
+ return NativeConfig.getFloat(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
+ }
}
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 7c2824ca1d..031f93cf0c 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
@@ -130,4 +130,9 @@ public enum IntSetting implements AbstractIntSetting
settings.getSection(mFile, mSection).setInt(mKey, newValue);
}
}
+
+ public int getIntGlobal()
+ {
+ return NativeConfig.getInt(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
+ }
}
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 387ee3a504..3ca6f86606 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
@@ -104,4 +104,9 @@ public enum StringSetting implements AbstractStringSetting
settings.getSection(mFile, mSection).setString(mKey, newValue);
}
}
+
+ public String getStringGlobal()
+ {
+ return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
index 3badbd3e48..1da21470e8 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java
@@ -152,8 +152,7 @@ public final class MenuFragment extends Fragment implements View.OnClickListener
LinearLayout options = requireView().findViewById(R.id.layout_options);
- Settings settings = ((EmulationActivity) requireActivity()).getSettings();
- boolean savestatesEnabled = BooleanSetting.MAIN_ENABLE_SAVESTATES.getBoolean(settings);
+ boolean savestatesEnabled = BooleanSetting.MAIN_ENABLE_SAVESTATES.getBooleanGlobal();
int savestateVisibility = savestatesEnabled ? View.VISIBLE : View.GONE;
options.findViewById(R.id.menu_quicksave).setVisibility(savestateVisibility);
options.findViewById(R.id.menu_quickload).setVisibility(savestateVisibility);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java
index 5672553711..af417dac8f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java
@@ -81,12 +81,7 @@ public class GameFileCache
*/
public boolean scanLibrary(Context context)
{
- boolean recursiveScan;
- try (Settings settings = new Settings())
- {
- settings.loadSettings(null);
- recursiveScan = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(settings);
- }
+ boolean recursiveScan = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBooleanGlobal();
removeNonExistentGameFolders(context);
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 a36a5dfe34..c2993edbf3 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
@@ -291,11 +291,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
}
});
- try (Settings settings = new Settings())
- {
- settings.loadSettings(null);
- mViewPager.setCurrentItem(IntSetting.MAIN_LAST_PLATFORM_TAB.getInt(settings));
- }
+ mViewPager.setCurrentItem(IntSetting.MAIN_LAST_PLATFORM_TAB.getIntGlobal());
showGames();
GameFileCacheService.startLoad(this);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
index 062f694219..b4aabebfb9 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
@@ -24,44 +24,41 @@ public class Analytics
{
new AfterDirectoryInitializationRunner().run(context, false, () ->
{
- Settings settings = new Settings();
- settings.loadSettings(null);
- if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.getBoolean(settings))
- {
- showMessage(context, settings);
- }
- else
+ if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.getBooleanGlobal())
{
- settings.close();
+ showMessage(context);
}
});
}
- private static void showMessage(Context context, Settings settings)
+ private static void showMessage(Context context)
{
new AlertDialog.Builder(context, R.style.DolphinDialogBase)
.setTitle(context.getString(R.string.analytics))
.setMessage(context.getString(R.string.analytics_desc))
.setPositiveButton(R.string.yes, (dialogInterface, i) ->
{
- firstAnalyticsAdd(settings, true);
+ firstAnalyticsAdd(true);
})
.setNegativeButton(R.string.no, (dialogInterface, i) ->
{
- firstAnalyticsAdd(settings, false);
+ firstAnalyticsAdd(false);
})
.show();
}
- private static void firstAnalyticsAdd(Settings settings, boolean enabled)
+ private static void firstAnalyticsAdd(boolean enabled)
{
- BooleanSetting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled);
- BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true);
+ try (Settings settings = new Settings())
+ {
+ settings.loadSettings(null);
- // Context is set to null to avoid toasts
- settings.saveSettings(null, null);
+ BooleanSetting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled);
+ BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true);
- settings.close();
+ // Context is set to null to avoid toasts
+ settings.saveSettings(null, null);
+ }
}
public static void sendReport(String endpoint, byte[] data)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java
index e7b7360537..908541d62b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java
@@ -9,6 +9,7 @@ import android.util.SparseArray;
import android.view.InputDevice;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
+import org.dolphinemu.dolphinemu.features.settings.model.AdHocStringSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
@@ -28,9 +29,8 @@ public class Rumble
for (int i = 0; i < 8; i++)
{
- String deviceName = activity.getSettings()
- .getSection(Settings.FILE_DOLPHIN, Settings.SECTION_BINDINGS)
- .getString(SettingsFile.KEY_EMU_RUMBLE + i, "");
+ String deviceName = AdHocStringSetting.getStringGlobal(Settings.FILE_DOLPHIN,
+ Settings.SECTION_BINDINGS, SettingsFile.KEY_EMU_RUMBLE + i, "");
if (!deviceName.isEmpty())
{