summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java/org
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2023-03-11 17:48:42 +0100
committerJosJuice <josjuice@gmail.com>2023-03-11 17:51:59 +0100
commit68fd133057edc70fccf91c6757c5f1d929cc5ab0 (patch)
treea2f38ce5a0d26e87173935129b4c8095c2b8fd04 /Source/Android/app/src/main/java/org
parent53e7090f5559106875ee5d1170a641439df66379 (diff)
Android: Remove support for the old config system
All settings that we care about from an Android perspective are now supported by the new config system, so we can remove all the Android code for the old config system. This should have no impact on users.
Diffstat (limited to 'Source/Android/app/src/main/java/org')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java54
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.java36
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java42
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/NativeConfig.java4
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java88
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java35
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java6
8 files changed, 78 insertions, 189 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 cbaa7a4292..ad54b93a61 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
@@ -298,10 +298,7 @@ public enum BooleanSetting implements AbstractBooleanSetting
@Override
public boolean isOverridden(@NonNull Settings settings)
{
- if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- return settings.getSection(mFile, mSection).exists(mKey);
- else
- return NativeConfig.isOverridden(mFile, mSection, mKey);
+ return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@Override
@@ -322,53 +319,42 @@ public enum BooleanSetting implements AbstractBooleanSetting
@Override
public boolean delete(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
- }
- else
- {
- return settings.getSection(mFile, mSection).delete(mKey);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}
@Override
public boolean getBoolean(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey,
- mDefaultValue);
- }
- else
- {
- return settings.getSection(mFile, mSection).getBoolean(mKey, mDefaultValue);
- }
+ return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
@Override
public void setBoolean(@NonNull Settings settings, boolean newValue)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- NativeConfig.setBoolean(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
- }
- else
- {
- settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ NativeConfig.setBoolean(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
public void setBoolean(int layerType, boolean newValue)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- NativeConfig.setBoolean(layerType, mFile, mSection, mKey, newValue);
- }
- else
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- throw new UnsupportedOperationException("The old config system doesn't support layers");
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ NativeConfig.setBoolean(layerType, mFile, mSection, mKey, newValue);
}
public boolean getBooleanGlobal()
@@ -378,6 +364,12 @@ public enum BooleanSetting implements AbstractBooleanSetting
public void setBooleanGlobal(int layer, boolean newValue)
{
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ {
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
+ }
+
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 3bcb3e34c1..734839f8ec 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
@@ -27,10 +27,7 @@ public enum FloatSetting implements AbstractFloatSetting
@Override
public boolean isOverridden(@NonNull Settings settings)
{
- if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- return settings.getSection(mFile, mSection).exists(mKey);
- else
- return NativeConfig.isOverridden(mFile, mSection, mKey);
+ return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@Override
@@ -42,40 +39,31 @@ public enum FloatSetting implements AbstractFloatSetting
@Override
public boolean delete(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
- }
- else
- {
- return settings.getSection(mFile, mSection).delete(mKey);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}
@Override
public float getFloat(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- return NativeConfig.getFloat(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
- }
- else
- {
- return settings.getSection(mFile, mSection).getFloat(mKey, mDefaultValue);
- }
+ return NativeConfig.getFloat(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
@Override
public void setFloat(@NonNull Settings settings, float newValue)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- NativeConfig.setFloat(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
- }
- else
- {
- settings.getSection(mFile, mSection).setFloat(mKey, newValue);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ NativeConfig.setFloat(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
public float getFloatGlobal()
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 77cf7b339a..6c3c565552 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
@@ -123,10 +123,7 @@ public enum IntSetting implements AbstractIntSetting
@Override
public boolean isOverridden(@NonNull Settings settings)
{
- if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- return settings.getSection(mFile, mSection).exists(mKey);
- else
- return NativeConfig.isOverridden(mFile, mSection, mKey);
+ return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@Override
@@ -147,40 +144,31 @@ public enum IntSetting implements AbstractIntSetting
@Override
public boolean delete(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
- }
- else
- {
- return settings.getSection(mFile, mSection).delete(mKey);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}
@Override
public int getInt(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- return NativeConfig.getInt(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
- }
- else
- {
- return settings.getSection(mFile, mSection).getInt(mKey, mDefaultValue);
- }
+ return NativeConfig.getInt(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
@Override
public void setInt(@NonNull Settings settings, int newValue)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- NativeConfig.setInt(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
- }
- else
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- settings.getSection(mFile, mSection).setInt(mKey, newValue);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ NativeConfig.setInt(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
public int getIntGlobal()
@@ -190,6 +178,12 @@ public enum IntSetting implements AbstractIntSetting
public void setIntGlobal(int layer, int newValue)
{
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
+ {
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
+ }
+
NativeConfig.setInt(layer, mFile, mSection, mKey, newValue);
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/NativeConfig.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/NativeConfig.java
index 07646a2eb8..7fbe96f95e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/NativeConfig.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/NativeConfig.java
@@ -18,10 +18,14 @@ public class NativeConfig
public static native void save(int layer);
+ public static native void deleteAllKeys(int layer);
+
public static native boolean isOverridden(String file, String section, String key);
public static native boolean deleteKey(int layer, String file, String section, String key);
+ public static native boolean exists(int layer, String file, String section, String key);
+
public static native String getString(int layer, String file, String section, String key,
String defaultValue);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
index 6b9cf5226c..480dee0174 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
@@ -10,14 +10,9 @@ import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.features.input.model.MappingCommon;
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivityView;
-import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
import org.dolphinemu.dolphinemu.services.GameFileCacheManager;
-import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
-import org.dolphinemu.dolphinemu.utils.IniFile;
import java.io.Closeable;
-import java.util.HashMap;
-import java.util.Map;
public class Settings implements Closeable
{
@@ -52,40 +47,14 @@ public class Settings implements Closeable
public static final String SECTION_ANALYTICS = "Analytics";
- public static final String GAME_SETTINGS_PLACEHOLDER_FILE_NAME = "";
-
private String mGameId;
private int mRevision;
private boolean mIsWii;
- private static final String[] configFiles = new String[]{FILE_DOLPHIN, FILE_GFX, FILE_LOGGER,
- FILE_WIIMOTE};
-
- private Map<String, IniFile> mIniFiles = new HashMap<>();
+ private boolean mSettingsLoaded = false;
private boolean mLoadedRecursiveIsoPathsValue = false;
- private IniFile getGameSpecificFile()
- {
- if (!isGameSpecific() || mIniFiles.size() != 1)
- throw new IllegalStateException();
-
- return mIniFiles.get(GAME_SETTINGS_PLACEHOLDER_FILE_NAME);
- }
-
- public IniFile.Section getSection(String fileName, String sectionName)
- {
- if (!isGameSpecific())
- {
- return mIniFiles.get(fileName).getOrCreateSection(sectionName);
- }
- else
- {
- return getGameSpecificFile()
- .getOrCreateSection(SettingsFile.mapSectionNameFromIni(sectionName));
- }
- }
-
public boolean isGameSpecific()
{
return !TextUtils.isEmpty(mGameId);
@@ -101,9 +70,9 @@ public class Settings implements Closeable
return isGameSpecific() ? NativeConfig.LAYER_LOCAL_GAME : NativeConfig.LAYER_BASE_OR_CURRENT;
}
- public boolean isEmpty()
+ public boolean areSettingsLoaded()
{
- return mIniFiles.isEmpty();
+ return mSettingsLoaded;
}
public void loadSettings()
@@ -115,43 +84,20 @@ public class Settings implements Closeable
public void loadSettings(SettingsActivityView view, boolean isWii)
{
mIsWii = isWii;
+ mSettingsLoaded = true;
- mIniFiles = new HashMap<>();
-
- if (!isGameSpecific())
- {
- loadDolphinSettings(view);
- }
- else
+ if (isGameSpecific())
{
// Loading game INIs while the core is running will mess with the game INIs loaded by the core
if (NativeLibrary.IsRunning())
throw new IllegalStateException("Attempted to load game INI while emulating");
NativeConfig.loadGameInis(mGameId, mRevision);
- loadCustomGameSettings(mGameId, view);
}
mLoadedRecursiveIsoPathsValue = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(this);
}
- private void loadDolphinSettings(SettingsActivityView view)
- {
- for (String fileName : configFiles)
- {
- IniFile ini = new IniFile();
- SettingsFile.readFile(fileName, ini, view);
- mIniFiles.put(fileName, ini);
- }
- }
-
- private void loadCustomGameSettings(String gameId, SettingsActivityView view)
- {
- IniFile ini = new IniFile();
- SettingsFile.readCustomGameSettings(gameId, ini, view);
- mIniFiles.put(GAME_SETTINGS_PLACEHOLDER_FILE_NAME, ini);
- }
-
public void loadSettings(SettingsActivityView view, String gameId, int revision, boolean isWii)
{
mGameId = gameId;
@@ -166,22 +112,10 @@ public class Settings implements Closeable
if (context != null)
Toast.makeText(context, R.string.settings_saved, Toast.LENGTH_SHORT).show();
- for (Map.Entry<String, IniFile> entry : mIniFiles.entrySet())
- {
- SettingsFile.saveFile(entry.getKey(), entry.getValue(), view);
- }
-
MappingCommon.save();
NativeConfig.save(NativeConfig.LAYER_BASE);
- if (!NativeLibrary.IsRunning())
- {
- // Notify the native code of the changes to legacy settings
- NativeLibrary.ReloadConfig();
- }
-
- // LogManager does use the new config system, but doesn't pick up on changes automatically
NativeLibrary.ReloadLoggerConfig();
NativeLibrary.UpdateGCAdapterScanThread();
@@ -201,18 +135,13 @@ public class Settings implements Closeable
Toast.LENGTH_SHORT).show();
}
- SettingsFile.saveCustomGameSettings(mGameId, getGameSpecificFile());
-
NativeConfig.save(NativeConfig.LAYER_LOCAL_GAME);
}
}
- public void clearSettings()
+ public void clearGameSettings()
{
- for (String fileName : mIniFiles.keySet())
- {
- mIniFiles.put(fileName, new IniFile());
- }
+ NativeConfig.deleteAllKeys(NativeConfig.LAYER_LOCAL_GAME);
}
public boolean gameIniContainsJunk()
@@ -238,7 +167,8 @@ public class Settings implements Closeable
if (!isGameSpecific())
return false;
- return getSection(Settings.FILE_DOLPHIN, SECTION_INI_INTERFACE).exists("ThemeName");
+ return NativeConfig.exists(NativeConfig.LAYER_LOCAL_GAME, FILE_DOLPHIN, SECTION_INI_INTERFACE,
+ "ThemeName");
}
@Override
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 127852c640..88b37dbbd9 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
@@ -67,10 +67,7 @@ public enum StringSetting implements AbstractStringSetting
@Override
public boolean isOverridden(@NonNull Settings settings)
{
- if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- return settings.getSection(mFile, mSection).exists(mKey);
- else
- return NativeConfig.isOverridden(mFile, mSection, mKey);
+ return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@Override
@@ -88,41 +85,25 @@ public enum StringSetting implements AbstractStringSetting
@Override
public boolean delete(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
- }
- else
- {
- return settings.getSection(mFile, mSection).delete(mKey);
- }
+ return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}
@NonNull @Override
public String getString(@NonNull Settings settings)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey,
- mDefaultValue);
- }
- else
+ if (!NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
- return settings.getSection(mFile, mSection).getString(mKey, mDefaultValue);
+ throw new UnsupportedOperationException(
+ "Unsupported setting: " + mFile + ", " + mSection + ", " + mKey);
}
+
+ return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}
@Override
public void setString(@NonNull Settings settings, @NonNull String newValue)
{
- if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
- {
- NativeConfig.setString(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
- }
- else
- {
- settings.getSection(mFile, mSection).setString(mKey, newValue);
- }
+ NativeConfig.setString(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
public String getStringGlobal()
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
index bce24c1c46..4f1e4bdf45 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java
@@ -276,7 +276,7 @@ public final class SettingsActivity extends AppCompatActivity implements Setting
new MaterialAlertDialogBuilder(this)
.setTitle(getString(R.string.game_ini_junk_title))
.setMessage(getString(R.string.game_ini_junk_question))
- .setPositiveButton(R.string.yes, (dialogInterface, i) -> mPresenter.clearSettings())
+ .setPositiveButton(R.string.yes, (dialogInterface, i) -> mPresenter.clearGameSettings())
.setNegativeButton(R.string.no, null)
.show();
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
index cc235b9863..1b50754fdd 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java
@@ -66,7 +66,7 @@ public final class SettingsActivityPresenter
{
mView.hideLoading();
- if (mSettings.isEmpty())
+ if (!mSettings.areSettingsLoaded())
{
if (!TextUtils.isEmpty(mGameId))
{
@@ -99,9 +99,9 @@ public final class SettingsActivityPresenter
return mSettings;
}
- public void clearSettings()
+ public void clearGameSettings()
{
- mSettings.clearSettings();
+ mSettings.clearGameSettings();
onSettingChanged();
}