diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java index 2f2a04954ba..7b67a0282c2 100644 --- a/src/com/android/settings/datausage/DataUsageSummary.java +++ b/src/com/android/settings/datausage/DataUsageSummary.java @@ -95,8 +95,8 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context); if (hasMobileData) { addMobileSection(defaultSubId); - if (DataUsageUtils.hasSim(context) && hasWifiRadio) { - // If the device has a SIM installed, the data usage section shows usage for mobile, + if (hasActiveSubscription() && hasWifiRadio) { + // If the device has active SIM, the data usage section shows usage for mobile, // and the WiFi section is added if there is a WiFi radio - legacy behavior. addWifiSection(); } @@ -156,6 +156,13 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage mProxySubscriptionMgr.setLifecycle(getLifecycle()); } + @VisibleForTesting + boolean hasActiveSubscription() { + final List subInfoList = + mProxySubscriptionMgr.getActiveSubscriptionsInfo(); + return ((subInfoList != null) && (subInfoList.size() > 0)); + } + private void addMobileSection(int subId, SubscriptionInfo subInfo) { TemplatePreferenceCategory category = (TemplatePreferenceCategory) inflatePreferences(R.xml.data_usage_cellular); diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java index 02bfda802c6..6cdf2102468 100644 --- a/src/com/android/settings/datausage/DataUsageUtils.java +++ b/src/com/android/settings/datausage/DataUsageUtils.java @@ -151,22 +151,6 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU return connectivityManager != null && connectivityManager.isNetworkSupported(TYPE_WIFI); } - public static boolean hasSim(Context context) { - // Access cache within ProxySubscriptionManager to speed up - final List subInfoList = - ProxySubscriptionManager.getInstance(context) - .getActiveSubscriptionsInfo(); - if ((subInfoList != null) && (subInfoList.size() > 0)) { - return true; - } - - TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); - final int simState = telephonyManager.getSimState(); - // Note that pulling the SIM card returns UNKNOWN, not ABSENT. - return simState != TelephonyManager.SIM_STATE_ABSENT - && simState != TelephonyManager.SIM_STATE_UNKNOWN; - } - /** * Returns the default subscription if available else returns * SubscriptionManager#INVALID_SUBSCRIPTION_ID diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java index 274c12a8f94..6d1081416dd 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java @@ -114,6 +114,7 @@ public class DataUsageSummaryTest { final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary()); doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any()); + doReturn(true).when(dataUsageSummary).hasActiveSubscription(); doReturn(mContext).when(dataUsageSummary).getContext(); doReturn(true).when(dataUsageSummary).removePreference(anyString()); @@ -134,6 +135,7 @@ public class DataUsageSummaryTest { final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary()); doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any()); + doReturn(false).when(dataUsageSummary).hasActiveSubscription(); doReturn(mContext).when(dataUsageSummary).getContext(); doReturn(true).when(dataUsageSummary).removePreference(anyString()); @@ -154,6 +156,7 @@ public class DataUsageSummaryTest { final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary()); doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any()); + doReturn(false).when(dataUsageSummary).hasActiveSubscription(); doReturn(mContext).when(dataUsageSummary).getContext(); doReturn(true).when(dataUsageSummary).removePreference(anyString()); @@ -177,6 +180,7 @@ public class DataUsageSummaryTest { final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary()); doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any()); + doReturn(false).when(dataUsageSummary).hasActiveSubscription(); doReturn(mContext).when(dataUsageSummary).getContext(); doReturn(true).when(dataUsageSummary).removePreference(anyString()); diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java index 33ac764ee2d..21f9d1a3ab3 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java @@ -31,7 +31,6 @@ import android.telephony.TelephonyManager; import android.util.DataUnit; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -76,22 +75,6 @@ public final class DataUsageUtilsTest { assertThat(hasMobileData).isFalse(); } - @Test - @Ignore - public void hasSim_simStateReady() { - when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); - final boolean hasSim = DataUsageUtils.hasSim(mContext); - assertThat(hasSim).isTrue(); - } - - @Test - @Ignore - public void hasSim_simStateMissing() { - when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT); - final boolean hasSim = DataUsageUtils.hasSim(mContext); - assertThat(hasSim).isFalse(); - } - @Test public void formatDataUsage_useIECUnit() { final CharSequence formattedDataUsage = DataUsageUtils.formatDataUsage(