android: Convert CheckBoxSetting to Kotlin
This commit is contained in:
		| @@ -1,80 +0,0 @@ | ||||
| package org.yuzu.yuzu_emu.features.settings.model.view; | ||||
|  | ||||
| import org.yuzu.yuzu_emu.YuzuApplication; | ||||
| import org.yuzu.yuzu_emu.R; | ||||
| import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting; | ||||
| import org.yuzu.yuzu_emu.features.settings.model.IntSetting; | ||||
| import org.yuzu.yuzu_emu.features.settings.model.Setting; | ||||
| import org.yuzu.yuzu_emu.features.settings.ui.SettingsFragmentView; | ||||
|  | ||||
| public final class CheckBoxSetting extends SettingsItem { | ||||
|     private boolean mDefaultValue; | ||||
|     private boolean mShowPerformanceWarning; | ||||
|     private SettingsFragmentView mView; | ||||
|  | ||||
|     public CheckBoxSetting(String key, String section, int titleId, int descriptionId, | ||||
|                            boolean defaultValue, Setting setting) { | ||||
|         super(key, section, setting, titleId, descriptionId); | ||||
|         mDefaultValue = defaultValue; | ||||
|         mShowPerformanceWarning = false; | ||||
|     } | ||||
|  | ||||
|     public CheckBoxSetting(String key, String section, int titleId, int descriptionId, | ||||
|                            boolean defaultValue, Setting setting, boolean show_performance_warning, SettingsFragmentView view) { | ||||
|         super(key, section, setting, titleId, descriptionId); | ||||
|         mDefaultValue = defaultValue; | ||||
|         mView = view; | ||||
|         mShowPerformanceWarning = show_performance_warning; | ||||
|     } | ||||
|  | ||||
|     public boolean isChecked() { | ||||
|         if (getSetting() == null) { | ||||
|             return mDefaultValue; | ||||
|         } | ||||
|  | ||||
|         // Try integer setting | ||||
|         try { | ||||
|             IntSetting setting = (IntSetting) getSetting(); | ||||
|             return setting.getValue() == 1; | ||||
|         } catch (ClassCastException exception) { | ||||
|         } | ||||
|  | ||||
|         // Try boolean setting | ||||
|         try { | ||||
|             BooleanSetting setting = (BooleanSetting) getSetting(); | ||||
|             return setting.getValue() == true; | ||||
|         } catch (ClassCastException exception) { | ||||
|         } | ||||
|  | ||||
|         return mDefaultValue; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Write a value to the backing boolean. If that boolean was previously null, | ||||
|      * initializes a new one and returns it, so it can be added to the Hashmap. | ||||
|      * | ||||
|      * @param checked Pretty self explanatory. | ||||
|      * @return null if overwritten successfully; otherwise, a newly created BooleanSetting. | ||||
|      */ | ||||
|     public IntSetting setChecked(boolean checked) { | ||||
|         // Show a performance warning if the setting has been disabled | ||||
|         if (mShowPerformanceWarning && !checked) { | ||||
|             mView.showToastMessage(YuzuApplication.getAppContext().getString(R.string.performance_warning), true); | ||||
|         } | ||||
|  | ||||
|         if (getSetting() == null) { | ||||
|             IntSetting setting = new IntSetting(getKey(), getSection(), checked ? 1 : 0); | ||||
|             setSetting(setting); | ||||
|             return setting; | ||||
|         } else { | ||||
|             IntSetting setting = (IntSetting) getSetting(); | ||||
|             setting.setValue(checked ? 1 : 0); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int getType() { | ||||
|         return TYPE_CHECKBOX; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,91 @@ | ||||
| package org.yuzu.yuzu_emu.features.settings.model.view | ||||
|  | ||||
| import org.yuzu.yuzu_emu.R | ||||
| import org.yuzu.yuzu_emu.YuzuApplication | ||||
| import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting | ||||
| import org.yuzu.yuzu_emu.features.settings.model.IntSetting | ||||
| import org.yuzu.yuzu_emu.features.settings.model.Setting | ||||
| import org.yuzu.yuzu_emu.features.settings.ui.SettingsFragmentView | ||||
|  | ||||
| class CheckBoxSetting : SettingsItem { | ||||
|     override val type = TYPE_CHECKBOX | ||||
|  | ||||
|     private var defaultValue: Boolean | ||||
|     private var showPerformanceWarning: Boolean | ||||
|     private var fragmentView: SettingsFragmentView? = null | ||||
|  | ||||
|     constructor( | ||||
|         key: String, | ||||
|         section: String, | ||||
|         setting: Setting?, | ||||
|         titleId: Int, | ||||
|         descriptionId: Int, | ||||
|         defaultValue: Boolean | ||||
|     ) : super(key, section, setting, titleId, descriptionId) { | ||||
|         this.defaultValue = defaultValue | ||||
|         showPerformanceWarning = false | ||||
|     } | ||||
|  | ||||
|     constructor( | ||||
|         key: String, | ||||
|         section: String, | ||||
|         titleId: Int, | ||||
|         descriptionId: Int, | ||||
|         defaultValue: Boolean, | ||||
|         setting: Setting, | ||||
|         show_performance_warning: Boolean, | ||||
|         view: SettingsFragmentView | ||||
|     ) : super(key, section, setting, titleId, descriptionId) { | ||||
|         this.defaultValue = defaultValue | ||||
|         fragmentView = view | ||||
|         showPerformanceWarning = show_performance_warning | ||||
|     } | ||||
|  | ||||
|     val isChecked: Boolean | ||||
|         get() { | ||||
|             if (setting == null) { | ||||
|                 return defaultValue | ||||
|             } | ||||
|  | ||||
|             // Try integer setting | ||||
|             try { | ||||
|                 val setting = setting as IntSetting | ||||
|                 return setting.value == 1 | ||||
|             } catch (_: ClassCastException) { | ||||
|             } | ||||
|  | ||||
|             // Try boolean setting | ||||
|             try { | ||||
|                 val setting = setting as BooleanSetting | ||||
|                 return setting.value | ||||
|             } catch (_: ClassCastException) { | ||||
|             } | ||||
|             return defaultValue | ||||
|         } | ||||
|  | ||||
|     /** | ||||
|      * Write a value to the backing boolean. If that boolean was previously null, | ||||
|      * initializes a new one and returns it, so it can be added to the Hashmap. | ||||
|      * | ||||
|      * @param checked Pretty self explanatory. | ||||
|      * @return null if overwritten successfully; otherwise, a newly created BooleanSetting. | ||||
|      */ | ||||
|     fun setChecked(checked: Boolean): IntSetting? { | ||||
|         // Show a performance warning if the setting has been disabled | ||||
|         if (showPerformanceWarning && !checked) { | ||||
|             fragmentView!!.showToastMessage( | ||||
|                 YuzuApplication.appContext.getString(R.string.performance_warning), true | ||||
|             ) | ||||
|         } | ||||
|  | ||||
|         return if (setting == null) { | ||||
|             val newSetting = IntSetting(key!!, section!!, if (checked) 1 else 0) | ||||
|             setting = newSetting | ||||
|             newSetting | ||||
|         } else { | ||||
|             val newSetting = setting as IntSetting | ||||
|             newSetting.value = if (checked) 1 else 0 | ||||
|             null | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Charles Lombardo
					Charles Lombardo