diff --git a/res/values/strings.xml b/res/values/strings.xml
index bd0218608e6..da2c89f7574 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3916,8 +3916,8 @@
Caps lock
Ctrl
-
- Meta
+
+ Action key
Alt
diff --git a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
index b016f221392..291ce455a97 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
@@ -54,6 +54,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
private Preference mPreference;
private String mKeyDefaultName;
+ private String mKeyFocus;
private Context mContext;
private InputManager mIm;
@@ -72,6 +73,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
public ModifierKeysPickerDialogFragment(Preference preference, InputManager inputManager) {
mPreference = preference;
mKeyDefaultName = preference.getTitle().toString();
+ mKeyFocus = preference.getSummary().toString();
mIm = inputManager;
}
@@ -101,11 +103,11 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
ModifierKeyAdapter adapter = new ModifierKeyAdapter(modifierKeys);
ListView listView = dialoglayout.findViewById(R.id.modifier_key_picker);
listView.setAdapter(adapter);
+ setInitialFocusItem(modifierKeys, adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long l) {
adapter.setCurrentItem(i);
- adapter.setClick(true);
adapter.notifyDataSetChanged();
}
});
@@ -165,13 +167,22 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
return modifierKeyDialog;
}
+ private void setInitialFocusItem(
+ List modifierKeys, ModifierKeyAdapter adapter) {
+ if (modifierKeys.indexOf(mKeyFocus) == -1) {
+ adapter.setCurrentItem(modifierKeys.indexOf(mKeyDefaultName));
+ } else {
+ adapter.setCurrentItem(modifierKeys.indexOf(mKeyFocus));
+ }
+ adapter.notifyDataSetChanged();
+ }
+
private static boolean isKeyCapsLock(Context context, String key) {
return key.equals(context.getString(R.string.modifier_keys_caps_lock));
}
class ModifierKeyAdapter extends BaseAdapter {
private int mCurrentItem = 0;
- private boolean mIsClick = false;
private List mList;
ModifierKeyAdapter(List list) {
@@ -201,12 +212,15 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
TextView textView = view.findViewById(R.id.modifier_key_text);
ImageView checkIcon = view.findViewById(R.id.modifier_key_check_icon);
textView.setText(mList.get(i));
- if (mCurrentItem == i && mIsClick) {
+ if (mCurrentItem == i) {
textView.setTextColor(getColorOfColorAccentPrimaryVariant());
checkIcon.setImageAlpha(255);
+ view.setBackground(
+ mContext.getDrawable(R.drawable.modifier_key_lisetview_background));
} else {
textView.setTextColor(getColorOfTextColorPrimary());
checkIcon.setImageAlpha(0);
+ view.setBackground(null);
}
return view;
}
@@ -218,10 +232,6 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
public int getCurrentItem() {
return this.mCurrentItem;
}
-
- public void setClick(boolean click) {
- this.mIsClick = click;
- }
}
private int getColorOfTextColorPrimary() {