From 76f19809c13c650e328c2f30033ff7a3b7312aeb Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Wed, 7 Dec 2022 16:20:07 +0800 Subject: [PATCH] Fix b/261390301: NullPointerException at BatteryChartPreferenceController.addAllPreferences() Bug: 261390301 Fix: 261390301 Test: manual Change-Id: I23a2f0e73c5840b87577e734a4760423e0d62516 --- .../batteryusage/BatteryChartPreferenceController.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index 707c5b2fa94..c2eab5749cd 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -319,7 +319,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll } - if (mOnBatteryUsageUpdatedListener != null) { + if (mOnBatteryUsageUpdatedListener != null && mBatteryUsageMap != null + && mBatteryUsageMap.get(mDailyChartIndex) != null) { final BatteryDiffData slotUsageData = mBatteryUsageMap.get(mDailyChartIndex).get(mHourlyChartIndex); mOnBatteryUsageUpdatedListener.onBatteryUsageUpdated( @@ -359,6 +360,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mDailyChartIndex = 0; } else { mDailyChartView.setVisibility(View.VISIBLE); + if (mDailyChartIndex >= mDailyViewModel.size()) { + mDailyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL; + } mDailyViewModel.setSelectedIndex(mDailyChartIndex); mDailyChartView.setViewModel(mDailyViewModel); } @@ -370,6 +374,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll animateBatteryHourlyChartView(/*visible=*/ true); final BatteryChartViewModel hourlyViewModel = mHourlyViewModels.get(mDailyChartIndex); + if (mHourlyChartIndex >= hourlyViewModel.size()) { + mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL; + } hourlyViewModel.setSelectedIndex(mHourlyChartIndex); mHourlyChartView.setViewModel(hourlyViewModel); }