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

This commit is contained in:
TreeHugger Robot
2021-11-09 19:29:55 +00:00
committed by Android (Google) Code Review
8 changed files with 177 additions and 72 deletions

View File

@@ -106,6 +106,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
private final NotificationIconAreaController mNotificationIconAreaController; private final NotificationIconAreaController mNotificationIconAreaController;
private final PanelExpansionStateManager mPanelExpansionStateManager; private final PanelExpansionStateManager mPanelExpansionStateManager;
private final StatusBarIconController mStatusBarIconController; private final StatusBarIconController mStatusBarIconController;
private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
private List<String> mBlockedIcons = new ArrayList<>(); private List<String> mBlockedIcons = new ArrayList<>();
@@ -134,6 +135,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
FeatureFlags featureFlags, FeatureFlags featureFlags,
Lazy<Optional<StatusBar>> statusBarOptionalLazy, Lazy<Optional<StatusBar>> statusBarOptionalLazy,
StatusBarIconController statusBarIconController, StatusBarIconController statusBarIconController,
StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
KeyguardStateController keyguardStateController, KeyguardStateController keyguardStateController,
NetworkController networkController, NetworkController networkController,
StatusBarStateController statusBarStateController, StatusBarStateController statusBarStateController,
@@ -149,6 +151,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
mFeatureFlags = featureFlags; mFeatureFlags = featureFlags;
mStatusBarOptionalLazy = statusBarOptionalLazy; mStatusBarOptionalLazy = statusBarOptionalLazy;
mStatusBarIconController = statusBarIconController; mStatusBarIconController = statusBarIconController;
mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mKeyguardStateController = keyguardStateController; mKeyguardStateController = keyguardStateController;
mNetworkController = networkController; mNetworkController = networkController;
mStatusBarStateController = statusBarStateController; mStatusBarStateController = statusBarStateController;
@@ -374,10 +377,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
StatusBar::hideStatusBarIconsWhenExpanded).orElse(false)) { StatusBar::hideStatusBarIconsWhenExpanded).orElse(false)) {
return true; return true;
} }
if (statusBarOptional.map(StatusBar::hideStatusBarIconsForBouncer).orElse(false)) { return mStatusBarHideIconsForBouncerManager.getShouldHideStatusBarIconsForBouncer();
return true;
}
return false;
} }
private void hideSystemIconArea(boolean animate) { private void hideSystemIconArea(boolean animate) {

View File

@@ -340,6 +340,12 @@ public class StatusBar extends SystemUI implements
void setWindowState(int state) { void setWindowState(int state) {
mStatusBarWindowState = state; mStatusBarWindowState = state;
mStatusBarWindowHidden = state == WINDOW_STATE_HIDDEN; 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) { void acquireGestureWakeLock(long time) {
@@ -359,14 +365,6 @@ public class StatusBar extends SystemUI implements
return mStatusBarMode; return mStatusBarMode;
} }
boolean getWereIconsJustHidden() {
return mWereIconsJustHidden;
}
void setWereIconsJustHidden(boolean justHidden) {
mWereIconsJustHidden = justHidden;
}
void resendMessage(int msg) { void resendMessage(int msg) {
mMessageRouter.cancelMessages(msg); mMessageRouter.cancelMessages(msg);
mMessageRouter.sendMessage(msg); mMessageRouter.sendMessage(msg);
@@ -509,6 +507,7 @@ public class StatusBar extends SystemUI implements
private final SystemStatusAnimationScheduler mAnimationScheduler; private final SystemStatusAnimationScheduler mAnimationScheduler;
private final StatusBarLocationPublisher mStatusBarLocationPublisher; private final StatusBarLocationPublisher mStatusBarLocationPublisher;
private final StatusBarIconController mStatusBarIconController; private final StatusBarIconController mStatusBarIconController;
private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
// expanded notifications // expanded notifications
// the sliding/resizing panel within the notification window // the sliding/resizing panel within the notification window
@@ -641,10 +640,7 @@ public class StatusBar extends SystemUI implements
private int mLastLoggedStateFingerprint; private int mLastLoggedStateFingerprint;
private boolean mTopHidesStatusBar; private boolean mTopHidesStatusBar;
private boolean mStatusBarWindowHidden; private boolean mStatusBarWindowHidden;
private boolean mHideIconsForBouncer;
private boolean mIsOccluded; private boolean mIsOccluded;
private boolean mWereIconsJustHidden;
private boolean mBouncerWasShowingWhenHidden;
private boolean mIsLaunchingActivityOverLockscreen; private boolean mIsLaunchingActivityOverLockscreen;
private final UserSwitcherController mUserSwitcherController; private final UserSwitcherController mUserSwitcherController;
@@ -777,6 +773,7 @@ public class StatusBar extends SystemUI implements
SystemStatusAnimationScheduler animationScheduler, SystemStatusAnimationScheduler animationScheduler,
StatusBarLocationPublisher locationPublisher, StatusBarLocationPublisher locationPublisher,
StatusBarIconController statusBarIconController, StatusBarIconController statusBarIconController,
StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
LockscreenShadeTransitionController lockscreenShadeTransitionController, LockscreenShadeTransitionController lockscreenShadeTransitionController,
FeatureFlags featureFlags, FeatureFlags featureFlags,
KeyguardUnlockAnimationController keyguardUnlockAnimationController, KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -873,6 +870,7 @@ public class StatusBar extends SystemUI implements
mAnimationScheduler = animationScheduler; mAnimationScheduler = animationScheduler;
mStatusBarLocationPublisher = locationPublisher; mStatusBarLocationPublisher = locationPublisher;
mStatusBarIconController = statusBarIconController; mStatusBarIconController = statusBarIconController;
mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mFeatureFlags = featureFlags; mFeatureFlags = featureFlags;
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController; mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
mMainHandler = mainHandler; mMainHandler = mainHandler;
@@ -938,6 +936,7 @@ public class StatusBar extends SystemUI implements
mDisplay = mContext.getDisplay(); mDisplay = mContext.getDisplay();
mDisplayId = mDisplay.getDisplayId(); mDisplayId = mDisplay.getDisplayId();
updateDisplaySize(); updateDisplaySize();
mStatusBarHideIconsForBouncerManager.setDisplayId(mDisplayId);
// start old BaseStatusBar.start(). // start old BaseStatusBar.start().
mWindowManagerService = WindowManagerGlobal.getWindowManagerService(); mWindowManagerService = WindowManagerGlobal.getWindowManagerService();
@@ -1197,6 +1196,7 @@ public class StatusBar extends SystemUI implements
mFeatureFlags, mFeatureFlags,
() -> Optional.of(this), () -> Optional.of(this),
mStatusBarIconController, mStatusBarIconController,
mStatusBarHideIconsForBouncerManager,
mKeyguardStateController, mKeyguardStateController,
mNetworkController, mNetworkController,
mStatusBarStateController, mStatusBarStateController,
@@ -1871,7 +1871,7 @@ public class StatusBar extends SystemUI implements
mNotificationLogger.onPanelExpandedChanged(isExpanded); mNotificationLogger.onPanelExpandedChanged(isExpanded);
} }
mPanelExpanded = isExpanded; mPanelExpanded = isExpanded;
updateHideIconsForBouncer(false /* animate */); mStatusBarHideIconsForBouncerManager.setPanelExpandedAndTriggerUpdate(isExpanded);
mNotificationShadeWindowController.setPanelExpanded(isExpanded); mNotificationShadeWindowController.setPanelExpanded(isExpanded);
mStatusBarStateController.setPanelExpanded(isExpanded); mStatusBarStateController.setPanelExpanded(isExpanded);
if (isExpanded && mStatusBarStateController.getState() != StatusBarState.KEYGUARD) { if (isExpanded && mStatusBarStateController.getState() != StatusBarState.KEYGUARD) {
@@ -1915,46 +1915,8 @@ public class StatusBar extends SystemUI implements
public void setOccluded(boolean occluded) { public void setOccluded(boolean occluded) {
mIsOccluded = occluded; mIsOccluded = occluded;
mStatusBarHideIconsForBouncerManager.setIsOccludedAndTriggerUpdate(occluded);
mScrimController.setKeyguardOccluded(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() { public boolean headsUpShouldBeVisible() {
@@ -3499,7 +3461,7 @@ public class StatusBar extends SystemUI implements
mKeyguardBypassController.setBouncerShowing(bouncerShowing); mKeyguardBypassController.setBouncerShowing(bouncerShowing);
mPulseExpansionHandler.setBouncerShowing(bouncerShowing); mPulseExpansionHandler.setBouncerShowing(bouncerShowing);
setBouncerShowingForStatusBarComponents(bouncerShowing); setBouncerShowingForStatusBarComponents(bouncerShowing);
updateHideIconsForBouncer(true /* animate */); mStatusBarHideIconsForBouncerManager.setBouncerShowingAndTriggerUpdate(bouncerShowing);
mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */); mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */);
updateScrimController(); updateScrimController();
if (!mBouncerShowing) { if (!mBouncerShowing) {

View File

@@ -95,6 +95,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
private final SysuiStatusBarStateController mStatusBarStateController; private final SysuiStatusBarStateController mStatusBarStateController;
private final NotificationShadeWindowView mNotificationShadeWindowView; private final NotificationShadeWindowView mNotificationShadeWindowView;
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController; private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
private final PowerManager mPowerManager; private final PowerManager mPowerManager;
private final VibratorHelper mVibratorHelper; private final VibratorHelper mVibratorHelper;
private final Optional<Vibrator> mVibratorOptional; private final Optional<Vibrator> mVibratorOptional;
@@ -132,6 +133,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
SysuiStatusBarStateController statusBarStateController, SysuiStatusBarStateController statusBarStateController,
NotificationShadeWindowView notificationShadeWindowView, NotificationShadeWindowView notificationShadeWindowView,
NotificationStackScrollLayoutController notificationStackScrollLayoutController, NotificationStackScrollLayoutController notificationStackScrollLayoutController,
StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
PowerManager powerManager, PowerManager powerManager,
VibratorHelper vibratorHelper, VibratorHelper vibratorHelper,
Optional<Vibrator> vibratorOptional, Optional<Vibrator> vibratorOptional,
@@ -158,6 +160,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
mStatusBarStateController = statusBarStateController; mStatusBarStateController = statusBarStateController;
mNotificationShadeWindowView = notificationShadeWindowView; mNotificationShadeWindowView = notificationShadeWindowView;
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController; mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
mPowerManager = powerManager; mPowerManager = powerManager;
mVibratorHelper = vibratorHelper; mVibratorHelper = vibratorHelper;
mVibratorOptional = vibratorOptional; mVibratorOptional = vibratorOptional;
@@ -509,14 +512,8 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
@Override @Override
public void setTopAppHidesStatusBar(boolean topAppHidesStatusBar) { public void setTopAppHidesStatusBar(boolean topAppHidesStatusBar) {
mStatusBar.setTopHidesStatusBar(topAppHidesStatusBar); mStatusBarHideIconsForBouncerManager
if (!topAppHidesStatusBar && mStatusBar.getWereIconsJustHidden()) { .setTopAppHidesStatusBarAndTriggerUpdate(topAppHidesStatusBar);
// 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 */);
} }
@Override @Override
@@ -534,13 +531,11 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
if (StatusBar.DEBUG_WINDOW_STATE) { if (StatusBar.DEBUG_WINDOW_STATE) {
Log.d(StatusBar.TAG, "Status bar " + windowStateToString(state)); Log.d(StatusBar.TAG, "Status bar " + windowStateToString(state));
} }
if (mStatusBar.getStatusBarView() != null) { if (mStatusBar.getStatusBarView() != null
if (!showing && mStatusBarStateController.getState() == StatusBarState.SHADE) { && !showing
&& mStatusBarStateController.getState() == StatusBarState.SHADE) {
mNotificationPanelViewController.collapsePanel( mNotificationPanelViewController.collapsePanel(
false /* animate */, false /* delayed */, 1.0f /* speedUpFactor */); false /* animate */, false /* delayed */, 1.0f /* speedUpFactor */);
}
mStatusBar.updateHideIconsForBouncer(false /* animate */);
} }
} }

View File

@@ -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")
}
}

View File

@@ -92,6 +92,7 @@ import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.phone.StatusBar; 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.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher; import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
@@ -224,6 +225,7 @@ public interface StatusBarPhoneModule {
SystemStatusAnimationScheduler animationScheduler, SystemStatusAnimationScheduler animationScheduler,
StatusBarLocationPublisher locationPublisher, StatusBarLocationPublisher locationPublisher,
StatusBarIconController statusBarIconController, StatusBarIconController statusBarIconController,
StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
LockscreenShadeTransitionController transitionController, LockscreenShadeTransitionController transitionController,
FeatureFlags featureFlags, FeatureFlags featureFlags,
KeyguardUnlockAnimationController keyguardUnlockAnimationController, KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -322,6 +324,7 @@ public interface StatusBarPhoneModule {
animationScheduler, animationScheduler,
locationPublisher, locationPublisher,
statusBarIconController, statusBarIconController,
statusBarHideIconsForBouncerManager,
transitionController, transitionController,
featureFlags, featureFlags,
keyguardUnlockAnimationController, keyguardUnlockAnimationController,

View File

@@ -38,6 +38,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.SysuiBaseFragmentTest;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.log.LogBuffer; import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.LogcatEchoTracker; 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.ongoingcall.OngoingCallController;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.KeyguardStateController; 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.Before;
import org.junit.Ignore; import org.junit.Ignore;
@@ -264,6 +267,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
mock(FeatureFlags.class), mock(FeatureFlags.class),
() -> Optional.of(mStatusBar), () -> Optional.of(mStatusBar),
mStatusBarIconController, mStatusBarIconController,
new StatusBarHideIconsForBouncerManager(
mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
mKeyguardStateController, mKeyguardStateController,
mNetworkController, mNetworkController,
mStatusBarStateController, mStatusBarStateController,

View File

@@ -36,6 +36,7 @@ import com.android.internal.logging.testing.FakeMetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.assist.AssistManager; import com.android.systemui.assist.AssistManager;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DisableFlagsLogger; 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.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; 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 com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import org.junit.Before; import org.junit.Before;
@@ -109,6 +112,8 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
mStatusBarStateController, mStatusBarStateController,
mNotificationShadeWindowView, mNotificationShadeWindowView,
mNotificationStackScrollLayoutController, mNotificationStackScrollLayoutController,
new StatusBarHideIconsForBouncerManager(
mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
mPowerManager, mPowerManager,
mVibratorHelper, mVibratorHelper,
Optional.of(mVibrator), Optional.of(mVibrator),

View File

@@ -279,6 +279,7 @@ public class StatusBarTest extends SysuiTestCase {
private FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock); private FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock);
private FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock); private FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock);
private InitController mInitController = new InitController(); private InitController mInitController = new InitController();
private final DumpManager mDumpManager = new DumpManager();
@Before @Before
public void setup() throws Exception { public void setup() throws Exception {
@@ -332,7 +333,7 @@ public class StatusBarTest extends SysuiTestCase {
}).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any()); }).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any());
WakefulnessLifecycle wakefulnessLifecycle = WakefulnessLifecycle wakefulnessLifecycle =
new WakefulnessLifecycle(mContext, mIWallpaperManager, mock(DumpManager.class)); new WakefulnessLifecycle(mContext, mIWallpaperManager, mDumpManager);
wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN); wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
wakefulnessLifecycle.dispatchFinishedWakingUp(); wakefulnessLifecycle.dispatchFinishedWakingUp();
@@ -390,7 +391,7 @@ public class StatusBarTest extends SysuiTestCase {
mNetworkController, mNetworkController,
mBatteryController, mBatteryController,
mColorExtractor, mColorExtractor,
new ScreenLifecycle(mock(DumpManager.class)), new ScreenLifecycle(mDumpManager),
wakefulnessLifecycle, wakefulnessLifecycle,
mStatusBarStateController, mStatusBarStateController,
Optional.of(mBubblesManager), Optional.of(mBubblesManager),
@@ -440,6 +441,7 @@ public class StatusBarTest extends SysuiTestCase {
mAnimationScheduler, mAnimationScheduler,
mLocationPublisher, mLocationPublisher,
mIconController, mIconController,
new StatusBarHideIconsForBouncerManager(mCommandQueue, mMainExecutor, mDumpManager),
mLockscreenTransitionController, mLockscreenTransitionController,
mFeatureFlags, mFeatureFlags,
mKeyguardUnlockAnimationController, mKeyguardUnlockAnimationController,
@@ -450,7 +452,7 @@ public class StatusBarTest extends SysuiTestCase {
mUnlockedScreenOffAnimationController, mUnlockedScreenOffAnimationController,
Optional.of(mStartingSurface), Optional.of(mStartingSurface),
mTunerService, mTunerService,
mock(DumpManager.class), mDumpManager,
mActivityLaunchAnimator); mActivityLaunchAnimator);
when(mKeyguardViewMediator.registerStatusBar( when(mKeyguardViewMediator.registerStatusBar(
any(StatusBar.class), any(StatusBar.class),