Merge "Fix crash in Monkey test." into pi-dev
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index 69fc0f1..249bf9b 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -91,6 +91,9 @@
}
public void updateBatteryTips(List<BatteryTip> batteryTips) {
+ if (batteryTips == null) {
+ return;
+ }
if (mBatteryTips == null) {
mBatteryTips = batteryTips;
} else {
@@ -100,7 +103,6 @@
}
}
- //TODO(b/70570352): try to reuse the existing preference rather than remove and add.
mPreferenceGroup.removeAll();
for (int i = 0, size = batteryTips.size(); i < size; i++) {
final BatteryTip batteryTip = mBatteryTips.get(i);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
index 8a189e2..90d00fc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
@@ -150,6 +150,19 @@
}
@Test
+ public void testRestoreFromNull_shouldNotCrash() {
+ final Bundle bundle = new Bundle();
+ // Battery tip list is null at this time
+ mBatteryTipPreferenceController.saveInstanceState(bundle);
+
+ final BatteryTipPreferenceController controller = new BatteryTipPreferenceController(
+ mContext, KEY_PREF, mSettingsActivity, mFragment, mBatteryTipListener);
+
+ // Should not crash
+ controller.restoreInstanceState(bundle);
+ }
+
+ @Test
public void testHandlePreferenceTreeClick_noDialog_invokeCallback() {
when(mBatteryTip.getType()).thenReturn(SMART_BATTERY_MANAGER);
List<BatteryTip> batteryTips = new ArrayList<>();