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

Commit 533e0455 authored by SongFerngWang's avatar SongFerngWang Committed by SongFerng Wang
Browse files

Using new API setDataEnabledForReason for setDataEnabled

Bug: 318310357
Bug: 298898436
Bug: 298891941
Test: atest MobileNetworkUtilsTest
Change-Id: I30b56247370ebaa5896bec3205ddce3e5c92c7d0
parent 96d8953e
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -358,7 +358,8 @@ public class MobileNetworkUtils {
                .createForSubscriptionId(subId);
        final SubscriptionManager subscriptionManager = context.getSystemService(
                SubscriptionManager.class).createForAllUserProfiles();
        telephonyManager.setDataEnabled(enabled);
        telephonyManager.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
                enabled);

        if (disableOtherSubscriptions) {
            final List<SubscriptionInfo> subInfoList =
@@ -367,8 +368,10 @@ public class MobileNetworkUtils {
                for (SubscriptionInfo subInfo : subInfoList) {
                    // We never disable mobile data for opportunistic subscriptions.
                    if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) {
                        context.getSystemService(TelephonyManager.class).createForSubscriptionId(
                                subInfo.getSubscriptionId()).setDataEnabled(false);
                        context.getSystemService(TelephonyManager.class)
                                .createForSubscriptionId(subInfo.getSubscriptionId())
                                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
                                        false);
                    }
                }
            }
+12 −6
Original line number Diff line number Diff line
@@ -148,24 +148,30 @@ public class MobileNetworkUtilsTest {
    public void setMobileDataEnabled_setEnabled_enabled() {
        MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, false);

        verify(mTelephonyManager).setDataEnabled(true);
        verify(mTelephonyManager2, never()).setDataEnabled(anyBoolean());
        verify(mTelephonyManager)
                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
        verify(mTelephonyManager2, never())
                .setDataEnabledForReason(anyInt(), anyBoolean());
    }

    @Test
    public void setMobileDataEnabled_setDisabled_disabled() {
        MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_2, true, false);

        verify(mTelephonyManager2).setDataEnabled(true);
        verify(mTelephonyManager, never()).setDataEnabled(anyBoolean());
        verify(mTelephonyManager2)
                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
        verify(mTelephonyManager, never())
                .setDataEnabledForReason(anyInt(), anyBoolean());
    }

    @Test
    public void setMobileDataEnabled_disableOtherSubscriptions() {
        MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, true);

        verify(mTelephonyManager).setDataEnabled(true);
        verify(mTelephonyManager2).setDataEnabled(false);
        verify(mTelephonyManager)
                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
        verify(mTelephonyManager2)
                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, false);
    }

    @Test