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();