diff --git a/src/android/app/src/main/java/org/citra/citra_android/model/settings/view/SliderSetting.java b/src/android/app/src/main/java/org/citra/citra_android/model/settings/view/SliderSetting.java index 68488f222..3eeb45878 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/model/settings/view/SliderSetting.java +++ b/src/android/app/src/main/java/org/citra/citra_android/model/settings/view/SliderSetting.java @@ -36,7 +36,7 @@ public final class SliderSetting extends SettingsItem { return intSetting.getValue(); } else if (setting instanceof FloatSetting) { FloatSetting floatSetting = (FloatSetting) setting; - if (floatSetting.getKey().equals(SettingsFile.KEY_FRAME_LIMIT)) { + if (isPercentSetting()) { return Math.round(floatSetting.getValue() * 100); } else { return Math.round(floatSetting.getValue()); @@ -47,6 +47,10 @@ public final class SliderSetting extends SettingsItem { } } + public boolean isPercentSetting() { + return getKey().equals(SettingsFile.KEY_FRAME_LIMIT); + } + /** * 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. diff --git a/src/android/app/src/main/java/org/citra/citra_android/ui/settings/SettingsAdapter.java b/src/android/app/src/main/java/org/citra/citra_android/ui/settings/SettingsAdapter.java index 608796b7a..5ed1f6a79 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/ui/settings/SettingsAdapter.java +++ b/src/android/app/src/main/java/org/citra/citra_android/ui/settings/SettingsAdapter.java @@ -35,7 +35,6 @@ import org.citra.citra_android.ui.settings.viewholder.SingleChoiceViewHolder; import org.citra.citra_android.ui.settings.viewholder.SliderViewHolder; import org.citra.citra_android.ui.settings.viewholder.SubmenuViewHolder; import org.citra.citra_android.utils.Log; -import org.citra.citra_android.utils.SettingsFile; import java.util.ArrayList; @@ -46,6 +45,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter mSettings; private SettingsItem mClickedItem; + private int mClickedPosition; private int mSeekbarProgress; private AlertDialog mDialog; @@ -54,6 +54,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter 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]); + } + } } } @Override public void onClick(View clicked) { - getAdapter().onSingleChoiceClick(mItem); + int position = getAdapterPosition(); + if (mItem instanceof SingleChoiceSetting) { + getAdapter().onSingleChoiceClick((SingleChoiceSetting) mItem, position); + } } } diff --git a/src/android/app/src/main/java/org/citra/citra_android/ui/settings/viewholder/SliderViewHolder.java b/src/android/app/src/main/java/org/citra/citra_android/ui/settings/viewholder/SliderViewHolder.java index 8b704d442..c52c99055 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/ui/settings/viewholder/SliderViewHolder.java +++ b/src/android/app/src/main/java/org/citra/citra_android/ui/settings/viewholder/SliderViewHolder.java @@ -37,7 +37,7 @@ public final class SliderViewHolder extends SettingViewHolder { @Override public void onClick(View clicked) { - getAdapter().onSliderClick(mItem); + getAdapter().onSliderClick(mItem, getAdapterPosition()); } }