Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d79e9c49 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 6dd38b46 441a4394
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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"
+16 −0
Original line number Diff line number Diff line
@@ -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.
+23 −0
Original line number Diff line number Diff line
@@ -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();