diff options
author | Bonian Chen <bonianchen@google.com> | 2020-05-04 11:54:19 +0800 |
---|---|---|
committer | Bonian Chen <bonianchen@google.com> | 2020-05-04 11:57:44 +0800 |
commit | 3d62032fedde325cbbbf06b018f9b2975c3f4bc8 (patch) | |
tree | dff96c52d00b13c72b9b711f22e97d12dcdc67d2 /src/com/android/settings/network | |
parent | 37c795af3a1157fb5cd244d1dd9474983304b025 (diff) | |
download | packages_apps_Settings-3d62032fedde325cbbbf06b018f9b2975c3f4bc8.tar.gz packages_apps_Settings-3d62032fedde325cbbbf06b018f9b2975c3f4bc8.tar.bz2 packages_apps_Settings-3d62032fedde325cbbbf06b018f9b2975c3f4bc8.zip |
[Settings] Query historical data in background
Move the query of historical data into background thread to avoid from
blocking other query operation in UI thread,
Bug: 141833767
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsagePreferenceControllerTest
Change-Id: I61e414d70136a0025ddd7373a4f34a99acb89510
Diffstat (limited to 'src/com/android/settings/network')
-rw-r--r-- | src/com/android/settings/network/telephony/DataUsagePreferenceController.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java index 035a8c1673..08524d67f8 100644 --- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java +++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java @@ -45,6 +45,7 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro private Future<NetworkTemplate> mTemplateFuture; private AtomicReference<NetworkTemplate> mTemplate; + private Future<Long> mHistoricalUsageLevel; public DataUsagePreferenceController(Context context, String key) { super(context, key); @@ -127,11 +128,17 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro final DataUsageController controller = new DataUsageController(context); controller.setSubscriptionId(subId); + mHistoricalUsageLevel = ThreadUtils.postOnBackgroundThread(() -> + controller.getHistoricalUsageLevel(getNetworkTemplate())); + final DataUsageController.DataUsageInfo usageInfo = getDataUsageInfo(controller); long usageLevel = usageInfo.usageLevel; if (usageLevel <= 0L) { - usageLevel = controller.getHistoricalUsageLevel(getNetworkTemplate()); + try { + usageLevel = mHistoricalUsageLevel.get(); + } catch (Exception exception) { + } } if (usageLevel <= 0L) { return null; |