Fix crash in Monkey test.

When battery page is launched, BatteryTipLoader will start running.
If we rotate the screen before loader is finished, it will store null
to Bundle and will crash when restoring from that Bundle.

In this cl, we add null pointer check for tip list to avoid the crash.

Also remove a TODO since it is obsolete.

Change-Id: Ic59bc20c633f3a7467f7b5e95da062160bcb4e93
Fixes: 77534165
Test: RunSettingsRoboTests
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<>();