summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2021-11-09 19:34:32 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-11-09 19:34:32 +0000
commite650ac67af53f6ef5abb35e95cf52ea46c022d30 (patch)
tree66d8042efb47304b7e5c049a87673e693592a88f
parent858baa8c977cd206d3b9d8912274f266e4faa574 (diff)
parent84de69dcce7f407e4e3377144a9fa4a91e07e24b (diff)
Merge "[Status Bar Refactor] Move logic about hiding status bar icons for bouncer into a separate class and reference that in CollapsedStatusBarFragment." into sc-v2-dev am: 84de69dcce
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16162822 Change-Id: I289e534887dc9867f2142159f486f573766adfd6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java66
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHideIconsForBouncerManager.kt133
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacksTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java8
8 files changed, 177 insertions, 72 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
index 6beafab32e55..fe621da17767 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
@@ -106,6 +106,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
private final NotificationIconAreaController mNotificationIconAreaController;
private final PanelExpansionStateManager mPanelExpansionStateManager;
private final StatusBarIconController mStatusBarIconController;
+ private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
private List<String> mBlockedIcons = new ArrayList<>();
@@ -134,6 +135,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
FeatureFlags featureFlags,
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
StatusBarIconController statusBarIconController,
+ StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
KeyguardStateController keyguardStateController,
NetworkController networkController,
StatusBarStateController statusBarStateController,
@@ -149,6 +151,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
mFeatureFlags = featureFlags;
mStatusBarOptionalLazy = statusBarOptionalLazy;
mStatusBarIconController = statusBarIconController;
+ mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mKeyguardStateController = keyguardStateController;
mNetworkController = networkController;
mStatusBarStateController = statusBarStateController;
@@ -374,10 +377,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
StatusBar::hideStatusBarIconsWhenExpanded).orElse(false)) {
return true;
}
- if (statusBarOptional.map(StatusBar::hideStatusBarIconsForBouncer).orElse(false)) {
- return true;
- }
- return false;
+ return mStatusBarHideIconsForBouncerManager.getShouldHideStatusBarIconsForBouncer();
}
private void hideSystemIconArea(boolean animate) {
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 84863cfe091a..f564f6fb5e3f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -340,6 +340,12 @@ public class StatusBar extends SystemUI implements
void setWindowState(int state) {
mStatusBarWindowState = state;
mStatusBarWindowHidden = state == WINDOW_STATE_HIDDEN;
+ mStatusBarHideIconsForBouncerManager.setStatusBarWindowHidden(mStatusBarWindowHidden);
+ if (getStatusBarView() != null) {
+ // Should #updateHideIconsForBouncer always be called, regardless of whether we have a
+ // status bar view? If so, we can make #updateHideIconsForBouncer private.
+ mStatusBarHideIconsForBouncerManager.updateHideIconsForBouncer(/* animate= */ false);
+ }
}
void acquireGestureWakeLock(long time) {
@@ -359,14 +365,6 @@ public class StatusBar extends SystemUI implements
return mStatusBarMode;
}
- boolean getWereIconsJustHidden() {
- return mWereIconsJustHidden;
- }
-
- void setWereIconsJustHidden(boolean justHidden) {
- mWereIconsJustHidden = justHidden;
- }
-
void resendMessage(int msg) {
mMessageRouter.cancelMessages(msg);
mMessageRouter.sendMessage(msg);
@@ -509,6 +507,7 @@ public class StatusBar extends SystemUI implements
private final SystemStatusAnimationScheduler mAnimationScheduler;
private final StatusBarLocationPublisher mStatusBarLocationPublisher;
private final StatusBarIconController mStatusBarIconController;
+ private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
// expanded notifications
// the sliding/resizing panel within the notification window
@@ -641,10 +640,7 @@ public class StatusBar extends SystemUI implements
private int mLastLoggedStateFingerprint;
private boolean mTopHidesStatusBar;
private boolean mStatusBarWindowHidden;
- private boolean mHideIconsForBouncer;
private boolean mIsOccluded;
- private boolean mWereIconsJustHidden;
- private boolean mBouncerWasShowingWhenHidden;
private boolean mIsLaunchingActivityOverLockscreen;
private final UserSwitcherController mUserSwitcherController;
@@ -777,6 +773,7 @@ public class StatusBar extends SystemUI implements
SystemStatusAnimationScheduler animationScheduler,
StatusBarLocationPublisher locationPublisher,
StatusBarIconController statusBarIconController,
+ StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
LockscreenShadeTransitionController lockscreenShadeTransitionController,
FeatureFlags featureFlags,
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -873,6 +870,7 @@ public class StatusBar extends SystemUI implements
mAnimationScheduler = animationScheduler;
mStatusBarLocationPublisher = locationPublisher;
mStatusBarIconController = statusBarIconController;
+ mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mFeatureFlags = featureFlags;
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
mMainHandler = mainHandler;
@@ -938,6 +936,7 @@ public class StatusBar extends SystemUI implements
mDisplay = mContext.getDisplay();
mDisplayId = mDisplay.getDisplayId();
updateDisplaySize();
+ mStatusBarHideIconsForBouncerManager.setDisplayId(mDisplayId);
// start old BaseStatusBar.start().
mWindowManagerService = WindowManagerGlobal.getWindowManagerService();
@@ -1198,6 +1197,7 @@ public class StatusBar extends SystemUI implements
() -> Optional.of(this),
mStatusBarIconController,
+ mStatusBarHideIconsForBouncerManager,
mKeyguardStateController,
mNetworkController,
mStatusBarStateController,
@@ -1872,7 +1872,7 @@ public class StatusBar extends SystemUI implements
mNotificationLogger.onPanelExpandedChanged(isExpanded);
}
mPanelExpanded = isExpanded;
- updateHideIconsForBouncer(false /* animate */);
+ mStatusBarHideIconsForBouncerManager.setPanelExpandedAndTriggerUpdate(isExpanded);
mNotificationShadeWindowController.setPanelExpanded(isExpanded);
mStatusBarStateController.setPanelExpanded(isExpanded);
if (isExpanded && mStatusBarStateController.getState() != StatusBarState.KEYGUARD) {
@@ -1916,46 +1916,8 @@ public class StatusBar extends SystemUI implements
public void setOccluded(boolean occluded) {
mIsOccluded = occluded;
+ mStatusBarHideIconsForBouncerManager.setIsOccludedAndTriggerUpdate(occluded);
mScrimController.setKeyguardOccluded(occluded);
- updateHideIconsForBouncer(false /* animate */);
- }
-
- public boolean hideStatusBarIconsForBouncer() {
- return mHideIconsForBouncer || mWereIconsJustHidden;
- }
-
- /**
- * Decides if the status bar (clock + notifications + signal cluster) should be visible
- * or not when showing the bouncer.
- *
- * We want to hide it when:
- * • User swipes up on the keyguard
- * • Locked activity that doesn't show a status bar requests the bouncer
- *
- * @param animate should the change of the icons be animated.
- */
- void updateHideIconsForBouncer(boolean animate) {
- boolean hideBecauseApp = mTopHidesStatusBar && mIsOccluded
- && (mStatusBarWindowHidden || mBouncerShowing);
- boolean hideBecauseKeyguard = !mPanelExpanded && !mIsOccluded && mBouncerShowing;
- boolean shouldHideIconsForBouncer = hideBecauseApp || hideBecauseKeyguard;
- if (mHideIconsForBouncer != shouldHideIconsForBouncer) {
- mHideIconsForBouncer = shouldHideIconsForBouncer;
- if (!shouldHideIconsForBouncer && mBouncerWasShowingWhenHidden) {
- // We're delaying the showing, since most of the time the fullscreen app will
- // hide the icons again and we don't want them to fade in and out immediately again.
- mWereIconsJustHidden = true;
- mMainExecutor.executeDelayed(() -> {
- mWereIconsJustHidden = false;
- mCommandQueue.recomputeDisableFlags(mDisplayId, true);
- }, 500);
- } else {
- mCommandQueue.recomputeDisableFlags(mDisplayId, animate);
- }
- }
- if (shouldHideIconsForBouncer) {
- mBouncerWasShowingWhenHidden = mBouncerShowing;
- }
}
public boolean headsUpShouldBeVisible() {
@@ -3500,7 +3462,7 @@ public class StatusBar extends SystemUI implements
mKeyguardBypassController.setBouncerShowing(bouncerShowing);
mPulseExpansionHandler.setBouncerShowing(bouncerShowing);
setBouncerShowingForStatusBarComponents(bouncerShowing);
- updateHideIconsForBouncer(true /* animate */);
+ mStatusBarHideIconsForBouncerManager.setBouncerShowingAndTriggerUpdate(bouncerShowing);
mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */);
updateScrimController();
if (!mBouncerShowing) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java
index bb1daa252cdf..a77a097f0453 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java
@@ -95,6 +95,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
private final SysuiStatusBarStateController mStatusBarStateController;
private final NotificationShadeWindowView mNotificationShadeWindowView;
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
+ private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
private final PowerManager mPowerManager;
private final VibratorHelper mVibratorHelper;
private final Optional<Vibrator> mVibratorOptional;
@@ -132,6 +133,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
SysuiStatusBarStateController statusBarStateController,
NotificationShadeWindowView notificationShadeWindowView,
NotificationStackScrollLayoutController notificationStackScrollLayoutController,
+ StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
PowerManager powerManager,
VibratorHelper vibratorHelper,
Optional<Vibrator> vibratorOptional,
@@ -158,6 +160,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
mStatusBarStateController = statusBarStateController;
mNotificationShadeWindowView = notificationShadeWindowView;
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
+ mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mPowerManager = powerManager;
mVibratorHelper = vibratorHelper;
mVibratorOptional = vibratorOptional;
@@ -509,14 +512,8 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
@Override
public void setTopAppHidesStatusBar(boolean topAppHidesStatusBar) {
- mStatusBar.setTopHidesStatusBar(topAppHidesStatusBar);
- if (!topAppHidesStatusBar && mStatusBar.getWereIconsJustHidden()) {
- // Immediately update the icon hidden state, since that should only apply if we're
- // staying fullscreen.
- mStatusBar.setWereIconsJustHidden(false);
- mCommandQueue.recomputeDisableFlags(mDisplayId, true);
- }
- mStatusBar.updateHideIconsForBouncer(true /* animate */);
+ mStatusBarHideIconsForBouncerManager
+ .setTopAppHidesStatusBarAndTriggerUpdate(topAppHidesStatusBar);
}
@Override
@@ -534,13 +531,11 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
if (StatusBar.DEBUG_WINDOW_STATE) {
Log.d(StatusBar.TAG, "Status bar " + windowStateToString(state));
}
- if (mStatusBar.getStatusBarView() != null) {
- if (!showing && mStatusBarStateController.getState() == StatusBarState.SHADE) {
+ if (mStatusBar.getStatusBarView() != null
+ && !showing
+ && mStatusBarStateController.getState() == StatusBarState.SHADE) {
mNotificationPanelViewController.collapsePanel(
false /* animate */, false /* delayed */, 1.0f /* speedUpFactor */);
- }
-
- mStatusBar.updateHideIconsForBouncer(false /* animate */);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHideIconsForBouncerManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHideIconsForBouncerManager.kt
new file mode 100644
index 000000000000..d2181d0480d2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHideIconsForBouncerManager.kt
@@ -0,0 +1,133 @@
+package com.android.systemui.statusbar.phone
+
+import com.android.systemui.Dumpable
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.dump.DumpManager
+import com.android.systemui.statusbar.CommandQueue
+import com.android.systemui.util.concurrency.DelayableExecutor
+import java.io.FileDescriptor
+import java.io.PrintWriter
+import javax.inject.Inject
+
+/**
+ * A class that manages if the status bar (clock + notifications + signal cluster) should be visible
+ * or not when showing the bouncer.
+ *
+ * We want to hide it when:
+ * • User swipes up on the keyguard
+ * • Locked activity that doesn't show a status bar requests the bouncer.
+ *
+ * [getShouldHideStatusBarIconsForBouncer] is the main exported method for this class. The other
+ * methods set state variables that are used in the calculation or manually trigger an update.
+ */
+@SysUISingleton
+class StatusBarHideIconsForBouncerManager @Inject constructor(
+ private val commandQueue: CommandQueue,
+ @Main private val mainExecutor: DelayableExecutor,
+ dumpManager: DumpManager
+) : Dumpable {
+ // State variables set by external classes.
+ private var panelExpanded: Boolean = false
+ private var isOccluded: Boolean = false
+ private var bouncerShowing: Boolean = false
+ private var topAppHidesStatusBar: Boolean = false
+ private var statusBarWindowHidden: Boolean = false
+ private var displayId: Int = 0
+
+ // State variables calculated internally.
+ private var hideIconsForBouncer: Boolean = false
+ private var bouncerWasShowingWhenHidden: Boolean = false
+ private var wereIconsJustHidden: Boolean = false
+
+ init {
+ dumpManager.registerDumpable(this)
+ }
+
+ /** Returns true if the status bar icons should be hidden in the bouncer. */
+ fun getShouldHideStatusBarIconsForBouncer(): Boolean {
+ return hideIconsForBouncer || wereIconsJustHidden
+ }
+
+ fun setStatusBarWindowHidden(statusBarWindowHidden: Boolean) {
+ this.statusBarWindowHidden = statusBarWindowHidden
+ }
+
+ fun setDisplayId(displayId: Int) {
+ this.displayId = displayId
+ }
+
+ fun setPanelExpandedAndTriggerUpdate(panelExpanded: Boolean) {
+ this.panelExpanded = panelExpanded
+ updateHideIconsForBouncer(animate = false)
+ }
+
+ fun setIsOccludedAndTriggerUpdate(isOccluded: Boolean) {
+ this.isOccluded = isOccluded
+ updateHideIconsForBouncer(animate = false)
+ }
+
+ fun setBouncerShowingAndTriggerUpdate(bouncerShowing: Boolean) {
+ this.bouncerShowing = bouncerShowing
+ updateHideIconsForBouncer(animate = true)
+ }
+
+ fun setTopAppHidesStatusBarAndTriggerUpdate(topAppHidesStatusBar: Boolean) {
+ this.topAppHidesStatusBar = topAppHidesStatusBar
+ if (!topAppHidesStatusBar && wereIconsJustHidden) {
+ // Immediately update the icon hidden state, since that should only apply if we're
+ // staying fullscreen.
+ wereIconsJustHidden = false
+ commandQueue.recomputeDisableFlags(displayId, /* animate= */ true)
+ }
+ updateHideIconsForBouncer(animate = true)
+ }
+
+ /**
+ * Updates whether the status bar icons should be hidden in the bouncer. May trigger
+ * [commandQueue.recomputeDisableFlags] if the icon visibility status changes.
+ */
+ fun updateHideIconsForBouncer(animate: Boolean) {
+ val hideBecauseApp =
+ topAppHidesStatusBar &&
+ isOccluded &&
+ (statusBarWindowHidden || bouncerShowing)
+ val hideBecauseKeyguard = !panelExpanded && !isOccluded && bouncerShowing
+ val shouldHideIconsForBouncer = hideBecauseApp || hideBecauseKeyguard
+ if (hideIconsForBouncer != shouldHideIconsForBouncer) {
+ hideIconsForBouncer = shouldHideIconsForBouncer
+ if (!shouldHideIconsForBouncer && bouncerWasShowingWhenHidden) {
+ // We're delaying the showing, since most of the time the fullscreen app will
+ // hide the icons again and we don't want them to fade in and out immediately again.
+ wereIconsJustHidden = true
+ mainExecutor.executeDelayed(
+ {
+ wereIconsJustHidden = false
+ commandQueue.recomputeDisableFlags(displayId, true)
+ },
+ 500
+ )
+ } else {
+ commandQueue.recomputeDisableFlags(displayId, animate)
+ }
+ }
+ if (shouldHideIconsForBouncer) {
+ bouncerWasShowingWhenHidden = bouncerShowing
+ }
+ }
+
+ override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
+ pw.println("---- State variables set externally ----")
+ pw.println("panelExpanded=$panelExpanded")
+ pw.println("isOccluded=$isOccluded")
+ pw.println("bouncerShowing=$bouncerShowing")
+ pw.println("topAppHideStatusBar=$topAppHidesStatusBar")
+ pw.println("statusBarWindowHidden=$statusBarWindowHidden")
+ pw.println("displayId=$displayId")
+
+ pw.println("---- State variables calculated internally ----")
+ pw.println("hideIconsForBouncer=$hideIconsForBouncer")
+ pw.println("bouncerWasShowingWhenHidden=$bouncerWasShowingWhenHidden")
+ pw.println("wereIconsJustHidden=$wereIconsJustHidden")
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
index 5a3cb6f569a6..3259f6b8027b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
@@ -92,6 +92,7 @@ import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.phone.StatusBar;
+import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
@@ -224,6 +225,7 @@ public interface StatusBarPhoneModule {
SystemStatusAnimationScheduler animationScheduler,
StatusBarLocationPublisher locationPublisher,
StatusBarIconController statusBarIconController,
+ StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
LockscreenShadeTransitionController transitionController,
FeatureFlags featureFlags,
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -322,6 +324,7 @@ public interface StatusBarPhoneModule {
animationScheduler,
locationPublisher,
statusBarIconController,
+ statusBarHideIconsForBouncerManager,
transitionController,
featureFlags,
keyguardUnlockAnimationController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
index fd3783f02521..c300021ac53a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
@@ -38,6 +38,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.R;
import com.android.systemui.SysuiBaseFragmentTest;
+import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.LogcatEchoTracker;
@@ -50,6 +51,8 @@ import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
+import com.android.systemui.util.concurrency.FakeExecutor;
+import com.android.systemui.util.time.FakeSystemClock;
import org.junit.Before;
import org.junit.Ignore;
@@ -264,6 +267,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
mock(FeatureFlags.class),
() -> Optional.of(mStatusBar),
mStatusBarIconController,
+ new StatusBarHideIconsForBouncerManager(
+ mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
mKeyguardStateController,
mNetworkController,
mStatusBarStateController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacksTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacksTest.java
index 8555306bae04..0131293656e7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacksTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacksTest.java
@@ -36,6 +36,7 @@ import com.android.internal.logging.testing.FakeMetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.assist.AssistManager;
+import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DisableFlagsLogger;
@@ -45,6 +46,8 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
+import com.android.systemui.util.concurrency.FakeExecutor;
+import com.android.systemui.util.time.FakeSystemClock;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import org.junit.Before;
@@ -109,6 +112,8 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
mStatusBarStateController,
mNotificationShadeWindowView,
mNotificationStackScrollLayoutController,
+ new StatusBarHideIconsForBouncerManager(
+ mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
mPowerManager,
mVibratorHelper,
Optional.of(mVibrator),
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 7a93d03a5843..bd87a5021f8b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -279,6 +279,7 @@ public class StatusBarTest extends SysuiTestCase {
private FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock);
private FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock);
private InitController mInitController = new InitController();
+ private final DumpManager mDumpManager = new DumpManager();
@Before
public void setup() throws Exception {
@@ -332,7 +333,7 @@ public class StatusBarTest extends SysuiTestCase {
}).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any());
WakefulnessLifecycle wakefulnessLifecycle =
- new WakefulnessLifecycle(mContext, mIWallpaperManager, mock(DumpManager.class));
+ new WakefulnessLifecycle(mContext, mIWallpaperManager, mDumpManager);
wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
wakefulnessLifecycle.dispatchFinishedWakingUp();
@@ -390,7 +391,7 @@ public class StatusBarTest extends SysuiTestCase {
mNetworkController,
mBatteryController,
mColorExtractor,
- new ScreenLifecycle(mock(DumpManager.class)),
+ new ScreenLifecycle(mDumpManager),
wakefulnessLifecycle,
mStatusBarStateController,
Optional.of(mBubblesManager),
@@ -440,6 +441,7 @@ public class StatusBarTest extends SysuiTestCase {
mAnimationScheduler,
mLocationPublisher,
mIconController,
+ new StatusBarHideIconsForBouncerManager(mCommandQueue, mMainExecutor, mDumpManager),
mLockscreenTransitionController,
mFeatureFlags,
mKeyguardUnlockAnimationController,
@@ -450,7 +452,7 @@ public class StatusBarTest extends SysuiTestCase {
mUnlockedScreenOffAnimationController,
Optional.of(mStartingSurface),
mTunerService,
- mock(DumpManager.class),
+ mDumpManager,
mActivityLaunchAnimator);
when(mKeyguardViewMediator.registerStatusBar(
any(StatusBar.class),