[Settings] Support re-init DataUsageSummaryPreferenceController

Support re-init DataUsageSummaryPreferenceController without
re-constructing it.

Bug: 151751844
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest
Change-Id: If72a521c5fbaec8b8902fb80b13d9d0f07c716af
This commit is contained in:
Bonian Chen
2020-04-24 11:33:15 +08:00
parent a26a7afe8e
commit 87a4577472
2 changed files with 15 additions and 9 deletions

View File

@@ -114,25 +114,30 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc
*/ */
public void init(int subscriptionId) { public void init(int subscriptionId) {
mSubId = subscriptionId; mSubId = subscriptionId;
mDataUsageController = null;
}
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId); private void updateConfiguration(Context context,
int subscriptionId, SubscriptionInfo subInfo) {
final NetworkPolicyManager policyManager = final NetworkPolicyManager policyManager =
mContext.getSystemService(NetworkPolicyManager.class); context.getSystemService(NetworkPolicyManager.class);
mPolicyEditor = new NetworkPolicyEditor(policyManager); mPolicyEditor = new NetworkPolicyEditor(policyManager);
mHasMobileData = DataUsageUtils.hasMobileData(mContext); mHasMobileData = DataUsageUtils.hasMobileData(context);
mDataUsageController = new DataUsageController(mContext); mDataUsageController = new DataUsageController(context);
mDataUsageController.setSubscriptionId(mSubId); mDataUsageController.setSubscriptionId(subscriptionId);
mDataInfoController = new DataUsageInfoController(); mDataInfoController = new DataUsageInfoController();
final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId);
if (subInfo != null) { if (subInfo != null) {
mDataUsageTemplate = R.string.cell_data_template; mDataUsageTemplate = R.string.cell_data_template;
} else if (DataUsageUtils.hasWifiRadio(mContext)) { mDefaultTemplate = DataUsageUtils.getMobileTemplate(context, subscriptionId);
} else if (DataUsageUtils.hasWifiRadio(context)) {
mDataUsageTemplate = R.string.wifi_data_template; mDataUsageTemplate = R.string.wifi_data_template;
mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard();
} else { } else {
mDataUsageTemplate = R.string.ethernet_data_template; mDataUsageTemplate = R.string.ethernet_data_template;
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, subscriptionId);
} }
} }
@@ -198,8 +203,8 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc
DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference; DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference;
final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId);
if (subInfo == null) { if (mDataUsageController == null) {
mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); updateConfiguration(mContext, mSubId, subInfo);
} }
final DataUsageController.DataUsageInfo info = final DataUsageController.DataUsageInfo info =

View File

@@ -129,6 +129,7 @@ public class MobileNetworkSettings extends RestrictedDashboardFragment {
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);
use(DataUsageSummaryPreferenceController.class).init(mSubId);
use(CallsDefaultSubscriptionController.class).init(getLifecycle()); use(CallsDefaultSubscriptionController.class).init(getLifecycle());
use(SmsDefaultSubscriptionController.class).init(getLifecycle()); use(SmsDefaultSubscriptionController.class).init(getLifecycle());
use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId); use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);