summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/network
diff options
context:
space:
mode:
authorBonian Chen <bonianchen@google.com>2020-05-04 11:54:19 +0800
committerBonian Chen <bonianchen@google.com>2020-05-04 11:57:44 +0800
commit3d62032fedde325cbbbf06b018f9b2975c3f4bc8 (patch)
treedff96c52d00b13c72b9b711f22e97d12dcdc67d2 /src/com/android/settings/network
parent37c795af3a1157fb5cd244d1dd9474983304b025 (diff)
downloadpackages_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.java9
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;