Add try-catch to avoid IllegalStateException in the data parsing

if the BatteryStats service is crashed, we will provide the default instance for all modules in the battery settings, but it will encounter the IllegalStateException if we try to parse its history content (reference: ag/15926630)

Bug: 201729939
Test: make SettingsRoboTests
Change-Id: Ifebb48551e371e7c4e121969cb92cf95aa026812
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
index 4b3f2df..8126dcc 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.os.BatteryUsageStats;
 import android.os.UidBatteryConsumer;
+import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -41,6 +42,8 @@
  * {@link BatteryTipDetector} since it need the most up-to-date {@code visibleTips}
  */
 public class HighUsageDetector implements BatteryTipDetector {
+    private static final String TAG = "HighUsageDetector";
+
     private BatteryTipPolicy mPolicy;
     private BatteryUsageStats mBatteryUsageStats;
     private final BatteryInfo mBatteryInfo;
@@ -113,6 +116,10 @@
 
     @VisibleForTesting
     void parseBatteryData() {
-        mBatteryInfo.parseBatteryHistory(mDataParser);
+        try {
+            mBatteryInfo.parseBatteryHistory(mDataParser);
+        } catch (IllegalStateException e) {
+            Log.e(TAG, "parseBatteryData() failed", e);
+        }
     }
 }