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" />
|
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"
|
||||||
|
@@ -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"
|
||||||
|
@@ -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.
|
||||||
|
@@ -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();
|
||||||
|
Reference in New Issue
Block a user