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 44b3d8a00fea6..94b010df22185 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -508,6 +508,7 @@ public class StatusBar extends CoreStartable 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; @@ -699,6 +700,7 @@ public class StatusBar extends CoreStartable implements AutoHideController autoHideController, StatusBarWindowController statusBarWindowController, KeyguardUpdateMonitor keyguardUpdateMonitor, + StatusBarSignalPolicy statusBarSignalPolicy, PulseExpansionHandler pulseExpansionHandler, NotificationWakeUpCoordinator notificationWakeUpCoordinator, KeyguardBypassController keyguardBypassController, @@ -876,6 +878,7 @@ public class StatusBar extends CoreStartable implements mWallpaperController = wallpaperController; mOngoingCallController = ongoingCallController; mAnimationScheduler = animationScheduler; + mStatusBarSignalPolicy = statusBarSignalPolicy; mStatusBarLocationPublisher = locationPublisher; mStatusBarIconController = statusBarIconController; mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager; @@ -930,6 +933,7 @@ public class StatusBar extends CoreStartable 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 6c81054eb2482..b0206f0730118 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java @@ -73,17 +73,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( @@ -113,9 +111,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); } @@ -163,7 +167,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 0cb13c8b448ba..b3f59b461aa9a 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 @@ -98,6 +98,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; @@ -148,6 +149,7 @@ public interface StatusBarPhoneModule { AutoHideController autoHideController, StatusBarWindowController statusBarWindowController, KeyguardUpdateMonitor keyguardUpdateMonitor, + StatusBarSignalPolicy statusBarSignalPolicy, PulseExpansionHandler pulseExpansionHandler, NotificationWakeUpCoordinator notificationWakeUpCoordinator, KeyguardBypassController keyguardBypassController, @@ -250,6 +252,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 911dca74db7d3..1df576e3bd583 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 @@ -210,6 +210,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; @@ -379,6 +380,7 @@ public class StatusBarTest extends SysuiTestCase { mAutoHideController, mStatusBarWindowController, mKeyguardUpdateMonitor, + mStatusBarSignalPolicy, mPulseExpansionHandler, mNotificationWakeUpCoordinator, mKeyguardBypassController,