android: Convert StringSingleChoiceSetting to Kotlin
This commit is contained in:
		| @@ -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 | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user