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 b8b8e56341645..e033c47259994 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -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); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java index 9c69f51332a69..360cb571c9262 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java @@ -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 mMobileStates = new ArrayList(); - private ArrayList mCallIndicatorStates = - new ArrayList(); + private ArrayList mMobileStates = new ArrayList<>(); + private ArrayList 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); 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 56fd6e4446deb..27ece84859d8f 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 @@ -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, 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 c3d72b71028b3..88d36b0e3d44e 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 @@ -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,