committed by
bunnei
2 changed files with 30 additions and 100 deletions
-
100src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.java
-
30src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
@ -1,100 +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.Settings; |
|
||||
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter; |
|
||||
|
|
||||
/** |
|
||||
* ViewModel abstraction for an Item in the RecyclerView powering SettingsFragments. |
|
||||
* Each one corresponds to a {@link Setting} object, so this class's subclasses |
|
||||
* should vaguely correspond to those subclasses. There are a few with multiple analogues |
|
||||
* and a few with none (Headers, for example, do not correspond to anything in the ini |
|
||||
* file.) |
|
||||
*/ |
|
||||
public abstract class SettingsItem { |
|
||||
public static final int TYPE_HEADER = 0; |
|
||||
public static final int TYPE_CHECKBOX = 1; |
|
||||
public static final int TYPE_SINGLE_CHOICE = 2; |
|
||||
public static final int TYPE_SLIDER = 3; |
|
||||
public static final int TYPE_SUBMENU = 4; |
|
||||
public static final int TYPE_STRING_SINGLE_CHOICE = 5; |
|
||||
public static final int TYPE_DATETIME_SETTING = 6; |
|
||||
|
|
||||
private String mKey; |
|
||||
private String mSection; |
|
||||
|
|
||||
private Setting mSetting; |
|
||||
|
|
||||
private int mNameId; |
|
||||
private int mDescriptionId; |
|
||||
private boolean mIsPremium; |
|
||||
|
|
||||
/** |
|
||||
* Base constructor. Takes a key / section name in case the third parameter, the Setting, |
|
||||
* is null; in which case, one can be constructed and saved using the key / section. |
|
||||
* |
|
||||
* @param key Identifier for the Setting represented by this Item. |
|
||||
* @param section Section to which the Setting belongs. |
|
||||
* @param setting A possibly-null backing Setting, to be modified on UI events. |
|
||||
* @param nameId Resource ID for a text string to be displayed as this setting's name. |
|
||||
* @param descriptionId Resource ID for a text string to be displayed as this setting's description. |
|
||||
*/ |
|
||||
public SettingsItem(String key, String section, Setting setting, int nameId, |
|
||||
int descriptionId) { |
|
||||
mKey = key; |
|
||||
mSection = section; |
|
||||
mSetting = setting; |
|
||||
mNameId = nameId; |
|
||||
mDescriptionId = descriptionId; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* @return The identifier for the backing Setting. |
|
||||
*/ |
|
||||
public String getKey() { |
|
||||
return mKey; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* @return The header under which the backing Setting belongs. |
|
||||
*/ |
|
||||
public String getSection() { |
|
||||
return mSection; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* @return The backing Setting, possibly null. |
|
||||
*/ |
|
||||
public Setting getSetting() { |
|
||||
return mSetting; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Replace the backing setting with a new one. Generally used in cases where |
|
||||
* the backing setting is null. |
|
||||
* |
|
||||
* @param setting A non-null Setting. |
|
||||
*/ |
|
||||
public void setSetting(Setting setting) { |
|
||||
mSetting = setting; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* @return A resource ID for a text string representing this Setting's name. |
|
||||
*/ |
|
||||
public int getNameId() { |
|
||||
return mNameId; |
|
||||
} |
|
||||
|
|
||||
public int getDescriptionId() { |
|
||||
return mDescriptionId; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Used by {@link SettingsAdapter}'s onCreateViewHolder() |
|
||||
* method to determine which type of ViewHolder should be created. |
|
||||
* |
|
||||
* @return An integer (ideally, one of the constants defined in this file) |
|
||||
*/ |
|
||||
public abstract int getType(); |
|
||||
} |
|
||||
@ -0,0 +1,30 @@ |
|||||
|
package org.yuzu.yuzu_emu.features.settings.model.view |
||||
|
|
||||
|
import org.yuzu.yuzu_emu.features.settings.model.Setting |
||||
|
|
||||
|
/** |
||||
|
* ViewModel abstraction for an Item in the RecyclerView powering SettingsFragments. |
||||
|
* Each one corresponds to a [Setting] object, so this class's subclasses |
||||
|
* should vaguely correspond to those subclasses. There are a few with multiple analogues |
||||
|
* and a few with none (Headers, for example, do not correspond to anything in the ini |
||||
|
* file.) |
||||
|
*/ |
||||
|
abstract class SettingsItem( |
||||
|
val key: String?, |
||||
|
val section: String?, |
||||
|
var setting: Setting?, |
||||
|
val nameId: Int, |
||||
|
val descriptionId: Int? |
||||
|
) { |
||||
|
abstract val type: Int |
||||
|
|
||||
|
companion object { |
||||
|
const val TYPE_HEADER = 0 |
||||
|
const val TYPE_CHECKBOX = 1 |
||||
|
const val TYPE_SINGLE_CHOICE = 2 |
||||
|
const val TYPE_SLIDER = 3 |
||||
|
const val TYPE_SUBMENU = 4 |
||||
|
const val TYPE_STRING_SINGLE_CHOICE = 5 |
||||
|
const val TYPE_DATETIME_SETTING = 6 |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue