Merge "Fix up Network and Internet Slice" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d79e9c498a
@@ -64,7 +64,7 @@
|
||||
settings:useAdminDisabledSummary="true" />
|
||||
|
||||
<com.android.settingslib.RestrictedSwitchPreference
|
||||
android:key="airplane_mode"
|
||||
android:key="airplane_mode_old"
|
||||
android:title="@string/airplane_mode"
|
||||
android:icon="@drawable/ic_airplanemode_active"
|
||||
android:disableDependentsState="true"
|
||||
|
@@ -53,7 +53,7 @@
|
||||
settings:useAdminDisabledSummary="true" />
|
||||
|
||||
<com.android.settingslib.RestrictedSwitchPreference
|
||||
android:key="toggle_airplane"
|
||||
android:key="airplane_mode"
|
||||
android:title="@string/airplane_mode"
|
||||
android:icon="@drawable/ic_airplanemode_active"
|
||||
android:disableDependentsState="true"
|
||||
|
@@ -46,6 +46,7 @@ import com.android.settings.slices.SliceBackgroundWorker;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Custom {@link Slice} for Mobile Data.
|
||||
@@ -71,6 +72,11 @@ public class MobileDataSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
// Mobile data not available, thus return no Slice.
|
||||
if (!isMobileDataAvailable()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
R.drawable.ic_network_cell);
|
||||
final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
|
||||
@@ -178,6 +184,16 @@ public class MobileDataSlice implements CustomSliceable {
|
||||
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
|
||||
boolean isAirplaneModeEnabled() {
|
||||
// Generic key since we only want the method check - no UI.
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user