Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +28 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; Loading Loading @@ -73,6 +72,7 @@ import com.android.settingslib.net.SignalStrengthUtil; import com.android.settingslib.wifi.WifiUtils; import com.android.systemui.R; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.policy.KeyguardStateController; Loading @@ -80,6 +80,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.settings.GlobalSettings; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -125,10 +126,12 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, private SubscriptionManager mSubscriptionManager; private TelephonyManager mTelephonyManager; private ConnectivityManager mConnectivityManager; private CarrierConfigTracker mCarrierConfigTracker; private TelephonyDisplayInfo mTelephonyDisplayInfo = new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE); private Handler mHandler; private Handler mWorkerHandler; private MobileMappings.Config mConfig = null; private Executor mExecutor; private AccessPointController mAccessPointController; Loading Loading @@ -191,11 +194,14 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, @Main Handler handler, @Main Executor mainExecutor, BroadcastDispatcher broadcastDispatcher, KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings, KeyguardStateController keyguardStateController, WindowManager windowManager, ToastFactory toastFactory) { WindowManager windowManager, ToastFactory toastFactory, @Background Handler workerHandler, CarrierConfigTracker carrierConfigTracker) { if (DEBUG) { Log.d(TAG, "Init InternetDialogController"); } mHandler = handler; mWorkerHandler = workerHandler; mExecutor = mainExecutor; mContext = context; mGlobalSettings = globalSettings; Loading @@ -203,6 +209,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mTelephonyManager = telephonyManager; mConnectivityManager = connectivityManager; mSubscriptionManager = subscriptionManager; mCarrierConfigTracker = carrierConfigTracker; mBroadcastDispatcher = broadcastDispatcher; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardStateController = keyguardStateController; Loading Loading @@ -611,6 +618,24 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, return mergedCarrierEntry != null && mergedCarrierEntry.isDefaultNetwork(); } @WorkerThread void setMergedCarrierWifiEnabledIfNeed(int subId, boolean enabled) { // If the Carrier Provisions Wi-Fi Merged Networks enabled, do not set the merged carrier // Wi-Fi state together. if (mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(subId)) { return; } final MergedCarrierEntry entry = mAccessPointController.getMergedCarrierEntry(); if (entry == null) { if (DEBUG) { Log.d(TAG, "MergedCarrierEntry is null, can not set the status."); } return; } entry.setEnabled(enabled); } WifiManager getWifiManager() { return mWifiManager; } Loading Loading @@ -685,6 +710,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, } } } mWorkerHandler.post(() -> setMergedCarrierWifiEnabledIfNeed(subId, enabled)); } boolean isDataStateInService() { Loading packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java +63 −25 Original line number Diff line number Diff line Loading @@ -23,8 +23,9 @@ import android.content.IntentFilter; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.util.SparseArray; import android.util.SparseBooleanArray; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.SysUISingleton; import javax.inject.Inject; Loading @@ -34,39 +35,54 @@ import javax.inject.Inject; */ @SysUISingleton public class CarrierConfigTracker extends BroadcastReceiver { private final SparseArray<Boolean> mCallStrengthConfigs = new SparseArray<>(); private final SparseArray<Boolean> mNoCallingConfigs = new SparseArray<>(); private final SparseBooleanArray mCallStrengthConfigs = new SparseBooleanArray(); private final SparseBooleanArray mNoCallingConfigs = new SparseBooleanArray(); private final SparseBooleanArray mCarrierProvisionsWifiMergedNetworks = new SparseBooleanArray(); private final CarrierConfigManager mCarrierConfigManager; private boolean mDefaultCallStrengthConfigLoaded; private boolean mDefaultCallStrengthConfig; private boolean mDefaultNoCallingConfigLoaded; private boolean mDefaultNoCallingConfig; private boolean mDefaultCarrierProvisionsWifiMergedNetworksLoaded; private boolean mDefaultCarrierProvisionsWifiMergedNetworks; @Inject public CarrierConfigTracker(Context context) { public CarrierConfigTracker(Context context, BroadcastDispatcher broadcastDispatcher) { mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); context.registerReceiver( broadcastDispatcher.registerReceiver( this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); } @Override public void onReceive(Context context, Intent intent) { if (intent.getAction() == CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED) { int subId = intent.getIntExtra( if (!CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) { return; } final 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); final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId); if (config == null) { return; } synchronized (mCallStrengthConfigs) { mCallStrengthConfigs.put(subId, config.getBoolean( CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL)); } synchronized (mNoCallingConfigs) { mNoCallingConfigs.put(subId, config.getBoolean( CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL)); } synchronized (mCarrierProvisionsWifiMergedNetworks) { mCarrierProvisionsWifiMergedNetworks.put(subId, config.getBoolean( CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL)); } } Loading @@ -74,9 +90,11 @@ public class CarrierConfigTracker extends BroadcastReceiver { * Returns the KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL value for the given subId. */ public boolean getCallStrengthConfig(int subId) { synchronized (mCallStrengthConfigs) { if (mCallStrengthConfigs.indexOfKey(subId) >= 0) { return mCallStrengthConfigs.get(subId); } } if (!mDefaultCallStrengthConfigLoaded) { mDefaultCallStrengthConfig = CarrierConfigManager.getDefaultConfig().getBoolean( Loading @@ -90,9 +108,11 @@ public class CarrierConfigTracker extends BroadcastReceiver { * Returns the KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL value for the given subId. */ public boolean getNoCallingConfig(int subId) { synchronized (mNoCallingConfigs) { if (mNoCallingConfigs.indexOfKey(subId) >= 0) { return mNoCallingConfigs.get(subId); } } if (!mDefaultNoCallingConfigLoaded) { mDefaultNoCallingConfig = CarrierConfigManager.getDefaultConfig().getBoolean( Loading @@ -101,4 +121,22 @@ public class CarrierConfigTracker extends BroadcastReceiver { } return mDefaultNoCallingConfig; } /** * Returns the KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL value for the given subId. */ public boolean getCarrierProvisionsWifiMergedNetworksBool(int subId) { synchronized (mCarrierProvisionsWifiMergedNetworks) { if (mCarrierProvisionsWifiMergedNetworks.indexOfKey(subId) >= 0) { return mCarrierProvisionsWifiMergedNetworks.get(subId); } } if (!mDefaultCarrierProvisionsWifiMergedNetworksLoaded) { mDefaultCarrierProvisionsWifiMergedNetworks = CarrierConfigManager.getDefaultConfig().getBoolean( CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL); mDefaultCarrierProvisionsWifiMergedNetworksLoaded = true; } return mDefaultCarrierProvisionsWifiMergedNetworks; } } packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +44 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -34,10 +33,6 @@ import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableResources; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.TextView; import android.view.Gravity; import android.view.View; import android.view.WindowManager; Loading @@ -58,6 +53,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; Loading @@ -68,7 +64,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; Loading Loading @@ -99,6 +94,8 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Mock private Handler mHandler; @Mock private Handler mWorkerHandler; @Mock private ActivityStarter mActivityStarter; @Mock private GlobalSettings mGlobalSettings; Loading Loading @@ -136,6 +133,8 @@ public class InternetDialogControllerTest extends SysuiTestCase { private View mToastView; @Mock private Animator mAnimator; @Mock private CarrierConfigTracker mCarrierConfigTracker; private TestableResources mTestableResources; private MockInternetDialogController mInternetDialogController; Loading @@ -157,6 +156,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { when(mWifiEntry4.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED); mAccessPoints.add(mConnectedEntry); mAccessPoints.add(mWifiEntry1); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID}); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); when(mToastFactory.createToast(any(), anyString(), anyString(), anyInt(), anyInt())) Loading @@ -170,7 +170,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { mSubscriptionManager, mTelephonyManager, mWifiManager, mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher, mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController, mWindowManager, mToastFactory); mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker); mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor, mInternetDialogController.mOnSubscriptionsChangedListener); mInternetDialogController.onStart(mInternetDialogCallback, true); Loading Loading @@ -569,6 +569,39 @@ public class InternetDialogControllerTest extends SysuiTestCase { .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); } @Test public void setMergedCarrierWifiEnabledIfNeed_carrierProvisionsEnabled_doNothing() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(true); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); verify(mMergedCarrierEntry, never()).setEnabled(anyBoolean()); } @Test public void setMergedCarrierWifiEnabledIfNeed_mergedCarrierEntryEmpty_doesntCrash() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(false); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(null); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); } @Test public void setMergedCarrierWifiEnabledIfNeed_neededSetMergedCarrierEntry_setTogether() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(false); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); verify(mMergedCarrierEntry).setEnabled(true); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, false); verify(mMergedCarrierEntry).setEnabled(false); } private String getResourcesString(String name) { return mContext.getResources().getString(getResourcesId(name)); } Loading @@ -591,11 +624,13 @@ public class InternetDialogControllerTest extends SysuiTestCase { BroadcastDispatcher broadcastDispatcher, KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings, KeyguardStateController keyguardStateController, WindowManager windowManager, ToastFactory toastFactory) { ToastFactory toastFactory, Handler workerHandler, CarrierConfigTracker carrierConfigTracker) { super(context, uiEventLogger, starter, accessPointController, subscriptionManager, telephonyManager, wifiManager, connectivityManager, handler, mainExecutor, broadcastDispatcher, keyguardUpdateMonitor, globalSettings, keyguardStateController, windowManager, toastFactory); keyguardStateController, windowManager, toastFactory, workerHandler, carrierConfigTracker); mGlobalSettings = globalSettings; } Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +28 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; Loading Loading @@ -73,6 +72,7 @@ import com.android.settingslib.net.SignalStrengthUtil; import com.android.settingslib.wifi.WifiUtils; import com.android.systemui.R; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.policy.KeyguardStateController; Loading @@ -80,6 +80,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.settings.GlobalSettings; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -125,10 +126,12 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, private SubscriptionManager mSubscriptionManager; private TelephonyManager mTelephonyManager; private ConnectivityManager mConnectivityManager; private CarrierConfigTracker mCarrierConfigTracker; private TelephonyDisplayInfo mTelephonyDisplayInfo = new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE); private Handler mHandler; private Handler mWorkerHandler; private MobileMappings.Config mConfig = null; private Executor mExecutor; private AccessPointController mAccessPointController; Loading Loading @@ -191,11 +194,14 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, @Main Handler handler, @Main Executor mainExecutor, BroadcastDispatcher broadcastDispatcher, KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings, KeyguardStateController keyguardStateController, WindowManager windowManager, ToastFactory toastFactory) { WindowManager windowManager, ToastFactory toastFactory, @Background Handler workerHandler, CarrierConfigTracker carrierConfigTracker) { if (DEBUG) { Log.d(TAG, "Init InternetDialogController"); } mHandler = handler; mWorkerHandler = workerHandler; mExecutor = mainExecutor; mContext = context; mGlobalSettings = globalSettings; Loading @@ -203,6 +209,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, mTelephonyManager = telephonyManager; mConnectivityManager = connectivityManager; mSubscriptionManager = subscriptionManager; mCarrierConfigTracker = carrierConfigTracker; mBroadcastDispatcher = broadcastDispatcher; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardStateController = keyguardStateController; Loading Loading @@ -611,6 +618,24 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, return mergedCarrierEntry != null && mergedCarrierEntry.isDefaultNetwork(); } @WorkerThread void setMergedCarrierWifiEnabledIfNeed(int subId, boolean enabled) { // If the Carrier Provisions Wi-Fi Merged Networks enabled, do not set the merged carrier // Wi-Fi state together. if (mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(subId)) { return; } final MergedCarrierEntry entry = mAccessPointController.getMergedCarrierEntry(); if (entry == null) { if (DEBUG) { Log.d(TAG, "MergedCarrierEntry is null, can not set the status."); } return; } entry.setEnabled(enabled); } WifiManager getWifiManager() { return mWifiManager; } Loading Loading @@ -685,6 +710,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, } } } mWorkerHandler.post(() -> setMergedCarrierWifiEnabledIfNeed(subId, enabled)); } boolean isDataStateInService() { Loading
packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java +63 −25 Original line number Diff line number Diff line Loading @@ -23,8 +23,9 @@ import android.content.IntentFilter; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.util.SparseArray; import android.util.SparseBooleanArray; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.SysUISingleton; import javax.inject.Inject; Loading @@ -34,39 +35,54 @@ import javax.inject.Inject; */ @SysUISingleton public class CarrierConfigTracker extends BroadcastReceiver { private final SparseArray<Boolean> mCallStrengthConfigs = new SparseArray<>(); private final SparseArray<Boolean> mNoCallingConfigs = new SparseArray<>(); private final SparseBooleanArray mCallStrengthConfigs = new SparseBooleanArray(); private final SparseBooleanArray mNoCallingConfigs = new SparseBooleanArray(); private final SparseBooleanArray mCarrierProvisionsWifiMergedNetworks = new SparseBooleanArray(); private final CarrierConfigManager mCarrierConfigManager; private boolean mDefaultCallStrengthConfigLoaded; private boolean mDefaultCallStrengthConfig; private boolean mDefaultNoCallingConfigLoaded; private boolean mDefaultNoCallingConfig; private boolean mDefaultCarrierProvisionsWifiMergedNetworksLoaded; private boolean mDefaultCarrierProvisionsWifiMergedNetworks; @Inject public CarrierConfigTracker(Context context) { public CarrierConfigTracker(Context context, BroadcastDispatcher broadcastDispatcher) { mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); context.registerReceiver( broadcastDispatcher.registerReceiver( this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); } @Override public void onReceive(Context context, Intent intent) { if (intent.getAction() == CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED) { int subId = intent.getIntExtra( if (!CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) { return; } final 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); final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId); if (config == null) { return; } synchronized (mCallStrengthConfigs) { mCallStrengthConfigs.put(subId, config.getBoolean( CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL)); } synchronized (mNoCallingConfigs) { mNoCallingConfigs.put(subId, config.getBoolean( CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL)); } synchronized (mCarrierProvisionsWifiMergedNetworks) { mCarrierProvisionsWifiMergedNetworks.put(subId, config.getBoolean( CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL)); } } Loading @@ -74,9 +90,11 @@ public class CarrierConfigTracker extends BroadcastReceiver { * Returns the KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL value for the given subId. */ public boolean getCallStrengthConfig(int subId) { synchronized (mCallStrengthConfigs) { if (mCallStrengthConfigs.indexOfKey(subId) >= 0) { return mCallStrengthConfigs.get(subId); } } if (!mDefaultCallStrengthConfigLoaded) { mDefaultCallStrengthConfig = CarrierConfigManager.getDefaultConfig().getBoolean( Loading @@ -90,9 +108,11 @@ public class CarrierConfigTracker extends BroadcastReceiver { * Returns the KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL value for the given subId. */ public boolean getNoCallingConfig(int subId) { synchronized (mNoCallingConfigs) { if (mNoCallingConfigs.indexOfKey(subId) >= 0) { return mNoCallingConfigs.get(subId); } } if (!mDefaultNoCallingConfigLoaded) { mDefaultNoCallingConfig = CarrierConfigManager.getDefaultConfig().getBoolean( Loading @@ -101,4 +121,22 @@ public class CarrierConfigTracker extends BroadcastReceiver { } return mDefaultNoCallingConfig; } /** * Returns the KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL value for the given subId. */ public boolean getCarrierProvisionsWifiMergedNetworksBool(int subId) { synchronized (mCarrierProvisionsWifiMergedNetworks) { if (mCarrierProvisionsWifiMergedNetworks.indexOfKey(subId) >= 0) { return mCarrierProvisionsWifiMergedNetworks.get(subId); } } if (!mDefaultCarrierProvisionsWifiMergedNetworksLoaded) { mDefaultCarrierProvisionsWifiMergedNetworks = CarrierConfigManager.getDefaultConfig().getBoolean( CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL); mDefaultCarrierProvisionsWifiMergedNetworksLoaded = true; } return mDefaultCarrierProvisionsWifiMergedNetworks; } }
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +44 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -34,10 +33,6 @@ import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableResources; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.TextView; import android.view.Gravity; import android.view.View; import android.view.WindowManager; Loading @@ -58,6 +53,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; Loading @@ -68,7 +64,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; Loading Loading @@ -99,6 +94,8 @@ public class InternetDialogControllerTest extends SysuiTestCase { @Mock private Handler mHandler; @Mock private Handler mWorkerHandler; @Mock private ActivityStarter mActivityStarter; @Mock private GlobalSettings mGlobalSettings; Loading Loading @@ -136,6 +133,8 @@ public class InternetDialogControllerTest extends SysuiTestCase { private View mToastView; @Mock private Animator mAnimator; @Mock private CarrierConfigTracker mCarrierConfigTracker; private TestableResources mTestableResources; private MockInternetDialogController mInternetDialogController; Loading @@ -157,6 +156,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { when(mWifiEntry4.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED); mAccessPoints.add(mConnectedEntry); mAccessPoints.add(mWifiEntry1); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID}); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); when(mToastFactory.createToast(any(), anyString(), anyString(), anyInt(), anyInt())) Loading @@ -170,7 +170,7 @@ public class InternetDialogControllerTest extends SysuiTestCase { mSubscriptionManager, mTelephonyManager, mWifiManager, mock(ConnectivityManager.class), mHandler, mExecutor, mBroadcastDispatcher, mock(KeyguardUpdateMonitor.class), mGlobalSettings, mKeyguardStateController, mWindowManager, mToastFactory); mWindowManager, mToastFactory, mWorkerHandler, mCarrierConfigTracker); mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor, mInternetDialogController.mOnSubscriptionsChangedListener); mInternetDialogController.onStart(mInternetDialogCallback, true); Loading Loading @@ -569,6 +569,39 @@ public class InternetDialogControllerTest extends SysuiTestCase { .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); } @Test public void setMergedCarrierWifiEnabledIfNeed_carrierProvisionsEnabled_doNothing() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(true); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); verify(mMergedCarrierEntry, never()).setEnabled(anyBoolean()); } @Test public void setMergedCarrierWifiEnabledIfNeed_mergedCarrierEntryEmpty_doesntCrash() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(false); when(mAccessPointController.getMergedCarrierEntry()).thenReturn(null); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); } @Test public void setMergedCarrierWifiEnabledIfNeed_neededSetMergedCarrierEntry_setTogether() { when(mCarrierConfigTracker.getCarrierProvisionsWifiMergedNetworksBool(SUB_ID)) .thenReturn(false); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, true); verify(mMergedCarrierEntry).setEnabled(true); mInternetDialogController.setMergedCarrierWifiEnabledIfNeed(SUB_ID, false); verify(mMergedCarrierEntry).setEnabled(false); } private String getResourcesString(String name) { return mContext.getResources().getString(getResourcesId(name)); } Loading @@ -591,11 +624,13 @@ public class InternetDialogControllerTest extends SysuiTestCase { BroadcastDispatcher broadcastDispatcher, KeyguardUpdateMonitor keyguardUpdateMonitor, GlobalSettings globalSettings, KeyguardStateController keyguardStateController, WindowManager windowManager, ToastFactory toastFactory) { ToastFactory toastFactory, Handler workerHandler, CarrierConfigTracker carrierConfigTracker) { super(context, uiEventLogger, starter, accessPointController, subscriptionManager, telephonyManager, wifiManager, connectivityManager, handler, mainExecutor, broadcastDispatcher, keyguardUpdateMonitor, globalSettings, keyguardStateController, windowManager, toastFactory); keyguardStateController, windowManager, toastFactory, workerHandler, carrierConfigTracker); mGlobalSettings = globalSettings; } Loading