committed by
bunnei
2 changed files with 61 additions and 82 deletions
-
82src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.java
-
61src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt
@ -1,82 +0,0 @@ |
|||
package org.yuzu.yuzu_emu.features.settings.model.view; |
|||
|
|||
import org.yuzu.yuzu_emu.features.settings.model.Setting; |
|||
import org.yuzu.yuzu_emu.features.settings.model.StringSetting; |
|||
|
|||
public class StringSingleChoiceSetting extends SettingsItem { |
|||
private String mDefaultValue; |
|||
|
|||
private String[] mChoicesId; |
|||
private String[] mValuesId; |
|||
|
|||
public StringSingleChoiceSetting(String key, String section, int titleId, int descriptionId, |
|||
String[] choicesId, String[] valuesId, String defaultValue, Setting setting) { |
|||
super(key, section, setting, titleId, descriptionId); |
|||
mValuesId = valuesId; |
|||
mChoicesId = choicesId; |
|||
mDefaultValue = defaultValue; |
|||
} |
|||
|
|||
public String[] getChoicesId() { |
|||
return mChoicesId; |
|||
} |
|||
|
|||
public String[] getValuesId() { |
|||
return mValuesId; |
|||
} |
|||
|
|||
public String getValueAt(int index) { |
|||
if (mValuesId == null) |
|||
return null; |
|||
|
|||
if (index >= 0 && index < mValuesId.length) { |
|||
return mValuesId[index]; |
|||
} |
|||
|
|||
return ""; |
|||
} |
|||
|
|||
public String getSelectedValue() { |
|||
if (getSetting() != null) { |
|||
StringSetting setting = (StringSetting) getSetting(); |
|||
return setting.getValue(); |
|||
} else { |
|||
return mDefaultValue; |
|||
} |
|||
} |
|||
|
|||
public int getSelectValueIndex() { |
|||
String selectedValue = getSelectedValue(); |
|||
for (int i = 0; i < mValuesId.length; i++) { |
|||
if (mValuesId[i].equals(selectedValue)) { |
|||
return i; |
|||
} |
|||
} |
|||
|
|||
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 StringSetting setSelectedValue(String selection) { |
|||
if (getSetting() == null) { |
|||
StringSetting setting = new StringSetting(getKey(), getSection(), selection); |
|||
setSetting(setting); |
|||
return setting; |
|||
} else { |
|||
StringSetting setting = (StringSetting) getSetting(); |
|||
setting.setValue(selection); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public int getType() { |
|||
return TYPE_STRING_SINGLE_CHOICE; |
|||
} |
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
package org.yuzu.yuzu_emu.features.settings.model.view |
|||
|
|||
import org.yuzu.yuzu_emu.features.settings.model.Setting |
|||
import org.yuzu.yuzu_emu.features.settings.model.StringSetting |
|||
|
|||
class StringSingleChoiceSetting( |
|||
key: String, |
|||
section: String, |
|||
setting: Setting?, |
|||
titleId: Int, |
|||
descriptionId: Int, |
|||
val choicesId: Array<String>, |
|||
private val valuesId: Array<String>?, |
|||
private val defaultValue: String |
|||
) : SettingsItem(key, section, setting, titleId, descriptionId) { |
|||
override val type = TYPE_STRING_SINGLE_CHOICE |
|||
|
|||
fun getValueAt(index: Int): String? { |
|||
if (valuesId == null) return null |
|||
return if (index >= 0 && index < valuesId.size) { |
|||
valuesId[index] |
|||
} else "" |
|||
} |
|||
|
|||
val selectedValue: String |
|||
get() = if (setting != null) { |
|||
val setting = setting as StringSetting |
|||
setting.value |
|||
} else { |
|||
defaultValue |
|||
} |
|||
val selectValueIndex: Int |
|||
get() { |
|||
val selectedValue = selectedValue |
|||
for (i in valuesId!!.indices) { |
|||
if (valuesId[i] == selectedValue) { |
|||
return i |
|||
} |
|||
} |
|||
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. |
|||
*/ |
|||
fun setSelectedValue(selection: String?): StringSetting? { |
|||
return if (setting == null) { |
|||
val newSetting = StringSetting(key!!, section!!, selection!!) |
|||
setting = newSetting |
|||
newSetting |
|||
} else { |
|||
val newSetting = setting as StringSetting |
|||
newSetting.value = selection!! |
|||
null |
|||
} |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue