diff options
4 files changed, 27 insertions, 21 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 cc3a67cd2788..f03a7a319c6c 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 @@ -61,12 +61,14 @@ public class QuickStepContract { public static final int SYSUI_STATE_A11Y_BUTTON_CLICKABLE = 1 << 4; // The navigation bar a11y button shortcut is available public static final int SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE = 1 << 5; - // The keyguard is showing + // The keyguard is showing and not occluded public static final int SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING = 1 << 6; // The recents feature is disabled (either by SUW/SysUI/device policy) public static final int SYSUI_STATE_OVERVIEW_DISABLED = 1 << 7; // The home feature is disabled (either by SUW/SysUI/device policy) public static final int SYSUI_STATE_HOME_DISABLED = 1 << 8; + // The keyguard is showing, but occluded + public static final int SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED = 1 << 9; @Retention(RetentionPolicy.SOURCE) @IntDef({SYSUI_STATE_SCREEN_PINNING, @@ -76,6 +78,7 @@ public class QuickStepContract { SYSUI_STATE_A11Y_BUTTON_CLICKABLE, SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE, SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING, + SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED, SYSUI_STATE_OVERVIEW_DISABLED, SYSUI_STATE_HOME_DISABLED }) @@ -89,6 +92,8 @@ public class QuickStepContract { str.add((flags & SYSUI_STATE_NAV_BAR_HIDDEN) != 0 ? "navbar_hidden" : ""); str.add((flags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) != 0 ? "notif_visible" : ""); str.add((flags & SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING) != 0 ? "keygrd_visible" : ""); + str.add((flags & SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED) != 0 + ? "keygrd_occluded" : ""); str.add((flags & SYSUI_STATE_BOUNCER_SHOWING) != 0 ? "bouncer_visible" : ""); str.add((flags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0 ? "a11y_click" : ""); str.add((flags & SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE) != 0 ? "a11y_long_click" : ""); diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index 1848219606db..b0f77ceccd58 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -41,7 +41,6 @@ import android.graphics.Region; import android.hardware.input.InputManager; import android.os.Binder; import android.os.Bundle; -import android.os.Debug; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -69,6 +68,7 @@ import com.android.systemui.statusbar.phone.NavigationBarFragment; import com.android.systemui.statusbar.phone.NavigationBarView; import com.android.systemui.statusbar.phone.NavigationModeController; import com.android.systemui.statusbar.phone.StatusBar; +import com.android.systemui.statusbar.phone.StatusBarWindowController; import com.android.systemui.statusbar.policy.CallbackController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; @@ -516,7 +516,8 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis final NavigationBarController navBar = Dependency.get(NavigationBarController.class); final NavigationBarFragment navBarFragment = navBar.getDefaultNavigationBarFragment(); final NavigationBarView navBarView = navBar.getNavigationBarView(mContext.getDisplayId()); - final StatusBar statusBar = SysUiServiceProvider.getComponent(mContext, StatusBar.class); + final StatusBarWindowController statusBarController = + Dependency.get(StatusBarWindowController.class); mSysUiStateFlags = 0; if (navBarFragment != null) { @@ -525,8 +526,8 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis if (navBarView != null) { navBarView.updateSystemUiStateFlags(); } - if (statusBar != null) { - statusBar.updateSystemUiStateFlags(); + if (statusBarController != null) { + statusBarController.updateSystemUiStateFlags(); } notifySystemUiStateFlags(mSysUiStateFlags); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 05a23fa49922..e79aa454aa62 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -30,8 +30,6 @@ import static com.android.systemui.Dependency.MAIN_HANDLER; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING; -import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING; -import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING; import static com.android.systemui.shared.system.WindowManagerWrapper.NAV_BAR_POS_INVALID; import static com.android.systemui.shared.system.WindowManagerWrapper.NAV_BAR_POS_LEFT; import static com.android.systemui.statusbar.NotificationLockscreenUserManager.PERMISSION_SELF; @@ -169,7 +167,6 @@ import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.Snoo import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSFragment; import com.android.systemui.qs.QSPanel; -import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.recents.ScreenPinningRequest; import com.android.systemui.shared.system.WindowManagerWrapper; @@ -785,8 +782,6 @@ public class StatusBar extends SystemUI implements DemoMode, int disabledFlags2 = result.mDisabledFlags2; Dependency.get(InitController.class).addPostInitTask( () -> setUpDisableFlags(disabledFlags1, disabledFlags2)); - - updateSystemUiStateFlags(); } // ================================================================================ @@ -3420,7 +3415,6 @@ public class StatusBar extends SystemUI implements DemoMode, updateDozingState(); checkBarModes(); updateScrimController(); - updateSystemUiStateFlags(); mPresenter.updateMediaMetaData(false, mState != StatusBarState.KEYGUARD); mKeyguardMonitor.notifyKeyguardState(mStatusBarKeyguardViewManager.isShowing(), mUnlockMethodCache.isMethodSecure(), @@ -3587,16 +3581,6 @@ public class StatusBar extends SystemUI implements DemoMode, if (!mBouncerShowing) { updatePanelExpansionForKeyguard(); } - updateSystemUiStateFlags(); - } - - public void updateSystemUiStateFlags() { - OverviewProxyService overviewProxyService = Dependency.get(OverviewProxyService.class); - overviewProxyService.setSystemUiStateFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING, - mStatusBarStateController.getState() == StatusBarState.KEYGUARD, - mDisplayId); - overviewProxyService.setSystemUiStateFlag(SYSUI_STATE_BOUNCER_SHOWING, - isBouncerShowing(), mDisplayId); } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java index 631920c16a2c..891bb35127ee 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java @@ -18,6 +18,9 @@ package com.android.systemui.statusbar.phone; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; +import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING; +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.statusbar.NotificationRemoteInputManager.ENABLE_REMOTE_INPUT; import android.app.ActivityManager; @@ -45,6 +48,7 @@ import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener; +import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.statusbar.RemoteInputController.Callback; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.SysuiStatusBarStateController; @@ -315,6 +319,18 @@ public class StatusBarWindowController implements Callback, Dumpable, Configurat } mHasTopUi = mHasTopUiChanged; } + updateSystemUiStateFlags(); + } + + public void updateSystemUiStateFlags() { + int displayId = mContext.getDisplayId(); + OverviewProxyService overviewProxyService = Dependency.get(OverviewProxyService.class); + overviewProxyService.setSystemUiStateFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING, + mCurrentState.keyguardShowing && !mCurrentState.keyguardOccluded, displayId); + overviewProxyService.setSystemUiStateFlag(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED, + mCurrentState.keyguardShowing && mCurrentState.keyguardOccluded, displayId); + overviewProxyService.setSystemUiStateFlag(SYSUI_STATE_BOUNCER_SHOWING, + mCurrentState.bouncerShowing, displayId); } private void applyForceStatusBarVisibleFlag(State state) { |