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
This commit is contained in:
Winson Chung
2023-01-19 21:59:07 +00:00
parent bd6dd7d908
commit f6d75c98a9

View File

@@ -41,6 +41,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.ActivityManager;
@@ -419,6 +420,7 @@ public class RecentsAnimationDeviceState implements
|| 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