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