From 457aaffa502d5850d4a6c5e5a1fba36f4f6b3c8f Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Fri, 26 Aug 2022 13:46:13 +0800 Subject: [PATCH] Support showing battery level chart first immediately after the battery level data is ready. When the battery level chart is shown but app usage data is not ready, the battery chart is still clickable, but the app list won't show. Once the app usage data is ready, the app usage list of the latest selected period will show. Please see the following screen record of forcing loading app usage data very slow. In the real case, the app usage loading is not that slow. https://drive.google.com/file/d/196rlzwSa52xrQFRfF2gdHJJPZn-uecZF/view?usp=sharing&resourcekey=0-mGggQGG7IMd5-bSAG7l_LA Bug: 243887839 Fix: 243887839 Test: manual Change-Id: I170eb4afb46b1d0040b7971460b1b37dde5d1362 (cherry picked from commit adc36d085b6c239fcd30a040073658e3e01507ad) --- .../batteryusage/BatteryChartPreferenceController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index f3fec8e1973..6d2c1a1232d 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -369,10 +369,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll addFooterPreferenceIfNeeded(false); return false; } - if (mBatteryUsageMap == null) { - // Battery usage data is not ready, wait for data ready to refresh UI. - return false; - } if (isBatteryLevelDataInOneDay()) { // Only 1 day data, hide the daily chart view. @@ -394,6 +390,10 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mHourlyChartView.setViewModel(hourlyViewModel); } + if (mBatteryUsageMap == null) { + // Battery usage data is not ready, wait for data ready to refresh UI. + return false; + } mHandler.post(() -> { final long start = System.currentTimeMillis(); removeAndCacheAllPrefs();