From 2c7ca9f2e7293afd31de3a135eb54d4c7bd96f1a Mon Sep 17 00:00:00 2001 From: mxyyiyi Date: Tue, 16 Jan 2024 15:06:53 +0800 Subject: [PATCH] Fix crash while dumpping database. Bug: 319905857 Test: manual Change-Id: If531f1d7416b21d481fc19834e7538567dec7c0c --- .../fuelgauge/batteryusage/DatabaseUtils.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java index 8a1cd76f969..a41e9bd0388 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java @@ -767,7 +767,8 @@ public final class DatabaseUtils { BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA); writeString(context, writer, "LastLoadFullChargeTime", KEY_LAST_LOAD_FULL_CHARGE_TIME); writeString(context, writer, "LastUploadFullChargeTime", KEY_LAST_UPLOAD_FULL_CHARGE_TIME); - writeString(context, writer, "DismissedPowerAnomalyKeys", KEY_DISMISSED_POWER_ANOMALY_KEYS); + writeStringSet( + context, writer, "DismissedPowerAnomalyKeys", KEY_DISMISSED_POWER_ANOMALY_KEYS); } static SharedPreferences getSharedPreferences(Context context) { @@ -921,9 +922,22 @@ public final class DatabaseUtils { private static void writeString( Context context, PrintWriter writer, String prefix, String key) { final SharedPreferences sharedPreferences = getSharedPreferences(context); - if (sharedPreferences != null) { - final String content = sharedPreferences.getString(key, ""); - writer.println(String.format("\t\t%s: %s", prefix, content)); + if (sharedPreferences == null) { + return; + } + final String content = sharedPreferences.getString(key, ""); + writer.println(String.format("\t\t%s: %s", prefix, content)); + } + + private static void writeStringSet( + Context context, PrintWriter writer, String prefix, String key) { + final SharedPreferences sharedPreferences = getSharedPreferences(context); + if (sharedPreferences == null) { + return; + } + final Set results = sharedPreferences.getStringSet(key, new ArraySet<>()); + if (results != null) { + writer.println(String.format("\t\t%s: %s", prefix, results.toString())); } }