diff options
6 files changed, 24 insertions, 7 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java index 594736c3b8c8..2c15fb3ebfc3 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java @@ -123,6 +123,8 @@ public class QuickStepContract { public static final int SYSUI_STATE_WAKEFULNESS_TRANSITION = 1 << 29; // The notification panel expansion fraction is > 0 public static final int SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE = 1 << 30; + // When keyguard will be dismissed but didn't start animation yet + public static final int SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY = 1 << 31; // Mask for SystemUiStateFlags to isolate SYSUI_STATE_AWAKE and // SYSUI_STATE_WAKEFULNESS_TRANSITION, to match WAKEFULNESS_* constants @@ -167,6 +169,7 @@ public class QuickStepContract { SYSUI_STATE_AWAKE, SYSUI_STATE_WAKEFULNESS_TRANSITION, SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE, + SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY, }) public @interface SystemUiStateFlags {} @@ -265,6 +268,9 @@ public class QuickStepContract { if ((flags & SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE) != 0) { str.add("notif_visible"); } + if ((flags & SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY) != 0) { + str.add("keygrd_going_away"); + } return str.toString(); } diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java b/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java index ddac25b67766..6dd7ea20beb2 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java +++ b/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java @@ -210,8 +210,8 @@ public class SystemActions implements CoreStartable { // Saving in instance variable since to prevent GC since // NotificationShadeWindowController.registerCallback() only keeps weak references. mNotificationShadeCallback = - (keyguardShowing, keyguardOccluded, bouncerShowing, mDozing, panelExpanded, - isDreaming) -> + (keyguardShowing, keyguardOccluded, keyguardGoingAway, bouncerShowing, mDozing, + panelExpanded, isDreaming) -> registerOrUnregisterDismissNotificationShadeAction(); mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy; } diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index 4f4a2af07898..4ba0e5e16c72 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -32,6 +32,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DREAMING; +import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY; 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 static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_TRACING_ENABLED; @@ -674,11 +675,14 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis } private void onStatusBarStateChanged(boolean keyguardShowing, boolean keyguardOccluded, - boolean bouncerShowing, boolean isDozing, boolean panelExpanded, boolean isDreaming) { + boolean keyguardGoingAway, boolean bouncerShowing, boolean isDozing, + boolean panelExpanded, boolean isDreaming) { mSysUiState.setFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING, keyguardShowing && !keyguardOccluded) .setFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED, keyguardShowing && keyguardOccluded) + .setFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY, + keyguardGoingAway) .setFlag(SYSUI_STATE_BOUNCER_SHOWING, bouncerShowing) .setFlag(SYSUI_STATE_DEVICE_DOZING, isDozing) .setFlag(SYSUI_STATE_DEVICE_DREAMING, isDreaming) diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java index 156e4fd1889f..af74c2793cc9 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java @@ -561,6 +561,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW for (StatusBarWindowCallback cb : activeCallbacks) { cb.onStateChanged(mCurrentState.keyguardShowing, mCurrentState.keyguardOccluded, + mCurrentState.keyguardGoingAway, mCurrentState.bouncerShowing, mCurrentState.dozing, mCurrentState.panelExpanded, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowCallback.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowCallback.java index 50cce45cd87a..6dc8065b2822 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowCallback.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowCallback.java @@ -16,6 +16,12 @@ package com.android.systemui.statusbar.phone; public interface StatusBarWindowCallback { - void onStateChanged(boolean keyguardShowing, boolean keyguardOccluded, boolean bouncerShowing, - boolean isDozing, boolean panelExpanded, boolean isDreaming); + /** + * Invoked when the internal state of NotificationShadeWindowControllerImpl changes. + * Some of the flags passed as argument to the callback might have changed, but this is not + * guaranteed. + */ + void onStateChanged(boolean keyguardShowing, boolean keyguardOccluded, + boolean keyguardGoingAway, boolean bouncerShowing, boolean isDozing, + boolean panelExpanded, boolean isDreaming); } diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java index 56df3e114c0b..06d94b9d4766 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java @@ -235,8 +235,8 @@ public class BubblesManager { // Store callback in a field so it won't get GC'd mStatusBarWindowCallback = - (keyguardShowing, keyguardOccluded, bouncerShowing, isDozing, panelExpanded, - isDreaming) -> + (keyguardShowing, keyguardOccluded, keyguardGoingAway, bouncerShowing, isDozing, + panelExpanded, isDreaming) -> mBubbles.onNotificationPanelExpandedChanged(panelExpanded); notificationShadeWindowController.registerCallback(mStatusBarWindowCallback); |