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

Commit e5fdc968 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

Merge "Use old API to build NetworkTemplate" into qt-dev

parents 54c7c692 5e955861
Loading
Loading
Loading
Loading
+3 −22
Original line number Original line Diff line number Diff line
@@ -18,15 +18,11 @@ package com.android.settingslib.net;


import android.content.Context;
import android.content.Context;
import android.net.NetworkTemplate;
import android.net.NetworkTemplate;
import android.os.ParcelUuid;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.util.Log;


import java.util.ArrayList;
import java.util.List;

/**
/**
 * Utils class for data usage
 * Utils class for data usage
 */
 */
@@ -38,7 +34,7 @@ public class DataUsageUtils {
     */
     */
    public static NetworkTemplate getMobileTemplate(Context context, int subId) {
    public static NetworkTemplate getMobileTemplate(Context context, int subId) {
        final TelephonyManager telephonyManager = context.getSystemService(
        final TelephonyManager telephonyManager = context.getSystemService(
                TelephonyManager.class);
                TelephonyManager.class).createForSubscriptionId(subId);
        final SubscriptionManager subscriptionManager = context.getSystemService(
        final SubscriptionManager subscriptionManager = context.getSystemService(
                SubscriptionManager.class);
                SubscriptionManager.class);
        final SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId);
        final SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId);
@@ -49,23 +45,8 @@ public class DataUsageUtils {
            Log.i(TAG, "Subscription is not active: " + subId);
            Log.i(TAG, "Subscription is not active: " + subId);
            return mobileAll;
            return mobileAll;
        }
        }
        final ParcelUuid groupUuid = info.getGroupUuid();
        if (groupUuid == null) {
            Log.i(TAG, "Subscription doesn't have valid group uuid: " + subId);
            return mobileAll;
        }


        // Otherwise merge other subscriberId to create new NetworkTemplate
        // Use old API to build networkTemplate
        final List<SubscriptionInfo> groupInfos = subscriptionManager.getSubscriptionsInGroup(
        return NetworkTemplate.normalize(mobileAll, telephonyManager.getMergedSubscriberIds());
                groupUuid);
        final List<String> mergedSubscriberIds = new ArrayList<>();
        for (SubscriptionInfo subInfo : groupInfos) {
            final String subscriberId = telephonyManager.getSubscriberId(
                    subInfo.getSubscriptionId());
            if (subscriberId != null) {
                mergedSubscriberIds.add(subscriberId);
            }
        }
        return NetworkTemplate.normalize(mobileAll, mergedSubscriberIds.toArray(new String[0]));
    }
    }
}
}
+4 −15
Original line number Original line Diff line number Diff line
@@ -44,7 +44,6 @@ import java.util.List;
public class DataUsageUtilsTest {
public class DataUsageUtilsTest {


    private static final int SUB_ID = 1;
    private static final int SUB_ID = 1;
    private static final int SUB_ID_2 = 2;
    private static final String SUBSCRIBER_ID = "Test Subscriber";
    private static final String SUBSCRIBER_ID = "Test Subscriber";
    private static final String SUBSCRIBER_ID_2 = "Test Subscriber 2";
    private static final String SUBSCRIBER_ID_2 = "Test Subscriber 2";


@@ -67,11 +66,11 @@ public class DataUsageUtilsTest {


        mContext = spy(RuntimeEnvironment.application);
        mContext = spy(RuntimeEnvironment.application);
        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
        when(mTelephonyManager.getSubscriberId(SUB_ID)).thenReturn(SUBSCRIBER_ID);
        when(mTelephonyManager.getSubscriberId(SUB_ID)).thenReturn(SUBSCRIBER_ID);
        when(mTelephonyManager.getSubscriberId(SUB_ID_2)).thenReturn(SUBSCRIBER_ID_2);
        when(mTelephonyManager.getMergedSubscriberIds()).thenReturn(
        when(mInfo1.getSubscriptionId()).thenReturn(SUB_ID);
                new String[]{SUBSCRIBER_ID, SUBSCRIBER_ID_2});
        when(mInfo2.getSubscriptionId()).thenReturn(SUB_ID_2);


        mInfos = new ArrayList<>();
        mInfos = new ArrayList<>();
        mInfos.add(mInfo1);
        mInfos.add(mInfo1);
@@ -89,17 +88,7 @@ public class DataUsageUtilsTest {
    }
    }


    @Test
    @Test
    public void getMobileTemplate_groupUuidNull_returnMobileAll() {
    public void getMobileTemplate_infoExisted_returnMobileMerged() {
        when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
        when(mInfo1.getGroupUuid()).thenReturn(null);

        final NetworkTemplate networkTemplate = DataUsageUtils.getMobileTemplate(mContext, SUB_ID);
        assertThat(networkTemplate.matchesSubscriberId(SUBSCRIBER_ID)).isTrue();
        assertThat(networkTemplate.matchesSubscriberId(SUBSCRIBER_ID_2)).isFalse();
    }

    @Test
    public void getMobileTemplate_groupUuidExist_returnMobileMerged() {
        when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
        when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
        when(mInfo1.getGroupUuid()).thenReturn(mParcelUuid);
        when(mInfo1.getGroupUuid()).thenReturn(mParcelUuid);