From 5316bb71fe9477ce385c846b92d4df2c7afd7b3b Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Tue, 9 Aug 2022 14:38:45 +0800 Subject: [PATCH] Fix b/241885070: Unexpected texts moving when going back to battery usage page This bug is because two charts visibility were set to visible everytime when entering the battery usage page. Only after loading the data and refresh the UI, one of them could be hidden. screen record after fix: https://drive.google.com/file/d/1zpynm8UX3XXunlD-WE1eyv6yenrVhAH5/view?usp=sharing&resourcekey=0-y79NYHcm8lgiNRbgy8SEfQ Test: manual Bug: 236101166 Bug: 241885070 Change-Id: I9c1dbf79a95dad2c3dece71af6d52f546d8a5808 --- .../BatteryChartPreferenceControllerV2.java | 12 +++++++++--- .../fuelgauge/batteryusage/BatteryChartViewV2.java | 1 - 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java index b847f04d048..fe10a4742ec 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java @@ -273,7 +273,7 @@ public class BatteryChartPreferenceControllerV2 extends AbstractPreferenceContro mDailyTimestampFullTexts = null; mDailyViewModel = null; mHourlyViewModels = null; - addFooterPreferenceIfNeeded(false); + refreshUi(); return; } mDailyTimestampFullTexts = generateTimestampDayOfWeekTexts( @@ -338,14 +338,20 @@ public class BatteryChartPreferenceControllerV2 extends AbstractPreferenceContro @VisibleForTesting boolean refreshUi() { - if (mBatteryUsageMap == null || mDailyChartView == null || mHourlyChartView == null) { + if (mDailyChartView == null || mHourlyChartView == null) { + // Chart views are not initialized. return false; } - if (mDailyViewModel == null || mHourlyViewModels == null) { // Fail to get battery level data, show an empty hourly chart view. mDailyChartView.setVisibility(View.GONE); + mHourlyChartView.setVisibility(View.VISIBLE); mHourlyChartView.setViewModel(null); + addFooterPreferenceIfNeeded(false); + return false; + } + if (mBatteryUsageMap == null) { + // Battery usage data is not ready, wait for data ready to refresh UI. return false; } diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java index bbe1a8f6dcd..a8954788d72 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java @@ -158,7 +158,6 @@ public class BatteryChartViewV2 extends AppCompatImageView implements View.OnCli } else { mTextPaint = null; } - setVisibility(View.VISIBLE); requestLayout(); }