From b42a5099142e6794231c273a0fef7dd757ffe06e Mon Sep 17 00:00:00 2001 From: ykhung Date: Wed, 17 May 2023 11:31:44 +0800 Subject: [PATCH] Add protection for the BadParcelableException Test: presubmit Bug: 282943714 Change-Id: I9f2bffbbbd3df4a31887ecc869d3c046b25755e0 --- .../BatteryTipPreferenceController.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java index 214b01aa6c3..b041003a337 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java @@ -18,7 +18,9 @@ package com.android.settings.fuelgauge.batterytip; import android.annotation.Nullable; import android.content.Context; +import android.os.BadParcelableException; import android.os.Bundle; +import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; @@ -142,14 +144,26 @@ public class BatteryTipPreferenceController extends BasePreferenceController { } public void restoreInstanceState(Bundle bundle) { - if (bundle != null) { + if (bundle == null) { + return; + } + try { List batteryTips = bundle.getParcelableArrayList(KEY_BATTERY_TIPS); updateBatteryTips(batteryTips); + } catch (BadParcelableException e) { + Log.e(TAG, "failed to invoke restoreInstanceState()", e); } } - public void saveInstanceState(Bundle outState) { - outState.putParcelableList(KEY_BATTERY_TIPS, mBatteryTips); + public void saveInstanceState(Bundle bundle) { + if (bundle == null) { + return; + } + try { + bundle.putParcelableList(KEY_BATTERY_TIPS, mBatteryTips); + } catch (BadParcelableException e) { + Log.e(TAG, "failed to invoke saveInstanceState()", e); + } } public boolean needUpdate() {