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

Commit dcd92af0 authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Access ProxySubscriptionManager within DataUsage

Redirect some SubscriptionManager access to ProxySubscriptionManager.
This will reduce some access latency.

Bug: 141833767
Test: manual
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest
Change-Id: I2cb30dd0570a09543a13ca01cf054ba2d18d70d4
parent d4e2f78d
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -117,8 +118,8 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
        NetworkPolicyManager policyManager = activity.getSystemService(NetworkPolicyManager.class);
        mPolicyEditor = new NetworkPolicyEditor(policyManager);

        mHasMobileData = DataUsageUtils.hasMobileData(activity)
                && mSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
        mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubscriptionId)
                && DataUsageUtils.hasMobileData(activity);

        mDataUsageController = new DataUsageController(activity);
        mDataUsageController.setSubscriptionId(mSubscriptionId);
@@ -270,11 +271,10 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
        mCycleEnd = info.cycleEnd;
        mSnapshotTime = -1L;

        SubscriptionInfo subInfo = mSubscriptionManager.getActiveSubscriptionInfo(mSubscriptionId);
        if (subInfo == null) {
            subInfo = mSubscriptionManager.getAvailableSubscriptionInfoList().stream().filter(
                    i -> i.getSubscriptionId() == mSubscriptionId).findFirst().orElse(null);
        }
        final ProxySubscriptionManager proxySubsciptionMgr =
                ProxySubscriptionManager.getInstance(mContext);
        final SubscriptionInfo subInfo = proxySubsciptionMgr
                .getAccessibleSubscriptionInfo(mSubscriptionId);
        if (subInfo != null && mHasMobileData) {
            mCarrierName = subInfo.getCarrierName();
            List<SubscriptionPlan> plans = mSubscriptionManager.getSubscriptionPlans(
+18 −8
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult;
import android.util.Log;

import com.android.settings.network.ProxySubscriptionManager;

import java.util.List;

/**
@@ -107,8 +109,8 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
            return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
        }
        final List<SubscriptionInfo> subInfoList =
                context.getSystemService(SubscriptionManager.class)
                .getActiveSubscriptionInfoList();
                ProxySubscriptionManager.getInstance(context)
                .getActiveSubscriptionsInfo();
        // No activated Subscriptions
        if (subInfoList == null) {
            if (LOGD) {
@@ -150,6 +152,14 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
    }

    public static boolean hasSim(Context context) {
        // Access cache within ProxySubscriptionManager to speed up
        final List<SubscriptionInfo> subInfoList =
                ProxySubscriptionManager.getInstance(context)
                .getActiveSubscriptionsInfo();
        if ((subInfoList != null) && (subInfoList.size() > 0)) {
            return true;
        }

        TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
        final int simState = telephonyManager.getSimState();
        // Note that pulling the SIM card returns UNKNOWN, not ABSENT.
@@ -162,20 +172,20 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
     * SubscriptionManager#INVALID_SUBSCRIPTION_ID
     */
    public static int getDefaultSubscriptionId(Context context) {
        final SubscriptionManager subscriptionMgr =
                context.getSystemService(SubscriptionManager.class);

        // default data subscription is first choice
        final int dataSubId = subscriptionMgr.getDefaultDataSubscriptionId();
        final int dataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
        if (SubscriptionManager.isValidSubscriptionId(dataSubId)) {
            return dataSubId;
        }

        final ProxySubscriptionManager proxySubscriptionMgr =
                ProxySubscriptionManager.getInstance(context);

        // any active subscription is second choice
        List<SubscriptionInfo> subList = subscriptionMgr.getActiveSubscriptionInfoList();
        List<SubscriptionInfo> subList = proxySubscriptionMgr.getActiveSubscriptionsInfo();
        if ((subList == null) || (subList.size() <= 0)) {
            // any subscription is third choice
            subList = subscriptionMgr.getAvailableSubscriptionInfoList();
            subList = proxySubscriptionMgr.getAccessibleSubscriptionsInfo();
        }
        if ((subList == null) || (subList.size() <= 0)) {
            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;