diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java index 6d9ef3836c8..a74c443f0e2 100644 --- a/src/com/android/settings/datausage/DataUsageSummary.java +++ b/src/com/android/settings/datausage/DataUsageSummary.java @@ -103,18 +103,10 @@ public class DataUsageSummary extends DataUsageBaseFragment implements Indexable removePreference(KEY_RESTRICT_BACKGROUND); } if (hasMobileData) { - List subscriptions = - services.mSubscriptionManager.getActiveSubscriptionInfoList(); - if (subscriptions == null || subscriptions.size() == 0) { - addMobileSection(defaultSubId); - } - for (int i = 0; subscriptions != null && i < subscriptions.size(); i++) { - SubscriptionInfo subInfo = subscriptions.get(i); - if (subscriptions.size() > 1) { - addMobileSection(subInfo.getSubscriptionId(), subInfo); - } else { - addMobileSection(subInfo.getSubscriptionId()); - } + SubscriptionInfo subInfo + = services.mSubscriptionManager.getDefaultDataSubscriptionInfo(); + if (subInfo != null) { + addMobileSection(subInfo.getSubscriptionId()); } } boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context); diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index 6deced71e70..c33371b6a2e 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -37,7 +37,6 @@ import android.util.RecurrenceRule; import com.android.internal.util.CollectionUtils; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; -import com.android.settings.core.FeatureFlags; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.net.DataUsageController; @@ -150,7 +149,8 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll @Override public int getAvailabilityStatus() { - return AVAILABLE; + return mSubscriptionManager.getDefaultDataSubscriptionInfo() != null + ? AVAILABLE : DISABLED_UNSUPPORTED; } @Override diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java index 191425038f2..634fe65a57b 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java @@ -16,6 +16,9 @@ package com.android.settings.datausage; +import static com.android.settings.core.BasePreferenceController.AVAILABLE; +import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED; +import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; @@ -25,6 +28,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.net.NetworkTemplate; +import android.telephony.SubscriptionInfo; +import android.telephony.SubscriptionManager; import com.android.settings.R; import com.android.settings.testutils.SettingsRobolectricTestRunner; @@ -61,6 +66,8 @@ public class DataUsageSummaryPreferenceControllerTest { private NetworkPolicyEditor mPolicyEditor; @Mock private NetworkTemplate mNetworkTemplate; + @Mock + private SubscriptionManager mSubscriptionManager; private Context mContext; private DataUsageSummaryPreferenceController mController; @@ -230,6 +237,40 @@ public class DataUsageSummaryPreferenceControllerTest { verify(mSummaryPreference).setLimitInfo("1.00 MB data warning / 1.00 MB data limit"); } + @Test + public void testMobileData_preferenceAvailable() { + mController = new DataUsageSummaryPreferenceController( + mContext, + mDataUsageController, + mDataInfoController, + mNetworkTemplate, + mPolicyEditor, + R.string.cell_data_template, + true, + mSubscriptionManager); + + final SubscriptionInfo subInfo = new SubscriptionInfo(0, "123456", 0, "name", "carrier", + 0, 0, "number", 0, null, 123, 456, "ZX"); + when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(subInfo); + assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); + } + + @Test + public void testMobileData_preferenceDisabled() { + mController = new DataUsageSummaryPreferenceController( + mContext, + mDataUsageController, + mDataInfoController, + mNetworkTemplate, + mPolicyEditor, + R.string.cell_data_template, + true, + mSubscriptionManager); + + when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(null); + assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_UNSUPPORTED); + } + private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) { DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo(); info.carrier = CARRIER_NAME;