[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
This commit is contained in:
@@ -40,6 +40,7 @@ import com.android.internal.util.CollectionUtils;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.network.ProxySubscriptionManager;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settingslib.NetworkPolicyEditor;
|
import com.android.settingslib.NetworkPolicyEditor;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
@@ -117,8 +118,8 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
NetworkPolicyManager policyManager = activity.getSystemService(NetworkPolicyManager.class);
|
NetworkPolicyManager policyManager = activity.getSystemService(NetworkPolicyManager.class);
|
||||||
mPolicyEditor = new NetworkPolicyEditor(policyManager);
|
mPolicyEditor = new NetworkPolicyEditor(policyManager);
|
||||||
|
|
||||||
mHasMobileData = DataUsageUtils.hasMobileData(activity)
|
mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubscriptionId)
|
||||||
&& mSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
&& DataUsageUtils.hasMobileData(activity);
|
||||||
|
|
||||||
mDataUsageController = new DataUsageController(activity);
|
mDataUsageController = new DataUsageController(activity);
|
||||||
mDataUsageController.setSubscriptionId(mSubscriptionId);
|
mDataUsageController.setSubscriptionId(mSubscriptionId);
|
||||||
@@ -270,11 +271,10 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
mCycleEnd = info.cycleEnd;
|
mCycleEnd = info.cycleEnd;
|
||||||
mSnapshotTime = -1L;
|
mSnapshotTime = -1L;
|
||||||
|
|
||||||
SubscriptionInfo subInfo = mSubscriptionManager.getActiveSubscriptionInfo(mSubscriptionId);
|
final ProxySubscriptionManager proxySubsciptionMgr =
|
||||||
if (subInfo == null) {
|
ProxySubscriptionManager.getInstance(mContext);
|
||||||
subInfo = mSubscriptionManager.getAvailableSubscriptionInfoList().stream().filter(
|
final SubscriptionInfo subInfo = proxySubsciptionMgr
|
||||||
i -> i.getSubscriptionId() == mSubscriptionId).findFirst().orElse(null);
|
.getAccessibleSubscriptionInfo(mSubscriptionId);
|
||||||
}
|
|
||||||
if (subInfo != null && mHasMobileData) {
|
if (subInfo != null && mHasMobileData) {
|
||||||
mCarrierName = subInfo.getCarrierName();
|
mCarrierName = subInfo.getCarrierName();
|
||||||
List<SubscriptionPlan> plans = mSubscriptionManager.getSubscriptionPlans(
|
List<SubscriptionPlan> plans = mSubscriptionManager.getSubscriptionPlans(
|
||||||
|
@@ -33,6 +33,8 @@ import android.text.format.Formatter;
|
|||||||
import android.text.format.Formatter.BytesResult;
|
import android.text.format.Formatter.BytesResult;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.settings.network.ProxySubscriptionManager;
|
||||||
|
|
||||||
import java.util.List;
|
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");
|
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
|
||||||
}
|
}
|
||||||
final List<SubscriptionInfo> subInfoList =
|
final List<SubscriptionInfo> subInfoList =
|
||||||
context.getSystemService(SubscriptionManager.class)
|
ProxySubscriptionManager.getInstance(context)
|
||||||
.getActiveSubscriptionInfoList();
|
.getActiveSubscriptionsInfo();
|
||||||
// No activated Subscriptions
|
// No activated Subscriptions
|
||||||
if (subInfoList == null) {
|
if (subInfoList == null) {
|
||||||
if (LOGD) {
|
if (LOGD) {
|
||||||
@@ -150,6 +152,14 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean hasSim(Context context) {
|
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);
|
TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
|
||||||
final int simState = telephonyManager.getSimState();
|
final int simState = telephonyManager.getSimState();
|
||||||
// Note that pulling the SIM card returns UNKNOWN, not ABSENT.
|
// 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
|
* SubscriptionManager#INVALID_SUBSCRIPTION_ID
|
||||||
*/
|
*/
|
||||||
public static int getDefaultSubscriptionId(Context context) {
|
public static int getDefaultSubscriptionId(Context context) {
|
||||||
final SubscriptionManager subscriptionMgr =
|
|
||||||
context.getSystemService(SubscriptionManager.class);
|
|
||||||
|
|
||||||
// default data subscription is first choice
|
// default data subscription is first choice
|
||||||
final int dataSubId = subscriptionMgr.getDefaultDataSubscriptionId();
|
final int dataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
|
||||||
if (SubscriptionManager.isValidSubscriptionId(dataSubId)) {
|
if (SubscriptionManager.isValidSubscriptionId(dataSubId)) {
|
||||||
return dataSubId;
|
return dataSubId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final ProxySubscriptionManager proxySubscriptionMgr =
|
||||||
|
ProxySubscriptionManager.getInstance(context);
|
||||||
|
|
||||||
// any active subscription is second choice
|
// any active subscription is second choice
|
||||||
List<SubscriptionInfo> subList = subscriptionMgr.getActiveSubscriptionInfoList();
|
List<SubscriptionInfo> subList = proxySubscriptionMgr.getActiveSubscriptionsInfo();
|
||||||
if ((subList == null) || (subList.size() <= 0)) {
|
if ((subList == null) || (subList.size() <= 0)) {
|
||||||
// any subscription is third choice
|
// any subscription is third choice
|
||||||
subList = subscriptionMgr.getAvailableSubscriptionInfoList();
|
subList = proxySubscriptionMgr.getAccessibleSubscriptionsInfo();
|
||||||
}
|
}
|
||||||
if ((subList == null) || (subList.size() <= 0)) {
|
if ((subList == null) || (subList.size() <= 0)) {
|
||||||
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
Reference in New Issue
Block a user