From 9b3ee672ecf7902236528cc156f726d664cbd7e5 Mon Sep 17 00:00:00 2001 From: yinxu Date: Wed, 5 May 2021 10:06:14 -0700 Subject: [PATCH] Implement the CarrierConfig for call indicators This CL implements the CarirerConfigs for both no calling icons and call strength icons. 1. Carriers can choose to only show the no calling icons when there is no IP connections. 2. Carriers can choose to hide the call strength icon, and show either a blacnk icon (single SIM) or SIM card icon (multi SIM) Bug: 181667933 Test: Manual tests Change-Id: I54386cb7399c7e3b3160ad01e09cb71f7e1f1a6e --- packages/SystemUI/res/drawable/ic_blank.xml | 22 +++++ .../SystemUI/res/drawable/ic_qs_sim_card.xml | 47 +++++++++ .../qs/carrier/QSCarrierGroupController.java | 59 ++++++++++-- .../systemui/statusbar/phone/StatusBar.java | 6 +- .../phone/StatusBarSignalPolicy.java | 19 +++- .../phone/dagger/StatusBarPhoneModule.java | 6 +- .../policy/MobileSignalController.java | 34 +++++-- .../policy/NetworkControllerImpl.java | 26 +++-- .../systemui/util/CarrierConfigTracker.java | 96 +++++++++++++++++++ .../carrier/QSCarrierGroupControllerTest.java | 5 +- .../statusbar/phone/StatusBarTest.java | 4 +- .../policy/NetworkControllerBaseTest.java | 9 +- .../policy/NetworkControllerDataTest.java | 4 +- .../policy/NetworkControllerSignalTest.java | 7 +- .../policy/NetworkControllerWifiTest.java | 2 +- 15 files changed, 304 insertions(+), 42 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_blank.xml create mode 100644 packages/SystemUI/res/drawable/ic_qs_sim_card.xml create mode 100644 packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java diff --git a/packages/SystemUI/res/drawable/ic_blank.xml b/packages/SystemUI/res/drawable/ic_blank.xml new file mode 100644 index 0000000000000..b94088f65d27b --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_blank.xml @@ -0,0 +1,22 @@ + + + + diff --git a/packages/SystemUI/res/drawable/ic_qs_sim_card.xml b/packages/SystemUI/res/drawable/ic_qs_sim_card.xml new file mode 100644 index 0000000000000..6eda929b54d3d --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_qs_sim_card.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java b/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java index 5afe1c87121da..c49e0547e4333 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java @@ -43,6 +43,7 @@ import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators; +import com.android.systemui.util.CarrierConfigTracker; import java.util.function.Consumer; @@ -71,6 +72,7 @@ public class QSCarrierGroupController { private int[] mLastSignalLevel = new int[SIM_SLOTS]; private String[] mLastSignalLevelDescription = new String[SIM_SLOTS]; private final boolean mProviderModel; + private final CarrierConfigTracker mCarrierConfigTracker; private final NetworkController.SignalCallback mSignalCallback = new NetworkController.SignalCallback() { @@ -112,6 +114,10 @@ public class QSCarrierGroupController { Log.e(TAG, "Invalid SIM slot index for subscription: " + subId); return; } + + boolean displayCallStrengthIcon = + mCarrierConfigTracker.getCallStrengthConfig(subId); + if (statusIcon.icon == R.drawable.ic_qs_no_calling_sms) { if (statusIcon.visible) { mInfos[slotIndex] = new CellSignalState(true, @@ -119,9 +125,14 @@ public class QSCarrierGroupController { } else { // Whenever the no Calling & SMS state is cleared, switched to the last // known call strength icon. - mInfos[slotIndex] = new CellSignalState( - true, mLastSignalLevel[slotIndex], - mLastSignalLevelDescription[slotIndex], "", false); + if (displayCallStrengthIcon) { + mInfos[slotIndex] = new CellSignalState( + true, mLastSignalLevel[slotIndex], + mLastSignalLevelDescription[slotIndex], "", false); + } else { + mInfos[slotIndex] = new CellSignalState( + true, R.drawable.ic_qs_sim_card, "", "", false); + } } mMainHandler.obtainMessage(H.MSG_UPDATE_STATE).sendToTarget(); } else { @@ -131,8 +142,13 @@ public class QSCarrierGroupController { // shown. if (mInfos[slotIndex].mobileSignalIconId != R.drawable.ic_qs_no_calling_sms) { - mInfos[slotIndex] = new CellSignalState(true, statusIcon.icon, - statusIcon.contentDescription, "", false); + if (displayCallStrengthIcon) { + mInfos[slotIndex] = new CellSignalState(true, statusIcon.icon, + statusIcon.contentDescription, "", false); + } else { + mInfos[slotIndex] = new CellSignalState( + true, R.drawable.ic_qs_sim_card, "", "", false); + } mMainHandler.obtainMessage(H.MSG_UPDATE_STATE).sendToTarget(); } } @@ -165,7 +181,8 @@ public class QSCarrierGroupController { private QSCarrierGroupController(QSCarrierGroup view, ActivityStarter activityStarter, @Background Handler bgHandler, @Main Looper mainLooper, NetworkController networkController, - CarrierTextManager.Builder carrierTextManagerBuilder, Context context) { + CarrierTextManager.Builder carrierTextManagerBuilder, Context context, + CarrierConfigTracker carrierConfigTracker) { if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { mProviderModel = true; } else { @@ -178,7 +195,7 @@ public class QSCarrierGroupController { .setShowAirplaneMode(false) .setShowMissingSim(false) .build(); - + mCarrierConfigTracker = carrierConfigTracker; View.OnClickListener onClickListener = v -> { if (!v.isVisibleToUser()) { return; @@ -228,6 +245,17 @@ public class QSCarrierGroupController { return SubscriptionManager.getSlotIndex(subscriptionId); } + private boolean isSingleCarrier() { + int carrierCount = 0; + for (int i = 0; i < SIM_SLOTS; i++) { + + if (mInfos[i].visible) { + carrierCount++; + } + } + return carrierCount == 1; + } + public void setListening(boolean listening) { if (listening == mListening) { return; @@ -257,6 +285,15 @@ public class QSCarrierGroupController { return; } + if (isSingleCarrier()) { + for (int i = 0; i < SIM_SLOTS; i++) { + if (mInfos[i].visible + && mInfos[i].mobileSignalIconId == R.drawable.ic_qs_sim_card) { + mInfos[i] = new CellSignalState(true, R.drawable.ic_blank, "", "", false); + } + } + } + for (int i = 0; i < SIM_SLOTS; i++) { mCarrierGroups[i].updateState(mInfos[i]); } @@ -363,17 +400,20 @@ public class QSCarrierGroupController { private final NetworkController mNetworkController; private final CarrierTextManager.Builder mCarrierTextControllerBuilder; private final Context mContext; + private final CarrierConfigTracker mCarrierConfigTracker; @Inject public Builder(ActivityStarter activityStarter, @Background Handler handler, @Main Looper looper, NetworkController networkController, - CarrierTextManager.Builder carrierTextControllerBuilder, Context context) { + CarrierTextManager.Builder carrierTextControllerBuilder, Context context, + CarrierConfigTracker carrierConfigTracker) { mActivityStarter = activityStarter; mHandler = handler; mLooper = looper; mNetworkController = networkController; mCarrierTextControllerBuilder = carrierTextControllerBuilder; mContext = context; + mCarrierConfigTracker = carrierConfigTracker; } public Builder setQSCarrierGroup(QSCarrierGroup view) { @@ -383,7 +423,8 @@ public class QSCarrierGroupController { public QSCarrierGroupController build() { return new QSCarrierGroupController(mView, mActivityStarter, mHandler, mLooper, - mNetworkController, mCarrierTextControllerBuilder, mContext); + mNetworkController, mCarrierTextControllerBuilder, mContext, + mCarrierConfigTracker); } } } 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 bd17d00063d7d..cae7e354465b8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -393,7 +393,6 @@ public class StatusBar extends SystemUI implements DemoMode, private final Object mQueueLock = new Object(); - private final StatusBarIconController mIconController; private final PulseExpansionHandler mPulseExpansionHandler; private final NotificationWakeUpCoordinator mWakeUpCoordinator; private final KeyguardBypassController mKeyguardBypassController; @@ -720,7 +719,7 @@ public class StatusBar extends SystemUI implements DemoMode, LightBarController lightBarController, AutoHideController autoHideController, KeyguardUpdateMonitor keyguardUpdateMonitor, - StatusBarIconController statusBarIconController, + StatusBarSignalPolicy signalPolicy, PulseExpansionHandler pulseExpansionHandler, NotificationWakeUpCoordinator notificationWakeUpCoordinator, KeyguardBypassController keyguardBypassController, @@ -806,7 +805,7 @@ public class StatusBar extends SystemUI implements DemoMode, mLightBarController = lightBarController; mAutoHideController = autoHideController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; - mIconController = statusBarIconController; + mSignalPolicy = signalPolicy; mPulseExpansionHandler = pulseExpansionHandler; mWakeUpCoordinator = notificationWakeUpCoordinator; mKeyguardBypassController = keyguardBypassController; @@ -1015,7 +1014,6 @@ public class StatusBar extends SystemUI implements DemoMode, // Lastly, call to the icon policy to install/update all the icons. mIconPolicy.init(); - mSignalPolicy = new StatusBarSignalPolicy(mContext, mIconController); mKeyguardStateController.addCallback(this); startKeyguard(); 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 3445826eefbe8..142cf21c4f29c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java @@ -25,6 +25,7 @@ import android.util.Log; import com.android.settingslib.mobile.TelephonyIcons; import com.android.systemui.Dependency; import com.android.systemui.R; +import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators; @@ -33,12 +34,16 @@ import com.android.systemui.statusbar.policy.NetworkControllerImpl; import com.android.systemui.statusbar.policy.SecurityController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; +import com.android.systemui.util.CarrierConfigTracker; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import javax.inject.Inject; +/** Controls the signal policies for icons shown in the StatusBar. **/ +@SysUISingleton public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallback, SecurityController.SecurityControllerCallback, Tunable { private static final String TAG = "StatusBarSignalPolicy"; @@ -57,6 +62,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba private final NetworkController mNetworkController; private final SecurityController mSecurityController; private final Handler mHandler = Handler.getMain(); + private final CarrierConfigTracker mCarrierConfigTracker; private boolean mHideAirplane; private boolean mHideMobile; @@ -75,7 +81,9 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba new ArrayList(); private WifiIconState mWifiIconState = new WifiIconState(); - public StatusBarSignalPolicy(Context context, StatusBarIconController iconController) { + @Inject + public StatusBarSignalPolicy(Context context, StatusBarIconController iconController, + CarrierConfigTracker carrierConfigTracker) { mContext = context; mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane); @@ -95,6 +103,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_HIDE_LIST); mNetworkController.addCallback(this); mSecurityController.addCallback(this); + mCarrierConfigTracker = carrierConfigTracker; } public void destroy() { @@ -215,8 +224,12 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba state.callStrengthResId = statusIcon.icon; state.callStrengthDescription = statusIcon.contentDescription; } - mIconController.setCallStrengthIcons(mSlotCallStrength, - CallIndicatorIconState.copyStates(mCallIndicatorStates)); + if (mCarrierConfigTracker.getCallStrengthConfig(subId)) { + mIconController.setCallStrengthIcons(mSlotCallStrength, + CallIndicatorIconState.copyStates(mCallIndicatorStates)); + } else { + mIconController.removeIcon(mSlotCallStrength, subId); + } mIconController.setNoCallingIcons(mSlotNoCalling, CallIndicatorIconState.copyStates(mCallIndicatorStates)); } 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 ae11a74748cd3..d0d2cb288aa5c 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 @@ -88,10 +88,10 @@ import com.android.systemui.statusbar.phone.PhoneStatusBarPolicy; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; -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.ongoingcall.OngoingCallController; import com.android.systemui.statusbar.policy.BatteryController; @@ -134,7 +134,7 @@ public interface StatusBarPhoneModule { LightBarController lightBarController, AutoHideController autoHideController, KeyguardUpdateMonitor keyguardUpdateMonitor, - StatusBarIconController statusBarIconController, + StatusBarSignalPolicy signalPolicy, PulseExpansionHandler pulseExpansionHandler, NotificationWakeUpCoordinator notificationWakeUpCoordinator, KeyguardBypassController keyguardBypassController, @@ -221,7 +221,7 @@ public interface StatusBarPhoneModule { lightBarController, autoHideController, keyguardUpdateMonitor, - statusBarIconController, + signalPolicy, pulseExpansionHandler, notificationWakeUpCoordinator, keyguardBypassController, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index 044f52fd689e8..ce080752b5ccb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -61,6 +61,7 @@ import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; +import com.android.systemui.util.CarrierConfigTracker; import java.io.PrintWriter; import java.text.SimpleDateFormat; @@ -78,6 +79,7 @@ public class MobileSignalController extends SignalController mCallStrengthConfigs = new SparseArray<>(); + private final SparseArray mNoCallingConfigs = new SparseArray<>(); + private final CarrierConfigManager mCarrierConfigManager; + private final boolean mDefaultCallStrengthConfig; + private final boolean mDefaultNoCallingConfig; + + @Inject + public CarrierConfigTracker(Context context) { + mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); + context.registerReceiver( + this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); + mDefaultCallStrengthConfig = + CarrierConfigManager.getDefaultConfig().getBoolean( + CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL); + mDefaultNoCallingConfig = + CarrierConfigManager.getDefaultConfig().getBoolean( + CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL); + } + + @Override + public void onReceive(Context context, Intent intent) { + if (intent.getAction() == CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED) { + int subId = intent.getIntExtra( + CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, + SubscriptionManager.INVALID_SUBSCRIPTION_ID); + if (!SubscriptionManager.isValidSubscriptionId(subId)) { + return; + } + PersistableBundle b = mCarrierConfigManager.getConfigForSubId(subId); + if (b != null) { + boolean hideNoCallingConfig = b.getBoolean( + CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL); + boolean displayCallStrengthIcon = b.getBoolean( + CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL); + mCallStrengthConfigs.put(subId, displayCallStrengthIcon); + mNoCallingConfigs.put(subId, hideNoCallingConfig); + } + } + } + + /** + * Returns the KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL value for the given subId. + */ + public boolean getCallStrengthConfig(int subId) { + if (mCallStrengthConfigs.indexOfKey(subId) >= 0) { + return mCallStrengthConfigs.get(subId); + } + return mDefaultCallStrengthConfig; + } + + /** + * Returns the KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL value for the given subId. + */ + public boolean getNoCallingConfig(int subId) { + if (mNoCallingConfigs.indexOfKey(subId) >= 0) { + return mNoCallingConfigs.get(subId); + } + return mDefaultNoCallingConfig; + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java index 59a5f03da5302..876acc12f7db3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java @@ -37,6 +37,7 @@ import com.android.keyguard.CarrierTextManager; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators; +import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.utils.leaks.LeakCheckedTest; import com.android.systemui.utils.os.FakeHandler; @@ -66,6 +67,8 @@ public class QSCarrierGroupControllerTest extends LeakCheckedTest { private CarrierTextManager.Builder mCarrierTextControllerBuilder; @Mock private CarrierTextManager mCarrierTextManager; + @Mock + private CarrierConfigTracker mCarrierConfigTracker; private TestableLooper mTestableLooper; @Before @@ -99,7 +102,7 @@ public class QSCarrierGroupControllerTest extends LeakCheckedTest { mQSCarrierGroupController = new QSCarrierGroupController.Builder( mActivityStarter, handler, TestableLooper.get(this).getLooper(), - mNetworkController, mCarrierTextControllerBuilder, mContext) + mNetworkController, mCarrierTextControllerBuilder, mContext, mCarrierConfigTracker) .setQSCarrierGroup(mQSCarrierGroup) .build(); 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 b2487e8e2444d..b3d52b80c815b 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 @@ -178,7 +178,7 @@ public class StatusBarTest extends SysuiTestCase { @Mock private NotificationsController mNotificationsController; @Mock private LightBarController mLightBarController; - @Mock private StatusBarIconController mStatusBarIconController; + @Mock private StatusBarSignalPolicy mStatusBarSignalPolicy; @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; @Mock private KeyguardStateController mKeyguardStateController; @Mock private KeyguardIndicationController mKeyguardIndicationController; @@ -356,7 +356,7 @@ public class StatusBarTest extends SysuiTestCase { mLightBarController, mAutoHideController, mKeyguardUpdateMonitor, - mStatusBarIconController, + mStatusBarSignalPolicy, mPulseExpansionHandler, mNotificationWakeUpCoordinator, mKeyguardBypassController, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java index f33c9e88c3472..abc66dbca2a2f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java @@ -76,6 +76,7 @@ import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import com.android.systemui.telephony.TelephonyListenerManager; +import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; @@ -124,6 +125,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { protected DeviceProvisionedListener mUserCallback; protected Instrumentation mInstrumentation; protected DemoModeController mDemoModeController; + protected CarrierConfigTracker mCarrierConfigTracker; protected FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock()); protected int mSubId; @@ -174,6 +176,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mMockBd = mock(BroadcastDispatcher.class); mMockNsm = mock(NetworkScoreManager.class); mMockSubDefaults = mock(SubscriptionDefaults.class); + mCarrierConfigTracker = mock(CarrierConfigTracker.class); mNetCapabilities = new NetworkCapabilities(); when(mMockTm.isDataCapable()).thenReturn(true); when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm); @@ -231,7 +234,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mMockSubDefaults, mMockProvisionController, mMockBd, - mDemoModeController); + mDemoModeController, + mCarrierConfigTracker); setupNetworkController(); // Trigger blank callbacks to always get the current state (some tests don't trigger @@ -298,7 +302,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, - mock(DeviceProvisionedController.class), mMockBd, mDemoModeController); + mock(DeviceProvisionedController.class), mMockBd, mDemoModeController, + mCarrierConfigTracker); setupNetworkController(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java index 6219fafc98db4..09554e717d3d9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java @@ -21,6 +21,7 @@ import android.testing.TestableLooper.RunWithLooper; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.DataUsageController; +import com.android.systemui.util.CarrierConfigTracker; import org.junit.Test; import org.junit.runner.RunWith; @@ -111,7 +112,8 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { mMockNsm, mMockSm, mConfig, Looper.getMainLooper(), mFakeExecutor, mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, - mock(DeviceProvisionedController.class), mMockBd, mDemoModeController); + mock(DeviceProvisionedController.class), mMockBd, mDemoModeController, + mock(CarrierConfigTracker.class)); setupNetworkController(); setupDefaultSignal(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java index 8d3e403f11897..1e7801d63f750 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java @@ -41,6 +41,7 @@ import com.android.settingslib.graph.SignalDrawable; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; +import com.android.systemui.util.CarrierConfigTracker; import org.junit.Test; import org.junit.runner.RunWith; @@ -66,7 +67,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { Looper.getMainLooper(), mFakeExecutor, mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd, - mDemoModeController); + mDemoModeController, mock(CarrierConfigTracker.class)); setupNetworkController(); verifyLastMobileDataIndicators(false, -1, 0); @@ -86,7 +87,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { Looper.getMainLooper(), mFakeExecutor, mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd, - mDemoModeController); + mDemoModeController, mock(CarrierConfigTracker.class)); mNetworkController.registerListeners(); // Wait for the main looper to execute the previous command @@ -154,7 +155,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { Looper.getMainLooper(), mFakeExecutor, mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd, - mDemoModeController); + mDemoModeController, mock(CarrierConfigTracker.class)); setupNetworkController(); // No Subscriptions. diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java index bfb98deda4529..687ca601bd6e2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java @@ -269,9 +269,9 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { } // Set the ImsType to be IMS_TYPE_WWAN setImsType(1); + setupDefaultSignal(); for (int testStrength = 0; testStrength < CellSignalStrength.getNumSignalStrengthLevels(); testStrength++) { - setupDefaultSignal(); setLevel(testStrength); verifyLastCallStrength(TelephonyIcons.MOBILE_CALL_STRENGTH_ICONS[testStrength]); }