Merge "Fix b/261390301: NullPointerException at BatteryChartPreferenceController.addAllPreferences()"
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index 707c5b2..c2eab57 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -319,7 +319,8 @@
         }
 
 
-        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 @@
             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 @@
             animateBatteryHourlyChartView(/*visible=*/ true);
             final BatteryChartViewModel hourlyViewModel =
                     mHourlyViewModels.get(mDailyChartIndex);
+            if (mHourlyChartIndex >= hourlyViewModel.size()) {
+                mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
+            }
             hourlyViewModel.setSelectedIndex(mHourlyChartIndex);
             mHourlyChartView.setViewModel(hourlyViewModel);
         }