committed by
bunnei
2 changed files with 54 additions and 62 deletions
-
62src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.java
-
54src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt
@ -1,62 +0,0 @@ |
|||||
package org.yuzu.yuzu_emu.features.settings.ui.viewholder; |
|
||||
|
|
||||
import android.content.res.Resources; |
|
||||
import android.view.View; |
|
||||
import android.widget.TextView; |
|
||||
|
|
||||
import org.yuzu.yuzu_emu.R; |
|
||||
import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem; |
|
||||
import org.yuzu.yuzu_emu.features.settings.model.view.SingleChoiceSetting; |
|
||||
import org.yuzu.yuzu_emu.features.settings.model.view.StringSingleChoiceSetting; |
|
||||
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter; |
|
||||
|
|
||||
public final class SingleChoiceViewHolder extends SettingViewHolder { |
|
||||
private SettingsItem mItem; |
|
||||
|
|
||||
private TextView mTextSettingName; |
|
||||
private TextView mTextSettingDescription; |
|
||||
|
|
||||
public SingleChoiceViewHolder(View itemView, SettingsAdapter adapter) { |
|
||||
super(itemView, adapter); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
protected void findViews(View root) { |
|
||||
mTextSettingName = root.findViewById(R.id.text_setting_name); |
|
||||
mTextSettingDescription = root.findViewById(R.id.text_setting_description); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void bind(SettingsItem item) { |
|
||||
mItem = item; |
|
||||
|
|
||||
mTextSettingName.setText(item.getNameId()); |
|
||||
mTextSettingDescription.setVisibility(View.VISIBLE); |
|
||||
if (item.getDescriptionId() > 0) { |
|
||||
mTextSettingDescription.setText(item.getDescriptionId()); |
|
||||
} else if (item instanceof SingleChoiceSetting) { |
|
||||
SingleChoiceSetting setting = (SingleChoiceSetting) item; |
|
||||
int selected = setting.getSelectedValue(); |
|
||||
Resources resMgr = mTextSettingDescription.getContext().getResources(); |
|
||||
String[] choices = resMgr.getStringArray(setting.getChoicesId()); |
|
||||
int[] values = resMgr.getIntArray(setting.getValuesId()); |
|
||||
for (int i = 0; i < values.length; ++i) { |
|
||||
if (values[i] == selected) { |
|
||||
mTextSettingDescription.setText(choices[i]); |
|
||||
} |
|
||||
} |
|
||||
} else { |
|
||||
mTextSettingDescription.setVisibility(View.GONE); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void onClick(View clicked) { |
|
||||
int position = getAdapterPosition(); |
|
||||
if (mItem instanceof SingleChoiceSetting) { |
|
||||
getAdapter().onSingleChoiceClick((SingleChoiceSetting) mItem, position); |
|
||||
} else if (mItem instanceof StringSingleChoiceSetting) { |
|
||||
getAdapter().onStringSingleChoiceClick((StringSingleChoiceSetting) mItem, position); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,54 @@ |
|||||
|
package org.yuzu.yuzu_emu.features.settings.ui.viewholder |
||||
|
|
||||
|
import android.view.View |
||||
|
import android.widget.TextView |
||||
|
import org.yuzu.yuzu_emu.R |
||||
|
import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
||||
|
import org.yuzu.yuzu_emu.features.settings.model.view.SingleChoiceSetting |
||||
|
import org.yuzu.yuzu_emu.features.settings.model.view.StringSingleChoiceSetting |
||||
|
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter |
||||
|
|
||||
|
class SingleChoiceViewHolder(itemView: View, adapter: SettingsAdapter) : |
||||
|
SettingViewHolder(itemView, adapter) { |
||||
|
private lateinit var item: SettingsItem |
||||
|
private lateinit var textSettingName: TextView |
||||
|
private lateinit var textSettingDescription: TextView |
||||
|
|
||||
|
override fun findViews(root: View) { |
||||
|
textSettingName = root.findViewById(R.id.text_setting_name) |
||||
|
textSettingDescription = root.findViewById(R.id.text_setting_description) |
||||
|
} |
||||
|
|
||||
|
override fun bind(item: SettingsItem) { |
||||
|
this.item = item |
||||
|
textSettingName.setText(item.nameId) |
||||
|
textSettingDescription.visibility = View.VISIBLE |
||||
|
if (item.descriptionId!! > 0) { |
||||
|
textSettingDescription.setText(item.descriptionId) |
||||
|
} else if (item is SingleChoiceSetting) { |
||||
|
val resMgr = textSettingDescription.context.resources |
||||
|
val values = resMgr.getIntArray(item.valuesId) |
||||
|
for (i in values.indices) { |
||||
|
if (values[i] == item.selectedValue) { |
||||
|
textSettingDescription.text = resMgr.getStringArray(item.choicesId)[i] |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
textSettingDescription.visibility = View.GONE |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
override fun onClick(clicked: View) { |
||||
|
if (item is SingleChoiceSetting) { |
||||
|
adapter.onSingleChoiceClick( |
||||
|
(item as SingleChoiceSetting), |
||||
|
bindingAdapterPosition |
||||
|
) |
||||
|
} else if (item is StringSingleChoiceSetting) { |
||||
|
adapter.onStringSingleChoiceClick( |
||||
|
(item as StringSingleChoiceSetting), |
||||
|
bindingAdapterPosition |
||||
|
) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue