diff options
author | Bonian Chen <bonianchen@google.com> | 2020-02-10 23:49:53 +0800 |
---|---|---|
committer | Bonian Chen <bonianchen@google.com> | 2020-02-10 23:49:53 +0800 |
commit | dcd92af0a17aac960122c4d354ae267921800d85 (patch) | |
tree | 6b379acc6310d713d0beb4277281e6b24831224c /src/com/android/settings/datausage | |
parent | d4e2f78d9abd6da89d0b5a75deb2de36c41cecc5 (diff) | |
download | packages_apps_Settings-dcd92af0a17aac960122c4d354ae267921800d85.tar.gz packages_apps_Settings-dcd92af0a17aac960122c4d354ae267921800d85.tar.bz2 packages_apps_Settings-dcd92af0a17aac960122c4d354ae267921800d85.zip |
[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
Diffstat (limited to 'src/com/android/settings/datausage')
-rw-r--r-- | src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java | 14 | ||||
-rw-r--r-- | src/com/android/settings/datausage/DataUsageUtils.java | 26 |
2 files changed, 25 insertions, 15 deletions
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index 92b8a9df48..bfe78e5de0 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -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( diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java index 433d1eda85..02bfda802c 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<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; |