From 6c5c183e4c156014bea4b8a222595b9be571b258 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 19 Jan 2023 21:59:07 +0000 Subject: [PATCH 1/2] Prevent falling into OtherActivityInputConsumer when over lockscreen - When opening the emergency dialer from the bouncer, there's a brief period where notificationPanelExpanded=false and occluded=false which currently means canStartSystemGesture=true and isKeyguardShowingOccluded=false, which falls through to other activity input consumer. In this state, we can't properly finish the gesture stream because Launcher never shows (it's behind the lockscreen) and the recents animation never finishes. Bug: 242704576 Test: atest NexusLauncherTests Change-Id: I7795abe0aebefca2d42998a672abfd12f951d501 (cherry picked from commit on googleplex-android-review.googlesource.com host: f6d75c98a94d173ae59afc9bd126d1e72d1b28fa) Merged-In: I7795abe0aebefca2d42998a672abfd12f951d501 --- .../src/com/android/quickstep/RecentsAnimationDeviceState.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index 9e25555eec..d34153160d 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -43,6 +43,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_O import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; +import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED; import android.app.ActivityTaskManager; @@ -381,6 +382,7 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { || mRotationTouchHelper.isTaskListFrozen(); return canStartWithNavHidden && (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0 + && (mSystemUiStateFlags & SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING) == 0 && (mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0 && (mSystemUiStateFlags & SYSUI_STATE_MAGNIFICATION_OVERLAP) == 0 && ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0 From 3914bd49639c8f7e0f92f294eee9d3354281de33 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 19 Jan 2023 21:59:07 +0000 Subject: [PATCH 2/2] Prevent falling into OtherActivityInputConsumer when over lockscreen - When opening the emergency dialer from the bouncer, there's a brief period where notificationPanelExpanded=false and occluded=false which currently means canStartSystemGesture=true and isKeyguardShowingOccluded=false, which falls through to other activity input consumer. In this state, we can't properly finish the gesture stream because Launcher never shows (it's behind the lockscreen) and the recents animation never finishes. Bug: 242704576 Test: atest NexusLauncherTests Change-Id: I7795abe0aebefca2d42998a672abfd12f951d501 (cherry picked from commit on googleplex-android-review.googlesource.com host: f6d75c98a94d173ae59afc9bd126d1e72d1b28fa) Merged-In: I7795abe0aebefca2d42998a672abfd12f951d501 --- .../src/com/android/quickstep/RecentsAnimationDeviceState.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index 9e25555eec..d34153160d 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -43,6 +43,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_O import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; +import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED; import android.app.ActivityTaskManager; @@ -381,6 +382,7 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { || mRotationTouchHelper.isTaskListFrozen(); return canStartWithNavHidden && (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0 + && (mSystemUiStateFlags & SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING) == 0 && (mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0 && (mSystemUiStateFlags & SYSUI_STATE_MAGNIFICATION_OVERLAP) == 0 && ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0