From 4e5595050f0cf4644a8ee4683044c45c9d16d5e2 Mon Sep 17 00:00:00 2001 From: Garvita Jain Date: Tue, 18 Feb 2025 11:34:24 +0000 Subject: [PATCH] L10n fix for IW locale in storage_summary string storage_summary is passed as a single string of format "32 GB". Spliting the phrase to allow TC to remove whitespace in case of iw translations. Old Translation : New Translation: Bug: 387197875 Test: manual Flag: EXEMPT bugfix Change-Id: I91abf58df472650a6278b08e4daa5d32e7f90da9 --- res/values/strings.xml | 2 +- .../deviceinfo/TopLevelStoragePreferenceController.java | 5 +++-- .../homepage/contextualcards/slices/LowStorageSlice.java | 6 ++++-- .../deviceinfo/TopLevelStoragePreferenceControllerTest.java | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index a8963b2eecb..460c032ed1f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10798,7 +10798,7 @@ %1$d apps installed - %1$s used - %2$s free + %1$s used - %2$s %3$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..785d84a0818 100644 --- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java +++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java @@ -92,9 +92,10 @@ public class TopLevelStoragePreferenceController extends BasePreferenceControlle private String getSummary(long usedBytes, long totalBytes) { NumberFormat percentageFormat = NumberFormat.getPercentInstance(); - + final String[] freeSpace = + Formatter.formatFileSize(mContext, totalBytes - usedBytes).split(" "); return mContext.getString(R.string.storage_summary, totalBytes == 0L ? "0" : percentageFormat.format(((double) usedBytes) / totalBytes), - Formatter.formatFileSize(mContext, totalBytes - usedBytes)); + freeSpace[0], freeSpace[1]); } } diff --git a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java index 22e34317702..121bd82dfb1 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java @@ -64,7 +64,9 @@ public class LowStorageSlice implements CustomSliceable { // Generate Low storage Slice. final String percentageString = NumberFormat.getPercentInstance().format(usedPercentage); - final String freeSizeString = Formatter.formatFileSize(mContext, info.freeBytes); + final String[] freeSizeString = + Formatter.formatFileSize(mContext, info.freeBytes).split(" "); + final ListBuilder listBuilder = new ListBuilder(mContext, CustomSliceRegistry.LOW_STORAGE_SLICE_URI, ListBuilder.INFINITY).setAccentColor( Utils.getColorAccentDefaultColor(mContext)); @@ -74,7 +76,7 @@ public class LowStorageSlice implements CustomSliceable { // 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, - percentageString, freeSizeString); + percentageString, freeSizeString[0], freeSizeString[1]); return listBuilder .addRow(buildRowBuilder(titleStorage, summaryStorage, icon)) diff --git a/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java index 6318c9c6914..300d0288a8f 100644 --- a/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java @@ -86,7 +86,7 @@ public class TopLevelStoragePreferenceControllerTest { when(mController.getStorageManagerVolumeProvider()) .thenReturn(mStorageManagerVolumeProvider); final String percentage = NumberFormat.getPercentInstance().format(1); - final String freeSpace = Formatter.formatFileSize(mContext, 0); + final String[] freeSpace = Formatter.formatFileSize(mContext, 0).split(" "); final Preference preference = new Preference(mContext); // Wait for asynchronous thread to finish, otherwise test will flake. @@ -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_summary", percentage, freeSpace[0], freeSpace[1])); } }