Loading src/com/android/settings/network/SubscriptionsPreferenceController.java +46 −20 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.drawable.Drawable; import android.net.wifi.WifiManager; import android.provider.Settings; import android.telephony.ServiceState; import android.telephony.SignalStrength; Loading Loading @@ -56,9 +57,11 @@ import com.android.settings.network.telephony.SignalStrengthListener; import com.android.settings.network.telephony.TelephonyDisplayInfoListener; import com.android.settings.widget.GearPreference; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.settingslib.SignalIcon.MobileIconGroup; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.mobile.MobileMappings; import com.android.settingslib.mobile.MobileMappings.Config; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.SignalStrengthUtil; import java.util.Collections; Loading Loading @@ -96,13 +99,15 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl private WifiPickerTrackerHelper mWifiPickerTrackerHelper; @VisibleForTesting final BroadcastReceiver mDataSubscriptionChangedReceiver = new BroadcastReceiver() { final BroadcastReceiver mConnectionChangeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) { mConfig = mSubsPrefCtrlInjector.getConfig(mContext); update(); } else if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) { update(); } } }; Loading Loading @@ -159,17 +164,17 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConfig = mSubsPrefCtrlInjector.getConfig(mContext); } private void registerDataSubscriptionChangedReceiver() { private void registerReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); mContext.registerReceiver(mDataSubscriptionChangedReceiver, filter); filter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); mContext.registerReceiver(mConnectionChangeReceiver, filter); } private void unRegisterDataSubscriptionChangedReceiver() { if (mDataSubscriptionChangedReceiver != null) { mContext.unregisterReceiver(mDataSubscriptionChangedReceiver); private void unRegisterReceiver() { if (mConnectionChangeReceiver != null) { mContext.unregisterReceiver(mConnectionChangeReceiver); } } @OnLifecycleEvent(ON_RESUME) Loading @@ -179,7 +184,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConnectivityListener.start(); mSignalStrengthListener.resume(); mTelephonyDisplayInfoListener.resume(); registerDataSubscriptionChangedReceiver(); registerReceiver(); update(); } Loading @@ -190,7 +195,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConnectivityListener.stop(); mSignalStrengthListener.pause(); mTelephonyDisplayInfoListener.pause(); unRegisterDataSubscriptionChangedReceiver(); unRegisterReceiver(); } @Override Loading Loading @@ -264,9 +269,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl final boolean isDataInService = tmForSubId.getDataState() == TelephonyManager.DATA_CONNECTED; final boolean isActiveCarrierNetwork = (mWifiPickerTrackerHelper != null) && mWifiPickerTrackerHelper.isActiveCarrierNetwork(); String result = mSubsPrefCtrlInjector.getNetworkType( mContext, mConfig, mTelephonyDisplayInfo, subId); if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext)) { mContext, mConfig, mTelephonyDisplayInfo, subId, isActiveCarrierNetwork); if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isActiveCarrierNetwork) { result = mContext.getString(R.string.preference_summary_default_combination, mContext.getString(R.string.mobile_data_connection_active), result); } else if (!isDataInService) { Loading @@ -288,7 +296,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl Drawable icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels, false); final boolean isActiveCellularNetwork = mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext); if (isActiveCellularNetwork) { if (isActiveCellularNetwork || (mWifiPickerTrackerHelper != null) && mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { icon.setTint(Utils.getColorAccentDefaultColor(mContext)); return icon; } Loading Loading @@ -523,7 +532,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl @VisibleForTesting public static class SubsPrefCtrlInjector { /** * Use to inject function and value for class and test class. * Uses to inject function and value for class and test class. */ public boolean canSubscriptionBeDisplayed(Context context, int subId) { return (SubscriptionUtil.getAvailableSubscription(context, Loading @@ -538,42 +547,42 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl } /** * Get default voice subscription ID. * Gets default voice subscription ID. */ public int getDefaultVoiceSubscriptionId() { return SubscriptionManager.getDefaultVoiceSubscriptionId(); } /** * Get default data subscription ID. * Gets default data subscription ID. */ public int getDefaultDataSubscriptionId() { return SubscriptionManager.getDefaultDataSubscriptionId(); } /** * Confirm the current network is cellular and active. * Confirms the current network is cellular and active. */ public boolean isActiveCellularNetwork(Context context) { return MobileNetworkUtils.activeNetworkIsCellular(context); } /** * Confirm the flag of Provider Model switch is turned on or not. * Confirms the flag of Provider Model switch is turned on or not. */ public boolean isProviderModelEnabled(Context context) { return Utils.isProviderModelEnabled(context); } /** * Get config for carrier customization. * Gets config for carrier customization. */ public Config getConfig(Context context) { return MobileMappings.Config.readConfig(context); } /** * Get current mobile network type. * Gets current mobile network type. */ public String getNetworkType(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId) { Loading @@ -585,7 +594,24 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl } /** * Get signal icon with different signal level. * Gets current network type of Carrier Wi-Fi Network or Cellular. */ public String getNetworkType(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId, boolean isCarrierWifiNetwork) { if (isCarrierWifiNetwork) { MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI; int resId = carrierMergedWifiIconGroup.dataContentDescription; return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId) .getString(resId) : ""; } else { return getNetworkType(context, config, telephonyDisplayInfo, subId); } } /** * Gets signal icon with different signal level. */ public Drawable getIcon(Context context, int level, int numLevels, boolean cutOut) { return MobileNetworkUtils.getSignalStrengthIcon(context, level, numLevels, Loading src/com/android/settings/network/telephony/NetworkProviderWorker.java +11 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,10 @@ import com.android.settings.network.MobileDataContentObserver; import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.SubscriptionsChangeListener; import com.android.settings.wifi.slice.WifiScanWorker; import com.android.settingslib.SignalIcon.MobileIconGroup; import com.android.settingslib.mobile.MobileMappings; import com.android.settingslib.mobile.MobileMappings.Config; import com.android.settingslib.mobile.TelephonyIcons; import java.util.Collections; Loading Loading @@ -247,14 +249,21 @@ public class NetworkProviderWorker extends WifiScanWorker implements return SubscriptionManager.getDefaultDataSubscriptionId(); } private String updateNetworkTypeName(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId) { String iconKey = getIconKey(telephonyDisplayInfo); int resId = mapIconSets(config).get(iconKey).dataContentDescription; if (mWifiPickerTrackerHelper != null && mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI; resId = carrierMergedWifiIconGroup.dataContentDescription; return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId) : ""; ? SubscriptionManager.getResourcesForSubId(context, subId) .getString(resId) : ""; } return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId) : ""; } @VisibleForTesting Loading src/com/android/settings/wifi/WifiPickerTrackerHelper.java +10 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,16 @@ public class WifiPickerTrackerHelper implements LifecycleObserver { return true; } /** Confirms connection of the carrier network */ public boolean isActiveCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null) { return mergedCarrierEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED && mergedCarrierEntry.hasInternetAccess(); } return false; } /** Return the carrier network ssid */ public String getCarrierNetworkSsid() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); Loading tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +31 −8 Original line number Diff line number Diff line Loading @@ -428,7 +428,30 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); } @Test @UiThreadTest public void displayPreference_providerAndHasMultiSimAndActiveCarrierWifi_connectedAndWPlus() { final CharSequence expectedSummary = Html.fromHtml("Connected / W+", Html.FROM_HTML_MODE_LEGACY); final String networkType = "W+"; final List<SubscriptionInfo> sub = setupMockSubscriptions(2); doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true)); doReturn(true).when(mWifiPickerTrackerHelper).isActiveCarrierNetwork(); mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -450,7 +473,7 @@ public class SubscriptionsPreferenceControllerTest { setupGetIconConditions(sub.get(0).getSubscriptionId(), false, false, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -470,7 +493,7 @@ public class SubscriptionsPreferenceControllerTest { setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); when(mTelephonyManager.isDataEnabled()).thenReturn(true); mController.onResume(); Loading Loading @@ -507,7 +530,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); when(mTelephonyManager.isDataEnabled()).thenReturn(true); mController.onResume(); Loading @@ -533,7 +556,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -560,7 +583,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_DISCONNECTED, ServiceState.STATE_OUT_OF_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading Loading @@ -595,7 +618,7 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); mController.mDataSubscriptionChangedReceiver.onReceive(mContext, intent); mController.mConnectionChangeReceiver.onReceive(mContext, intent); assertThat(mController.isAvailable()).isTrue(); assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1); Loading @@ -621,7 +644,7 @@ public class SubscriptionsPreferenceControllerTest { doReturn(sub.get(1)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); mController.mDataSubscriptionChangedReceiver.onReceive(mContext, intent); mController.mConnectionChangeReceiver.onReceive(mContext, intent); assertThat(mController.isAvailable()).isTrue(); assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1); Loading Loading
src/com/android/settings/network/SubscriptionsPreferenceController.java +46 −20 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.drawable.Drawable; import android.net.wifi.WifiManager; import android.provider.Settings; import android.telephony.ServiceState; import android.telephony.SignalStrength; Loading Loading @@ -56,9 +57,11 @@ import com.android.settings.network.telephony.SignalStrengthListener; import com.android.settings.network.telephony.TelephonyDisplayInfoListener; import com.android.settings.widget.GearPreference; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.settingslib.SignalIcon.MobileIconGroup; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.mobile.MobileMappings; import com.android.settingslib.mobile.MobileMappings.Config; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.SignalStrengthUtil; import java.util.Collections; Loading Loading @@ -96,13 +99,15 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl private WifiPickerTrackerHelper mWifiPickerTrackerHelper; @VisibleForTesting final BroadcastReceiver mDataSubscriptionChangedReceiver = new BroadcastReceiver() { final BroadcastReceiver mConnectionChangeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) { mConfig = mSubsPrefCtrlInjector.getConfig(mContext); update(); } else if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) { update(); } } }; Loading Loading @@ -159,17 +164,17 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConfig = mSubsPrefCtrlInjector.getConfig(mContext); } private void registerDataSubscriptionChangedReceiver() { private void registerReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); mContext.registerReceiver(mDataSubscriptionChangedReceiver, filter); filter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); mContext.registerReceiver(mConnectionChangeReceiver, filter); } private void unRegisterDataSubscriptionChangedReceiver() { if (mDataSubscriptionChangedReceiver != null) { mContext.unregisterReceiver(mDataSubscriptionChangedReceiver); private void unRegisterReceiver() { if (mConnectionChangeReceiver != null) { mContext.unregisterReceiver(mConnectionChangeReceiver); } } @OnLifecycleEvent(ON_RESUME) Loading @@ -179,7 +184,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConnectivityListener.start(); mSignalStrengthListener.resume(); mTelephonyDisplayInfoListener.resume(); registerDataSubscriptionChangedReceiver(); registerReceiver(); update(); } Loading @@ -190,7 +195,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mConnectivityListener.stop(); mSignalStrengthListener.pause(); mTelephonyDisplayInfoListener.pause(); unRegisterDataSubscriptionChangedReceiver(); unRegisterReceiver(); } @Override Loading Loading @@ -264,9 +269,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl final boolean isDataInService = tmForSubId.getDataState() == TelephonyManager.DATA_CONNECTED; final boolean isActiveCarrierNetwork = (mWifiPickerTrackerHelper != null) && mWifiPickerTrackerHelper.isActiveCarrierNetwork(); String result = mSubsPrefCtrlInjector.getNetworkType( mContext, mConfig, mTelephonyDisplayInfo, subId); if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext)) { mContext, mConfig, mTelephonyDisplayInfo, subId, isActiveCarrierNetwork); if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isActiveCarrierNetwork) { result = mContext.getString(R.string.preference_summary_default_combination, mContext.getString(R.string.mobile_data_connection_active), result); } else if (!isDataInService) { Loading @@ -288,7 +296,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl Drawable icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels, false); final boolean isActiveCellularNetwork = mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext); if (isActiveCellularNetwork) { if (isActiveCellularNetwork || (mWifiPickerTrackerHelper != null) && mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { icon.setTint(Utils.getColorAccentDefaultColor(mContext)); return icon; } Loading Loading @@ -523,7 +532,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl @VisibleForTesting public static class SubsPrefCtrlInjector { /** * Use to inject function and value for class and test class. * Uses to inject function and value for class and test class. */ public boolean canSubscriptionBeDisplayed(Context context, int subId) { return (SubscriptionUtil.getAvailableSubscription(context, Loading @@ -538,42 +547,42 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl } /** * Get default voice subscription ID. * Gets default voice subscription ID. */ public int getDefaultVoiceSubscriptionId() { return SubscriptionManager.getDefaultVoiceSubscriptionId(); } /** * Get default data subscription ID. * Gets default data subscription ID. */ public int getDefaultDataSubscriptionId() { return SubscriptionManager.getDefaultDataSubscriptionId(); } /** * Confirm the current network is cellular and active. * Confirms the current network is cellular and active. */ public boolean isActiveCellularNetwork(Context context) { return MobileNetworkUtils.activeNetworkIsCellular(context); } /** * Confirm the flag of Provider Model switch is turned on or not. * Confirms the flag of Provider Model switch is turned on or not. */ public boolean isProviderModelEnabled(Context context) { return Utils.isProviderModelEnabled(context); } /** * Get config for carrier customization. * Gets config for carrier customization. */ public Config getConfig(Context context) { return MobileMappings.Config.readConfig(context); } /** * Get current mobile network type. * Gets current mobile network type. */ public String getNetworkType(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId) { Loading @@ -585,7 +594,24 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl } /** * Get signal icon with different signal level. * Gets current network type of Carrier Wi-Fi Network or Cellular. */ public String getNetworkType(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId, boolean isCarrierWifiNetwork) { if (isCarrierWifiNetwork) { MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI; int resId = carrierMergedWifiIconGroup.dataContentDescription; return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId) .getString(resId) : ""; } else { return getNetworkType(context, config, telephonyDisplayInfo, subId); } } /** * Gets signal icon with different signal level. */ public Drawable getIcon(Context context, int level, int numLevels, boolean cutOut) { return MobileNetworkUtils.getSignalStrengthIcon(context, level, numLevels, Loading
src/com/android/settings/network/telephony/NetworkProviderWorker.java +11 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,10 @@ import com.android.settings.network.MobileDataContentObserver; import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.SubscriptionsChangeListener; import com.android.settings.wifi.slice.WifiScanWorker; import com.android.settingslib.SignalIcon.MobileIconGroup; import com.android.settingslib.mobile.MobileMappings; import com.android.settingslib.mobile.MobileMappings.Config; import com.android.settingslib.mobile.TelephonyIcons; import java.util.Collections; Loading Loading @@ -247,14 +249,21 @@ public class NetworkProviderWorker extends WifiScanWorker implements return SubscriptionManager.getDefaultDataSubscriptionId(); } private String updateNetworkTypeName(Context context, Config config, TelephonyDisplayInfo telephonyDisplayInfo, int subId) { String iconKey = getIconKey(telephonyDisplayInfo); int resId = mapIconSets(config).get(iconKey).dataContentDescription; if (mWifiPickerTrackerHelper != null && mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI; resId = carrierMergedWifiIconGroup.dataContentDescription; return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId) : ""; ? SubscriptionManager.getResourcesForSubId(context, subId) .getString(resId) : ""; } return resId != 0 ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId) : ""; } @VisibleForTesting Loading
src/com/android/settings/wifi/WifiPickerTrackerHelper.java +10 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,16 @@ public class WifiPickerTrackerHelper implements LifecycleObserver { return true; } /** Confirms connection of the carrier network */ public boolean isActiveCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null) { return mergedCarrierEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED && mergedCarrierEntry.hasInternetAccess(); } return false; } /** Return the carrier network ssid */ public String getCarrierNetworkSsid() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); Loading
tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +31 −8 Original line number Diff line number Diff line Loading @@ -428,7 +428,30 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); } @Test @UiThreadTest public void displayPreference_providerAndHasMultiSimAndActiveCarrierWifi_connectedAndWPlus() { final CharSequence expectedSummary = Html.fromHtml("Connected / W+", Html.FROM_HTML_MODE_LEGACY); final String networkType = "W+"; final List<SubscriptionInfo> sub = setupMockSubscriptions(2); doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true)); doReturn(true).when(mWifiPickerTrackerHelper).isActiveCarrierNetwork(); mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -450,7 +473,7 @@ public class SubscriptionsPreferenceControllerTest { setupGetIconConditions(sub.get(0).getSubscriptionId(), false, false, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -470,7 +493,7 @@ public class SubscriptionsPreferenceControllerTest { setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true, TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); when(mTelephonyManager.isDataEnabled()).thenReturn(true); mController.onResume(); Loading Loading @@ -507,7 +530,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); when(mTelephonyManager.isDataEnabled()).thenReturn(true); mController.onResume(); Loading @@ -533,7 +556,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading @@ -560,7 +583,7 @@ public class SubscriptionsPreferenceControllerTest { TelephonyManager.DATA_DISCONNECTED, ServiceState.STATE_OUT_OF_SERVICE); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(networkType) .when(sInjector).getNetworkType(any(), any(), any(), anyInt()); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false)); mController.onResume(); mController.displayPreference(mPreferenceScreen); Loading Loading @@ -595,7 +618,7 @@ public class SubscriptionsPreferenceControllerTest { mController.onResume(); mController.displayPreference(mPreferenceScreen); mController.mDataSubscriptionChangedReceiver.onReceive(mContext, intent); mController.mConnectionChangeReceiver.onReceive(mContext, intent); assertThat(mController.isAvailable()).isTrue(); assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1); Loading @@ -621,7 +644,7 @@ public class SubscriptionsPreferenceControllerTest { doReturn(sub.get(1)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); mController.mDataSubscriptionChangedReceiver.onReceive(mContext, intent); mController.mConnectionChangeReceiver.onReceive(mContext, intent); assertThat(mController.isAvailable()).isTrue(); assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1); Loading