diff --git a/res/xml/network_and_internet.xml b/res/xml/network_and_internet.xml index c21886965fa..32b51d48fca 100644 --- a/res/xml/network_and_internet.xml +++ b/res/xml/network_and_internet.xml @@ -64,7 +64,7 @@ settings:useAdminDisabledSummary="true" /> subInfoList = + mSubscriptionManager.getSelectableSubscriptionInfoList(); + + return !(subInfoList == null || subInfoList.isEmpty()); + } + @VisibleForTesting boolean isAirplaneModeEnabled() { // Generic key since we only want the method check - no UI. diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java index e488d0c7fb2..e59fbaf6b02 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java @@ -49,6 +49,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @RunWith(RobolectricTestRunner.class) @@ -76,6 +78,9 @@ public class MobileDataSliceTest { doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(SUB_ID).when(mSubscriptionInfo).getSubscriptionId(); + doReturn(new ArrayList<>(Arrays.asList(mSubscriptionInfo))) + .when(mSubscriptionManager).getSelectableSubscriptionInfoList(); + // Set-up specs for SliceMetadata. SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); @@ -164,6 +169,24 @@ public class MobileDataSliceTest { assertThat(isMobileDataEnabled).isEqualTo(seed); } + @Test + public void isMobileDataAvailable_noSubscriptions_returnsNull() { + doReturn(new ArrayList<>()).when(mSubscriptionManager).getSelectableSubscriptionInfoList(); + + final Slice slice = mMobileDataSlice.getSlice(); + + assertThat(slice).isNull(); + } + + @Test + public void isMobileDataAvailable_nullSubscriptions_returnsNull() { + doReturn(null).when(mSubscriptionManager).getSelectableSubscriptionInfoList(); + + final Slice slice = mMobileDataSlice.getSlice(); + + assertThat(slice).isNull(); + } + @Test public void airplaneModeEnabled_slicePrimaryActionIsEmpty() { doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();