summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2019-01-02 15:09:20 -0500
committerGitHub <noreply@github.com>2019-01-02 15:09:20 -0500
commitaac17bf0d8675cb0572e5182945d1de9bd0487e7 (patch)
treebd34c39005719eaa57ef87bb62c825dceed1dfa6 /Source/Android/app/src/main/java
parentb235121b94b625c98fcae65b164dcf6beceac5a6 (diff)
parent631463348b943fc9544ec4396ba1e69d576a1314 (diff)
Merge pull request #7591 from weihuoya/setting-desc
Android: show setting value as description
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java19
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java18
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java29
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java6
4 files changed, 56 insertions, 16 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
index d9cd764fd9..f23e4bbe78 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java
@@ -48,6 +48,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
private ArrayList<SettingsItem> mSettings;
private SettingsItem mClickedItem;
+ private int mClickedPosition;
private int mSeekbarProgress;
private AlertDialog mDialog;
@@ -57,6 +58,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
{
mView = view;
mContext = context;
+ mClickedPosition = -1;
}
@Override
@@ -157,9 +159,10 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
mView.onSettingChanged();
}
- public void onSingleChoiceClick(SingleChoiceSetting item)
+ public void onSingleChoiceClick(SingleChoiceSetting item, int position)
{
mClickedItem = item;
+ mClickedPosition = position;
int value = getSelectionForSingleChoiceValue(item);
@@ -171,9 +174,10 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
mDialog = builder.show();
}
- public void onStringSingleChoiceClick(StringSingleChoiceSetting item)
+ public void onStringSingleChoiceClick(StringSingleChoiceSetting item, int position)
{
mClickedItem = item;
+ mClickedPosition = position;
AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity());
@@ -183,9 +187,10 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
mDialog = builder.show();
}
- public void onSliderClick(SliderSetting item)
+ public void onSliderClick(SliderSetting item, int position)
{
mClickedItem = item;
+ mClickedPosition = position;
mSeekbarProgress = item.getSelectedValue();
AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity());
@@ -195,7 +200,6 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
builder.setTitle(item.getNameId());
builder.setView(view);
builder.setPositiveButton(R.string.ok, this);
- builder.setNegativeButton(R.string.cancel, this);
mDialog = builder.show();
mTextSliderValue = (TextView) view.findViewById(R.id.text_value);
@@ -347,6 +351,8 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
mView.putSetting(setting);
}
}
+
+ closeDialog();
}
mView.onSettingChanged();
@@ -358,6 +364,11 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
{
if (mDialog != null)
{
+ if (mClickedPosition != -1)
+ {
+ notifyItemChanged(mClickedPosition);
+ mClickedPosition = -1;
+ }
mDialog.dismiss();
mDialog = null;
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
index 31efc23e74..19ef69c5be 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java
@@ -404,7 +404,7 @@ public final class SettingsFragmentPresenter
sl.add(new HeaderSetting(null, null, R.string.graphics_general, 0));
sl.add(new SingleChoiceSetting(SettingsFile.KEY_VIDEO_BACKEND_INDEX, Settings.SECTION_INI_CORE,
- R.string.video_backend, R.string.video_backend_description, R.array.videoBackendEntries,
+ R.string.video_backend, 0, R.array.videoBackendEntries,
R.array.videoBackendValues, 0, videoBackend));
sl.add(new CheckBoxSetting(SettingsFile.KEY_SHOW_FPS, Settings.SECTION_GFX_SETTINGS,
R.string.show_fps, R.string.show_fps_description, false, showFps));
@@ -466,7 +466,7 @@ public final class SettingsFragmentPresenter
shaderListValues[0] = "";
sl.add(new StringSingleChoiceSetting(SettingsFile.KEY_POST_SHADER,
Settings.SECTION_GFX_ENHANCEMENTS, R.string.post_processing_shader,
- R.string.post_processing_shader_description, shaderListEntries, shaderListValues, "",
+ 0, shaderListEntries, shaderListValues, "",
shader));
sl.add(new CheckBoxSetting(SettingsFile.KEY_SCALED_EFB, Settings.SECTION_GFX_HACKS,
@@ -493,11 +493,11 @@ public final class SettingsFragmentPresenter
R.string.wide_screen_hack, R.string.wide_screen_hack_description, false,
wideScreenHack));
- /*
- Check if we support stereo
- If we support desktop GL then we must support at least OpenGL 3.2
- If we only support OpenGLES then we need both OpenGLES 3.1 and AEP
- */
+ /*
+ Check if we support stereo
+ If we support desktop GL then we must support at least OpenGL 3.2
+ If we only support OpenGLES then we need both OpenGLES 3.1 and AEP
+ */
EGLHelper helper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
if ((helper.supportsOpenGL() && helper.GetVersion() >= 320) ||
@@ -815,7 +815,7 @@ public final class SettingsFragmentPresenter
MenuTag.getWiimoteExtensionMenuTag(wiimoteNumber));
sl.add(new SingleChoiceSetting(SettingsFile.KEY_WIIMOTE_EXTENSION,
Settings.SECTION_WIIMOTE + (wiimoteNumber - 3), R.string.wiimote_extensions,
- R.string.wiimote_extensions_description, R.array.wiimoteExtensionsEntries,
+ 0, R.array.wiimoteExtensionsEntries,
R.array.wiimoteExtensionsValues, 0, extension,
MenuTag.getWiimoteExtensionMenuTag(wiimoteNumber)));
}
@@ -827,7 +827,7 @@ public final class SettingsFragmentPresenter
MenuTag.getWiimoteExtensionMenuTag(wiimoteNumber));
sl.add(new SingleChoiceSetting(SettingsFile.KEY_WIIMOTE_EXTENSION + (wiimoteNumber - 4),
Settings.SECTION_CONTROLS, R.string.wiimote_extensions,
- R.string.wiimote_extensions_description, R.array.wiimoteExtensionsEntries,
+ 0, R.array.wiimoteExtensionsEntries,
R.array.wiimoteExtensionsValues, 0, extension,
MenuTag.getWiimoteExtensionMenuTag(wiimoteNumber)));
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java
index 568361f887..6de38a4b1f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java
@@ -1,5 +1,6 @@
package org.dolphinemu.dolphinemu.features.settings.ui.viewholder;
+import android.content.res.Resources;
import android.view.View;
import android.widget.TextView;
@@ -39,18 +40,42 @@ public final class SingleChoiceViewHolder extends SettingViewHolder
{
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 if (item instanceof StringSingleChoiceSetting)
+ {
+ StringSingleChoiceSetting setting = (StringSingleChoiceSetting) item;
+ String[] choices = setting.getChoicesId();
+ int valueIndex = setting.getSelectValueIndex();
+ if (valueIndex != -1)
+ mTextSettingDescription.setText(choices[valueIndex]);
+ }
}
@Override
public void onClick(View clicked)
{
+ int position = getAdapterPosition();
if (mItem instanceof SingleChoiceSetting)
{
- getAdapter().onSingleChoiceClick((SingleChoiceSetting) mItem);
+ getAdapter().onSingleChoiceClick((SingleChoiceSetting) mItem, position);
}
else if (mItem instanceof StringSingleChoiceSetting)
{
- getAdapter().onStringSingleChoiceClick((StringSingleChoiceSetting) mItem);
+ getAdapter().onStringSingleChoiceClick((StringSingleChoiceSetting) mItem, position);
}
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java
index 17fac794fb..b40311dcea 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java
@@ -38,12 +38,16 @@ public final class SliderViewHolder extends SettingViewHolder
{
mTextSettingDescription.setText(item.getDescriptionId());
}
+ else
+ {
+ mTextSettingDescription.setText(mItem.getSelectedValue() + mItem.getUnits());
+ }
}
@Override
public void onClick(View clicked)
{
- getAdapter().onSliderClick(mItem);
+ getAdapter().onSliderClick(mItem, getAdapterPosition());
}
}