diff --git a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java index 0bcf2d11f0..bed85d7bd9 100644 --- a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java +++ b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchController.java @@ -97,7 +97,11 @@ public final class KeyboardQuickSwitchController implements private void openQuickSwitchView(int currentFocusedIndex) { if (mQuickSwitchViewController != null) { - return; + if (!mQuickSwitchViewController.isCloseAnimationRunning()) { + return; + } + // Allow the KQS to be reopened during the close animation to make it more responsive + closeQuickSwitchView(false); } TaskbarOverlayContext overlayContext = mControllers.taskbarOverlayController.requestWindow(); diff --git a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java index 847088d784..69641a030e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchViewController.java @@ -94,8 +94,12 @@ public class KeyboardQuickSwitchViewController { mViewCallbacks); } + boolean isCloseAnimationRunning() { + return mCloseAnimation != null; + } + protected void closeQuickSwitchView(boolean animate) { - if (mCloseAnimation != null) { + if (isCloseAnimationRunning()) { // Let currently-running animation finish. if (!animate) { mCloseAnimation.end(); @@ -130,7 +134,7 @@ public class KeyboardQuickSwitchViewController { } private int launchTaskAt(int index) { - if (mCloseAnimation != null) { + if (isCloseAnimationRunning()) { // Ignore taps on task views and alt key unpresses while the close animation is running. return -1; } @@ -186,7 +190,7 @@ public class KeyboardQuickSwitchViewController { pw.println(prefix + "KeyboardQuickSwitchViewController:"); pw.println(prefix + "\thasFocus=" + mKeyboardQuickSwitchView.hasFocus()); - pw.println(prefix + "\tcloseAnimationRunning=" + (mCloseAnimation != null)); + pw.println(prefix + "\tisCloseAnimationRunning=" + isCloseAnimationRunning()); pw.println(prefix + "\tmCurrentFocusIndex=" + mCurrentFocusIndex); }