diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java index 215fc346eac06..0df7c8a6675cb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java @@ -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 mSpecialCharacterNames = new SparseArray<>(); private final SparseArray 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));