Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72a25f16 authored by ykhung's avatar ykhung Committed by YUKAI HUNG
Browse files

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
parent 5a796688
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import android.content.Context;
import android.os.BatteryUsageStats;
import android.os.UidBatteryConsumer;
import android.util.Log;

import androidx.annotation.VisibleForTesting;

@@ -41,6 +42,8 @@ import java.util.concurrent.TimeUnit;
 * {@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 @@ public class HighUsageDetector implements BatteryTipDetector {

    @VisibleForTesting
    void parseBatteryData() {
        try {
            mBatteryInfo.parseBatteryHistory(mDataParser);
        } catch (IllegalStateException e) {
            Log.e(TAG, "parseBatteryData() failed", e);
        }
    }
}