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
This commit is contained in:
@@ -74,7 +74,6 @@ public final class KeyboardShortcuts {
|
||||
private static final String TAG = KeyboardShortcuts.class.getSimpleName();
|
||||
private static final Object sLock = new Object();
|
||||
private static KeyboardShortcuts sInstance;
|
||||
private static boolean sIsShowing;
|
||||
|
||||
private final SparseArray<String> mSpecialCharacterNames = new SparseArray<>();
|
||||
private final SparseArray<String> mModifierNames = new SparseArray<>();
|
||||
@@ -136,13 +135,12 @@ public final class KeyboardShortcuts {
|
||||
dismiss();
|
||||
}
|
||||
getInstance(context).showKeyboardShortcuts(deviceId);
|
||||
sIsShowing = true;
|
||||
}
|
||||
}
|
||||
|
||||
public static void toggle(Context context, int deviceId) {
|
||||
synchronized (sLock) {
|
||||
if (sIsShowing) {
|
||||
if (isShowing()) {
|
||||
dismiss();
|
||||
} else {
|
||||
show(context, deviceId);
|
||||
@@ -158,10 +156,14 @@ public final class KeyboardShortcuts {
|
||||
sInstance.dismissKeyboardShortcuts();
|
||||
sInstance = null;
|
||||
}
|
||||
sIsShowing = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isShowing() {
|
||||
return sInstance != null && sInstance.mKeyboardShortcutsDialog != null
|
||||
&& sInstance.mKeyboardShortcutsDialog.isShowing();
|
||||
}
|
||||
|
||||
private void loadResources(Context context) {
|
||||
mSpecialCharacterNames.put(
|
||||
KeyEvent.KEYCODE_HOME, context.getString(R.string.keyboard_key_home));
|
||||
|
||||
Reference in New Issue
Block a user