Merge "Fix up Network and Internet Slice" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-10 19:44:42 +00:00
committed by Android (Google) Code Review
4 changed files with 41 additions and 2 deletions

View File

@@ -64,7 +64,7 @@
settings:useAdminDisabledSummary="true" /> settings:useAdminDisabledSummary="true" />
<com.android.settingslib.RestrictedSwitchPreference <com.android.settingslib.RestrictedSwitchPreference
android:key="airplane_mode" android:key="airplane_mode_old"
android:title="@string/airplane_mode" android:title="@string/airplane_mode"
android:icon="@drawable/ic_airplanemode_active" android:icon="@drawable/ic_airplanemode_active"
android:disableDependentsState="true" android:disableDependentsState="true"

View File

@@ -53,7 +53,7 @@
settings:useAdminDisabledSummary="true" /> settings:useAdminDisabledSummary="true" />
<com.android.settingslib.RestrictedSwitchPreference <com.android.settingslib.RestrictedSwitchPreference
android:key="toggle_airplane" android:key="airplane_mode"
android:title="@string/airplane_mode" android:title="@string/airplane_mode"
android:icon="@drawable/ic_airplanemode_active" android:icon="@drawable/ic_airplanemode_active"
android:disableDependentsState="true" android:disableDependentsState="true"

View File

@@ -46,6 +46,7 @@ import com.android.settings.slices.SliceBackgroundWorker;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import java.io.IOException; import java.io.IOException;
import java.util.List;
/** /**
* Custom {@link Slice} for Mobile Data. * Custom {@link Slice} for Mobile Data.
@@ -71,6 +72,11 @@ public class MobileDataSlice implements CustomSliceable {
@Override @Override
public Slice getSlice() { public Slice getSlice() {
// Mobile data not available, thus return no Slice.
if (!isMobileDataAvailable()) {
return null;
}
final IconCompat icon = IconCompat.createWithResource(mContext, final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_network_cell); R.drawable.ic_network_cell);
final String title = mContext.getText(R.string.mobile_data_settings_title).toString(); final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
@@ -178,6 +184,16 @@ public class MobileDataSlice implements CustomSliceable {
intent, 0 /* flags */); intent, 0 /* flags */);
} }
/**
* @return {@code true} when mobile data is not supported by the current device.
*/
private boolean isMobileDataAvailable() {
final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getSelectableSubscriptionInfoList();
return !(subInfoList == null || subInfoList.isEmpty());
}
@VisibleForTesting @VisibleForTesting
boolean isAirplaneModeEnabled() { boolean isAirplaneModeEnabled() {
// Generic key since we only want the method check - no UI. // Generic key since we only want the method check - no UI.

View File

@@ -49,6 +49,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@@ -76,6 +78,9 @@ public class MobileDataSliceTest {
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(SUB_ID).when(mSubscriptionInfo).getSubscriptionId(); doReturn(SUB_ID).when(mSubscriptionInfo).getSubscriptionId();
doReturn(new ArrayList<>(Arrays.asList(mSubscriptionInfo)))
.when(mSubscriptionManager).getSelectableSubscriptionInfoList();
// Set-up specs for SliceMetadata. // Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -164,6 +169,24 @@ public class MobileDataSliceTest {
assertThat(isMobileDataEnabled).isEqualTo(seed); 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 @Test
public void airplaneModeEnabled_slicePrimaryActionIsEmpty() { public void airplaneModeEnabled_slicePrimaryActionIsEmpty() {
doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled(); doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();