summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/datausage
diff options
context:
space:
mode:
authorBonian Chen <bonianchen@google.com>2020-02-10 23:49:53 +0800
committerBonian Chen <bonianchen@google.com>2020-02-10 23:49:53 +0800
commitdcd92af0a17aac960122c4d354ae267921800d85 (patch)
tree6b379acc6310d713d0beb4277281e6b24831224c /src/com/android/settings/datausage
parentd4e2f78d9abd6da89d0b5a75deb2de36c41cecc5 (diff)
downloadpackages_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.java14
-rw-r--r--src/com/android/settings/datausage/DataUsageUtils.java26
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;