From 260ad5c5233d206e71c6bcc6e66f9117fb104aa5 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 27 Apr 2020 19:35:43 +0800 Subject: [PATCH] [Settings] Align data usage calculation Align the calculation of data usage between DataUsageSummaryPreferenceController and DataUsagePrefereneController. Bug: 143996139 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest Change-Id: I73de79b5cc298bf949827eda0a8bb0274089c016 --- .../DataUsageSummaryPreferenceController.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index 239ad2178e8..2a91c482057 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -210,6 +210,11 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(mDefaultTemplate); + long usageLevel = info.usageLevel; + if (usageLevel <= 0L) { + usageLevel = mDataUsageController.getHistoricalUsageLevel(mDefaultTemplate); + } + if (subInfo != null) { mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate)); summaryPreference.setWifiMode(/* isWifiMode */ false, @@ -218,7 +223,7 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */ info.period, /* isSingleWifi */ false); summaryPreference.setLimitInfo(null); - summaryPreference.setUsageNumbers(info.usageLevel, + summaryPreference.setUsageNumbers(usageLevel, /* dataPlanSize */ -1L, /* hasMobileData */ true); summaryPreference.setChartEnabled(false); @@ -231,6 +236,11 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc } refreshDataplanInfo(info, subInfo); + if ((mDataplanUse <= 0L) && (mSnapshotTime < 0)) { + Log.d(TAG, "Display data usage from history"); + mDataplanUse = usageLevel; + mSnapshotTime = -1L; + } if (info.warningLevel > 0 && info.limitLevel > 0) { summaryPreference.setLimitInfo(TextUtils.expandTemplate(