DO NOT MERGE Fix Keyboard Shortcut Helper requires pressing META+/ twice
By using a local boolean we were missing out on when the system dismisses
the window with the back key.
Bug: 28910518
Change-Id: I87b21c11830eaf81e3fd9586be6e3a7bb59c8a1f
(cherry picked from commit 3ac0ae076e)
This commit is contained in:
@@ -72,7 +72,6 @@ public final class KeyboardShortcuts {
|
|||||||
private static final String TAG = KeyboardShortcuts.class.getSimpleName();
|
private static final String TAG = KeyboardShortcuts.class.getSimpleName();
|
||||||
private static final Object sLock = new Object();
|
private static final Object sLock = new Object();
|
||||||
private static KeyboardShortcuts sInstance;
|
private static KeyboardShortcuts sInstance;
|
||||||
private static boolean sIsShowing;
|
|
||||||
|
|
||||||
private final SparseArray<String> mSpecialCharacterNames = new SparseArray<>();
|
private final SparseArray<String> mSpecialCharacterNames = new SparseArray<>();
|
||||||
private final SparseArray<String> mModifierNames = new SparseArray<>();
|
private final SparseArray<String> mModifierNames = new SparseArray<>();
|
||||||
@@ -131,13 +130,12 @@ public final class KeyboardShortcuts {
|
|||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
getInstance(context).showKeyboardShortcuts(deviceId);
|
getInstance(context).showKeyboardShortcuts(deviceId);
|
||||||
sIsShowing = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toggle(Context context, int deviceId) {
|
public static void toggle(Context context, int deviceId) {
|
||||||
synchronized (sLock) {
|
synchronized (sLock) {
|
||||||
if (sIsShowing) {
|
if (isShowing()) {
|
||||||
dismiss();
|
dismiss();
|
||||||
} else {
|
} else {
|
||||||
show(context, deviceId);
|
show(context, deviceId);
|
||||||
@@ -151,10 +149,14 @@ public final class KeyboardShortcuts {
|
|||||||
sInstance.dismissKeyboardShortcuts();
|
sInstance.dismissKeyboardShortcuts();
|
||||||
sInstance = null;
|
sInstance = null;
|
||||||
}
|
}
|
||||||
sIsShowing = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isShowing() {
|
||||||
|
return sInstance != null && sInstance.mKeyboardShortcutsDialog != null
|
||||||
|
&& sInstance.mKeyboardShortcutsDialog.isShowing();
|
||||||
|
}
|
||||||
|
|
||||||
private void loadResources(Context context) {
|
private void loadResources(Context context) {
|
||||||
mSpecialCharacterNames.put(
|
mSpecialCharacterNames.put(
|
||||||
KeyEvent.KEYCODE_HOME, context.getString(R.string.keyboard_key_home));
|
KeyEvent.KEYCODE_HOME, context.getString(R.string.keyboard_key_home));
|
||||||
|
|||||||
Reference in New Issue
Block a user