committed by
bunnei
2 changed files with 72 additions and 101 deletions
-
101src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.java
-
72src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt
@ -1,101 +0,0 @@ |
|||
package org.yuzu.yuzu_emu.features.settings.model.view; |
|||
|
|||
import org.yuzu.yuzu_emu.features.settings.model.FloatSetting; |
|||
import org.yuzu.yuzu_emu.features.settings.model.IntSetting; |
|||
import org.yuzu.yuzu_emu.features.settings.model.Setting; |
|||
import org.yuzu.yuzu_emu.utils.Log; |
|||
|
|||
public final class SliderSetting extends SettingsItem { |
|||
private int mMin; |
|||
private int mMax; |
|||
private int mDefaultValue; |
|||
|
|||
private String mUnits; |
|||
|
|||
public SliderSetting(String key, String section, int titleId, int descriptionId, |
|||
int min, int max, String units, int defaultValue, Setting setting) { |
|||
super(key, section, setting, titleId, descriptionId); |
|||
mMin = min; |
|||
mMax = max; |
|||
mUnits = units; |
|||
mDefaultValue = defaultValue; |
|||
} |
|||
|
|||
public int getMin() { |
|||
return mMin; |
|||
} |
|||
|
|||
public int getMax() { |
|||
return mMax; |
|||
} |
|||
|
|||
public int getDefaultValue() { |
|||
return mDefaultValue; |
|||
} |
|||
|
|||
public int getSelectedValue() { |
|||
Setting setting = getSetting(); |
|||
|
|||
if (setting == null) { |
|||
return mDefaultValue; |
|||
} |
|||
|
|||
if (setting instanceof IntSetting) { |
|||
IntSetting intSetting = (IntSetting) setting; |
|||
return intSetting.getValue(); |
|||
} else if (setting instanceof FloatSetting) { |
|||
FloatSetting floatSetting = (FloatSetting) setting; |
|||
return Math.round(floatSetting.getValue()); |
|||
} else { |
|||
Log.error("[SliderSetting] Error casting setting type."); |
|||
return -1; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Write a value to the backing int. If that int was previously null, |
|||
* initializes a new one and returns it, so it can be added to the Hashmap. |
|||
* |
|||
* @param selection New value of the int. |
|||
* @return null if overwritten successfully otherwise; a newly created IntSetting. |
|||
*/ |
|||
public IntSetting setSelectedValue(int selection) { |
|||
if (getSetting() == null) { |
|||
IntSetting setting = new IntSetting(getKey(), getSection(), selection); |
|||
setSetting(setting); |
|||
return setting; |
|||
} else { |
|||
IntSetting setting = (IntSetting) getSetting(); |
|||
setting.setValue(selection); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Write a value to the backing float. If that float was previously null, |
|||
* initializes a new one and returns it, so it can be added to the Hashmap. |
|||
* |
|||
* @param selection New value of the float. |
|||
* @return null if overwritten successfully otherwise; a newly created FloatSetting. |
|||
*/ |
|||
public FloatSetting setSelectedValue(float selection) { |
|||
if (getSetting() == null) { |
|||
FloatSetting setting = new FloatSetting(getKey(), getSection(), selection); |
|||
setSetting(setting); |
|||
return setting; |
|||
} else { |
|||
FloatSetting setting = (FloatSetting) getSetting(); |
|||
setting.setValue(selection); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public String getUnits() { |
|||
return mUnits; |
|||
} |
|||
|
|||
@Override |
|||
public int getType() { |
|||
return TYPE_SLIDER; |
|||
} |
|||
} |
|||
@ -0,0 +1,72 @@ |
|||
package org.yuzu.yuzu_emu.features.settings.model.view |
|||
|
|||
import org.yuzu.yuzu_emu.features.settings.model.FloatSetting |
|||
import org.yuzu.yuzu_emu.features.settings.model.IntSetting |
|||
import org.yuzu.yuzu_emu.features.settings.model.Setting |
|||
import org.yuzu.yuzu_emu.utils.Log |
|||
import kotlin.math.roundToInt |
|||
|
|||
class SliderSetting( |
|||
key: String, |
|||
section: String, |
|||
setting: Setting?, |
|||
titleId: Int, |
|||
descriptionId: Int, |
|||
val min: Int, |
|||
val max: Int, |
|||
val units: String, |
|||
val defaultValue: Int, |
|||
) : SettingsItem(key, section, setting, titleId, descriptionId) { |
|||
override val type = TYPE_SLIDER |
|||
|
|||
val selectedValue: Int |
|||
get() { |
|||
val setting = setting ?: return defaultValue |
|||
return when (setting) { |
|||
is IntSetting -> setting.value |
|||
is FloatSetting -> setting.value.roundToInt() |
|||
else -> { |
|||
Log.error("[SliderSetting] Error casting setting type.") |
|||
-1 |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Write a value to the backing int. If that int was previously null, |
|||
* initializes a new one and returns it, so it can be added to the Hashmap. |
|||
* |
|||
* @param selection New value of the int. |
|||
* @return null if overwritten successfully otherwise; a newly created IntSetting. |
|||
*/ |
|||
fun setSelectedValue(selection: Int): IntSetting? { |
|||
return if (setting == null) { |
|||
val newSetting = IntSetting(key!!, section!!, selection) |
|||
setting = newSetting |
|||
newSetting |
|||
} else { |
|||
val newSetting = setting as IntSetting |
|||
newSetting.value = selection |
|||
null |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Write a value to the backing float. If that float was previously null, |
|||
* initializes a new one and returns it, so it can be added to the Hashmap. |
|||
* |
|||
* @param selection New value of the float. |
|||
* @return null if overwritten successfully otherwise; a newly created FloatSetting. |
|||
*/ |
|||
fun setSelectedValue(selection: Float): FloatSetting? { |
|||
return if (setting == null) { |
|||
val newSetting = FloatSetting(key!!, section!!, selection) |
|||
setting = newSetting |
|||
newSetting |
|||
} else { |
|||
val newSetting = setting as FloatSetting |
|||
newSetting.value = selection |
|||
null |
|||
} |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue