From 91dab36efdb6f7a2ab1948cfbbcc1de66b1a50d8 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Mon, 17 Mar 2025 17:58:50 +0800 Subject: [PATCH] Change storage_summary string id to fix crash ag/32322018 reverts storage_summary string for default locale but other languages might be still using stale translations and cause MissingFormatArgumentException crash. As a quick fix, change the string id to make it as a new string. The side-effect is that storage summary is not localized for a while. Fix: 404116634 Flag: EXEMPT bugfix Test: Verified with zh_TW locale Change-Id: I5d7d6be2c1eb524622f1013120cb44403b1f6f29 --- res/values/strings.xml | 2 +- .../deviceinfo/TopLevelStoragePreferenceController.java | 2 +- .../homepage/contextualcards/slices/LowStorageSlice.java | 2 +- .../deviceinfo/TopLevelStoragePreferenceControllerTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 28e3ba64bc6..2cfbf482e3c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10914,7 +10914,7 @@ Data usage charges may apply. %1$d apps installed - %1$s used - %2$s free + %1$s used - %2$s free Dark theme, font size, brightness diff --git a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java index 1955f36059a..05e4f25ee78 100644 --- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java +++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java @@ -93,7 +93,7 @@ public class TopLevelStoragePreferenceController extends BasePreferenceControlle private String getSummary(long usedBytes, long totalBytes) { NumberFormat percentageFormat = NumberFormat.getPercentInstance(); - return mContext.getString(R.string.storage_summary, + return mContext.getString(R.string.storage_toplevel_summary, totalBytes == 0L ? "0" : percentageFormat.format(((double) usedBytes) / totalBytes), Formatter.formatFileSize(mContext, totalBytes - usedBytes)); } diff --git a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java index 22e34317702..2a731bf50b7 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java @@ -73,7 +73,7 @@ public class LowStorageSlice implements CustomSliceable { if (usedPercentage < LOW_STORAGE_THRESHOLD) { // For clients that ignore error checking, a generic storage slice will be given. final CharSequence titleStorage = mContext.getText(R.string.storage_settings); - final String summaryStorage = mContext.getString(R.string.storage_summary, + final String summaryStorage = mContext.getString(R.string.storage_toplevel_summary, percentageString, freeSizeString); return listBuilder diff --git a/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java index 6318c9c6914..c5c69af998f 100644 --- a/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java @@ -103,6 +103,6 @@ public class TopLevelStoragePreferenceControllerTest { // the background thread. TimeUnit.SECONDS.sleep(5); assertThat(preference.getSummary()).isEqualTo(ResourcesUtils.getResourcesString( - mContext, "storage_summary", percentage, freeSpace)); + mContext, "storage_toplevel_summary", percentage, freeSpace)); } }