Skip to content
Permalink
Browse files
Merge pull request #11513 from JosJuice/android-scaled-int-setting
Android: Create ScaledIntSetting class
  • Loading branch information
t895 committed Jan 31, 2023
2 parents 2843cd1 + 2e8ad9f commit be8cbe3
Show file tree
Hide file tree
Showing 19 changed files with 140 additions and 140 deletions.
@@ -2,9 +2,11 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public interface AbstractBooleanSetting extends AbstractSetting
{
boolean getBoolean(Settings settings);
boolean getBoolean(@NonNull Settings settings);

void setBoolean(Settings settings, boolean newValue);
void setBoolean(@NonNull Settings settings, boolean newValue);
}
@@ -2,9 +2,11 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public interface AbstractFloatSetting extends AbstractSetting
{
float getFloat(Settings settings);
float getFloat(@NonNull Settings settings);

void setFloat(Settings settings, float newValue);
void setFloat(@NonNull Settings settings, float newValue);
}
@@ -2,9 +2,11 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public interface AbstractIntSetting extends AbstractSetting
{
int getInt(Settings settings);
int getInt(@NonNull Settings settings);

void setInt(Settings settings, int newValue);
void setInt(@NonNull Settings settings, int newValue);
}
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public class AbstractLegacySetting implements AbstractSetting
{
protected final String mFile;
@@ -16,7 +18,7 @@ public AbstractLegacySetting(String file, String section, String key)
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
return settings.isGameSpecific() && settings.getSection(mFile, mSection).exists(mKey);
}
@@ -28,7 +30,7 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
return settings.getSection(mFile, mSection).delete(mKey);
}
@@ -2,11 +2,13 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public interface AbstractSetting
{
boolean isOverridden(Settings settings);
boolean isOverridden(@NonNull Settings settings);

boolean isRuntimeEditable();

boolean delete(Settings settings);
boolean delete(@NonNull Settings settings);
}
@@ -2,9 +2,12 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public interface AbstractStringSetting extends AbstractSetting
{
String getString(Settings settings);
@NonNull
String getString(@NonNull Settings settings);

void setString(Settings settings, String newValue);
void setString(@NonNull Settings settings, @NonNull String newValue);
}
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public class AdHocBooleanSetting implements AbstractBooleanSetting
{
private final String mFile;
@@ -23,7 +25,7 @@ public AdHocBooleanSetting(String file, String section, String key, boolean defa
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@@ -35,19 +37,19 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}

@Override
public boolean getBoolean(Settings settings)
public boolean getBoolean(@NonNull Settings settings)
{
return NativeConfig.getBoolean(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}

@Override
public void setBoolean(Settings settings, boolean newValue)
public void setBoolean(@NonNull Settings settings, boolean newValue)
{
NativeConfig.setBoolean(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public class AdHocStringSetting implements AbstractStringSetting
{
private final String mFile;
@@ -23,7 +25,7 @@ public AdHocStringSetting(String file, String section, String key, String defaul
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
return NativeConfig.isOverridden(mFile, mSection, mKey);
}
@@ -35,19 +37,19 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
return NativeConfig.deleteKey(settings.getWriteLayer(), mFile, mSection, mKey);
}

@Override
public String getString(Settings settings)
@NonNull @Override
public String getString(@NonNull Settings settings)
{
return NativeConfig.getString(NativeConfig.LAYER_ACTIVE, mFile, mSection, mKey, mDefaultValue);
}

@Override
public void setString(Settings settings, String newValue)
public void setString(@NonNull Settings settings, @NonNull String newValue)
{
NativeConfig.setString(settings.getWriteLayer(), mFile, mSection, mKey, newValue);
}
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -290,7 +292,7 @@ public enum BooleanSetting implements AbstractBooleanSetting
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
return settings.getSection(mFile, mSection).exists(mKey);
@@ -314,7 +316,7 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -327,7 +329,7 @@ public boolean delete(Settings settings)
}

@Override
public boolean getBoolean(Settings settings)
public boolean getBoolean(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -341,7 +343,7 @@ public boolean getBoolean(Settings settings)
}

@Override
public void setBoolean(Settings settings, boolean newValue)
public void setBoolean(@NonNull Settings settings, boolean newValue)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public enum FloatSetting implements AbstractFloatSetting
{
// These entries have the same names and order as in C++, just for consistency.
@@ -23,7 +25,7 @@ public enum FloatSetting implements AbstractFloatSetting
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
return settings.getSection(mFile, mSection).exists(mKey);
@@ -38,7 +40,7 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -51,7 +53,7 @@ public boolean delete(Settings settings)
}

@Override
public float getFloat(Settings settings)
public float getFloat(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -64,7 +66,7 @@ public float getFloat(Settings settings)
}

@Override
public void setFloat(Settings settings, float newValue)
public void setFloat(@NonNull Settings settings, float newValue)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -4,6 +4,8 @@

import android.content.pm.ActivityInfo;

import androidx.annotation.NonNull;

import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.overlay.InputOverlayPointer;

@@ -116,7 +118,7 @@ public enum IntSetting implements AbstractIntSetting
}

@Override
public boolean isOverridden(Settings settings)
public boolean isOverridden(@NonNull Settings settings)
{
if (settings.isGameSpecific() && !NativeConfig.isSettingSaveable(mFile, mSection, mKey))
return settings.getSection(mFile, mSection).exists(mKey);
@@ -140,7 +142,7 @@ public boolean isRuntimeEditable()
}

@Override
public boolean delete(Settings settings)
public boolean delete(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -153,7 +155,7 @@ public boolean delete(Settings settings)
}

@Override
public int getInt(Settings settings)
public int getInt(@NonNull Settings settings)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -166,7 +168,7 @@ public int getInt(Settings settings)
}

@Override
public void setInt(Settings settings, int newValue)
public void setInt(@NonNull Settings settings, int newValue)
{
if (NativeConfig.isSettingSaveable(mFile, mSection, mKey))
{
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public class LegacyFloatSetting extends AbstractLegacySetting implements AbstractFloatSetting
{
private final float mDefaultValue;
@@ -13,13 +15,13 @@ public LegacyFloatSetting(String file, String section, String key, float default
}

@Override
public float getFloat(Settings settings)
public float getFloat(@NonNull Settings settings)
{
return settings.getSection(mFile, mSection).getFloat(mKey, mDefaultValue);
}

@Override
public void setFloat(Settings settings, float newValue)
public void setFloat(@NonNull Settings settings, float newValue)
{
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
}
@@ -2,6 +2,8 @@

package org.dolphinemu.dolphinemu.features.settings.model;

import androidx.annotation.NonNull;

public class LegacyStringSetting extends AbstractLegacySetting implements AbstractStringSetting
{
private final String mDefaultValue;
@@ -12,14 +14,14 @@ public LegacyStringSetting(String file, String section, String key, String defau
mDefaultValue = defaultValue;
}

@Override
public String getString(Settings settings)
@NonNull @Override
public String getString(@NonNull Settings settings)
{
return settings.getSection(mFile, mSection).getString(mKey, mDefaultValue);
}

@Override
public void setString(Settings settings, String newValue)
public void setString(@NonNull Settings settings, @NonNull String newValue)
{
settings.getSection(mFile, mSection).setString(mKey, newValue);
}
@@ -0,0 +1,28 @@
// SPDX-License-Identifier: GPL-2.0-or-later

package org.dolphinemu.dolphinemu.features.settings.model

class ScaledIntSetting(
private val scale: Int,
private val setting: AbstractIntSetting
) : AbstractIntSetting {
override fun isOverridden(settings: Settings): Boolean {
return setting.isOverridden(settings)
}

override fun isRuntimeEditable(): Boolean {
return setting.isRuntimeEditable
}

override fun delete(settings: Settings): Boolean {
return setting.delete(settings)
}

override fun getInt(settings: Settings): Int {
return setting.getInt(settings) / scale
}

override fun setInt(settings: Settings, newValue: Int) {
return setting.setInt(settings, newValue * scale)
}
}

0 comments on commit be8cbe3

Please sign in to comment.