From 12c22d80669fe3aa266a5a16a54d2734b2409cce Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 10 Feb 2020 23:49:53 +0800 Subject: [PATCH] [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 Merged-In: I2cb30dd0570a09543a13ca01cf054ba2d18d70d4 Change-Id: I536b45fd5ddd5d9d9591a133a0f79227a670d7dd --- .../settings/datausage/DataUsageUtils.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java index 433d1eda855..02bfda802c6 100644 --- a/src/com/android/settings/datausage/DataUsageUtils.java +++ b/src/com/android/settings/datausage/DataUsageUtils.java @@ -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 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 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 subList = subscriptionMgr.getActiveSubscriptionInfoList(); + List 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;