[Status Bar Refactor] Have SBHideIconsForBouncerManager listen to window
state directly instead of getting it from StatusBar.java Fixes: 212424936 Test: manual Test: atest Change-Id: I594894928b27ce547c21467295c15e91f07db851
This commit is contained in:
@@ -341,14 +341,6 @@ public class StatusBar extends CoreStartable implements
|
||||
void onStatusBarWindowStateChanged(@WindowVisibleState int state) {
|
||||
updateBubblesVisibility();
|
||||
mStatusBarWindowState = state;
|
||||
mStatusBarWindowHidden = state == WINDOW_STATE_HIDDEN;
|
||||
// TODO(b/212424936): Have this icon manager just implement its own listener.
|
||||
mStatusBarHideIconsForBouncerManager.setStatusBarWindowHidden(mStatusBarWindowHidden);
|
||||
if (mStatusBarView != 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) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.app.StatusBarManager
|
||||
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.statusbar.window.StatusBarWindowStateController
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor
|
||||
import java.io.FileDescriptor
|
||||
import java.io.PrintWriter
|
||||
@@ -25,6 +27,7 @@ import javax.inject.Inject
|
||||
class StatusBarHideIconsForBouncerManager @Inject constructor(
|
||||
private val commandQueue: CommandQueue,
|
||||
@Main private val mainExecutor: DelayableExecutor,
|
||||
statusBarWindowStateController: StatusBarWindowStateController,
|
||||
dumpManager: DumpManager
|
||||
) : Dumpable {
|
||||
// State variables set by external classes.
|
||||
@@ -42,6 +45,9 @@ class StatusBarHideIconsForBouncerManager @Inject constructor(
|
||||
|
||||
init {
|
||||
dumpManager.registerDumpable(this)
|
||||
statusBarWindowStateController.addListener {
|
||||
state -> setStatusBarStateAndTriggerUpdate(state)
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns true if the status bar icons should be hidden in the bouncer. */
|
||||
@@ -49,8 +55,9 @@ class StatusBarHideIconsForBouncerManager @Inject constructor(
|
||||
return hideIconsForBouncer || wereIconsJustHidden
|
||||
}
|
||||
|
||||
fun setStatusBarWindowHidden(statusBarWindowHidden: Boolean) {
|
||||
this.statusBarWindowHidden = statusBarWindowHidden
|
||||
private fun setStatusBarStateAndTriggerUpdate(@StatusBarManager.WindowVisibleState state: Int) {
|
||||
statusBarWindowHidden = state == StatusBarManager.WINDOW_STATE_HIDDEN
|
||||
updateHideIconsForBouncer(animate = false)
|
||||
}
|
||||
|
||||
fun setDisplayId(displayId: Int) {
|
||||
@@ -87,7 +94,7 @@ class StatusBarHideIconsForBouncerManager @Inject constructor(
|
||||
* 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) {
|
||||
private fun updateHideIconsForBouncer(animate: Boolean) {
|
||||
val hideBecauseApp =
|
||||
topAppHidesStatusBar &&
|
||||
isOccluded &&
|
||||
|
||||
@@ -19,6 +19,6 @@ package com.android.systemui.statusbar.window
|
||||
import android.app.StatusBarManager
|
||||
|
||||
/** Listener interface for changes in the status bar window state. */
|
||||
interface StatusBarWindowStateListener {
|
||||
fun interface StatusBarWindowStateListener {
|
||||
fun onStatusBarWindowStateChanged(@StatusBarManager.WindowVisibleState state: Int)
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ 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;
|
||||
@@ -46,8 +45,6 @@ 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;
|
||||
@@ -84,6 +81,7 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
|
||||
@Mock private VibratorHelper mVibratorHelper;
|
||||
@Mock private Vibrator mVibrator;
|
||||
@Mock private LightBarController mLightBarController;
|
||||
@Mock private StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
|
||||
|
||||
StatusBarCommandQueueCallbacks mSbcqCallbacks;
|
||||
|
||||
@@ -112,8 +110,7 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
|
||||
mStatusBarStateController,
|
||||
mNotificationShadeWindowView,
|
||||
mNotificationStackScrollLayoutController,
|
||||
new StatusBarHideIconsForBouncerManager(
|
||||
mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
|
||||
mStatusBarHideIconsForBouncerManager,
|
||||
mPowerManager,
|
||||
mVibratorHelper,
|
||||
Optional.of(mVibrator),
|
||||
|
||||
@@ -265,6 +265,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
@Mock private BrightnessSliderController.Factory mBrightnessSliderFactory;
|
||||
@Mock private WallpaperController mWallpaperController;
|
||||
@Mock private OngoingCallController mOngoingCallController;
|
||||
@Mock private StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
|
||||
@Mock private LockscreenShadeTransitionController mLockscreenTransitionController;
|
||||
@Mock private FeatureFlags mFeatureFlags;
|
||||
@Mock private NotificationVisibilityProvider mVisibilityProvider;
|
||||
@@ -452,7 +453,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mScreenOffAnimationController,
|
||||
mWallpaperController,
|
||||
mOngoingCallController,
|
||||
new StatusBarHideIconsForBouncerManager(mCommandQueue, mMainExecutor, mDumpManager),
|
||||
mStatusBarHideIconsForBouncerManager,
|
||||
mLockscreenTransitionController,
|
||||
mFeatureFlags,
|
||||
mKeyguardUnlockAnimationController,
|
||||
|
||||
@@ -37,7 +37,6 @@ 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;
|
||||
@@ -57,8 +56,6 @@ import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentCom
|
||||
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.Test;
|
||||
@@ -96,6 +93,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
private HeadsUpAppearanceController mHeadsUpAppearanceController;
|
||||
@Mock
|
||||
private NotificationPanelViewController mNotificationPanelViewController;
|
||||
@Mock
|
||||
private StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
|
||||
|
||||
public CollapsedStatusBarFragmentTest() {
|
||||
super(CollapsedStatusBarFragment.class);
|
||||
@@ -325,8 +324,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
new PanelExpansionStateManager(),
|
||||
mock(FeatureFlags.class),
|
||||
mStatusBarIconController,
|
||||
new StatusBarHideIconsForBouncerManager(
|
||||
mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
|
||||
mStatusBarHideIconsForBouncerManager,
|
||||
mKeyguardStateController,
|
||||
mNotificationPanelViewController,
|
||||
mNetworkController,
|
||||
|
||||
Reference in New Issue
Block a user