Restore StatusBarStatePolicy.

The StatusBarStatePolicy used to be injected into StatusBar but never
used. It turns out it registered listeners during its construction,
so there were side-effects to this.

Move those registrations into their own #init method and call it
excplitly in StatusBar.

Fixes: 203527754
Test: manual
Change-Id: Iaacd3f03c57d3943be8f362d3252395c3dfaba5c
This commit is contained in:
Dave Mankoff
2021-11-18 10:44:59 -05:00
parent 8dfb06f117
commit f812880758
4 changed files with 21 additions and 8 deletions

View File

@@ -506,6 +506,7 @@ public class StatusBar extends SystemUI implements
private final NotificationsController mNotificationsController;
private final OngoingCallController mOngoingCallController;
private final SystemStatusAnimationScheduler mAnimationScheduler;
private final StatusBarSignalPolicy mStatusBarSignalPolicy;
private final StatusBarLocationPublisher mStatusBarLocationPublisher;
private final StatusBarIconController mStatusBarIconController;
private final StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager;
@@ -693,6 +694,7 @@ public class StatusBar extends SystemUI implements
AutoHideController autoHideController,
StatusBarWindowController statusBarWindowController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
StatusBarSignalPolicy statusBarSignalPolicy,
PulseExpansionHandler pulseExpansionHandler,
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
KeyguardBypassController keyguardBypassController,
@@ -870,6 +872,7 @@ public class StatusBar extends SystemUI implements
mWallpaperController = wallpaperController;
mOngoingCallController = ongoingCallController;
mAnimationScheduler = animationScheduler;
mStatusBarSignalPolicy = statusBarSignalPolicy;
mStatusBarLocationPublisher = locationPublisher;
mStatusBarIconController = statusBarIconController;
mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
@@ -923,6 +926,7 @@ public class StatusBar extends SystemUI implements
mBubblesOptional.get().setExpandListener(mBubbleExpandListener);
}
mStatusBarSignalPolicy.init();
mKeyguardIndicationController.init();
mColorExtractor.addOnColorsChangedListener(mOnColorsChangedListener);

View File

@@ -72,17 +72,15 @@ public class StatusBarSignalPolicy implements SignalCallback,
private boolean mHideWifi;
private boolean mHideEthernet;
private boolean mActivityEnabled;
private boolean mForceHideWifi;
// Track as little state as possible, and only for padding purposes
private boolean mIsAirplaneMode = false;
private boolean mIsWifiEnabled = false;
private boolean mWifiVisible = false;
private ArrayList<MobileIconState> mMobileStates = new ArrayList<MobileIconState>();
private ArrayList<CallIndicatorIconState> mCallIndicatorStates =
new ArrayList<CallIndicatorIconState>();
private ArrayList<MobileIconState> mMobileStates = new ArrayList<>();
private ArrayList<CallIndicatorIconState> mCallIndicatorStates = new ArrayList<>();
private WifiIconState mWifiIconState = new WifiIconState();
private boolean mInitialized;
@Inject
public StatusBarSignalPolicy(
@@ -112,9 +110,15 @@ public class StatusBarSignalPolicy implements SignalCallback,
mSlotCallStrength =
mContext.getString(com.android.internal.R.string.status_bar_call_strength);
mActivityEnabled = mContext.getResources().getBoolean(R.bool.config_showActivity);
}
tunerService.addTunable(this, StatusBarIconController.ICON_HIDE_LIST);
/** Call to initilaize and register this classw with the system. */
public void init() {
if (mInitialized) {
return;
}
mInitialized = true;
mTunerService.addTunable(this, StatusBarIconController.ICON_HIDE_LIST);
mNetworkController.addCallback(this);
mSecurityController.addCallback(this);
}
@@ -162,7 +166,7 @@ public class StatusBarSignalPolicy implements SignalCallback,
mHideAirplane = hideAirplane;
mHideMobile = hideMobile;
mHideEthernet = hideEthernet;
mHideWifi = hideWifi || mForceHideWifi;
mHideWifi = hideWifi;
// Re-register to get new callbacks.
mNetworkController.removeCallback(this);
mNetworkController.addCallback(this);

View File

@@ -96,6 +96,7 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
@@ -146,6 +147,7 @@ public interface StatusBarPhoneModule {
AutoHideController autoHideController,
StatusBarWindowController statusBarWindowController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
StatusBarSignalPolicy statusBarSignalPolicy,
PulseExpansionHandler pulseExpansionHandler,
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
KeyguardBypassController keyguardBypassController,
@@ -247,6 +249,7 @@ public interface StatusBarPhoneModule {
autoHideController,
statusBarWindowController,
keyguardUpdateMonitor,
statusBarSignalPolicy,
pulseExpansionHandler,
notificationWakeUpCoordinator,
keyguardBypassController,

View File

@@ -207,6 +207,7 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
@Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
@Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@Mock private StatusBarSignalPolicy mStatusBarSignalPolicy;
@Mock private NotificationShadeWindowView mNotificationShadeWindowView;
@Mock private BroadcastDispatcher mBroadcastDispatcher;
@Mock private AssistManager mAssistManager;
@@ -369,6 +370,7 @@ public class StatusBarTest extends SysuiTestCase {
mAutoHideController,
mStatusBarWindowController,
mKeyguardUpdateMonitor,
mStatusBarSignalPolicy,
mPulseExpansionHandler,
mNotificationWakeUpCoordinator,
mKeyguardBypassController,