Update storage usage progress bar summary text

Shows a simplified version, e.g., 24GB / 32% used of 64 GB

Bug: 174964885
Test: manual visual
Change-Id: I39cdc5efa1d562c339525fa23456c71b726b9e1a
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 72f57f4..b2a5f1a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -11814,9 +11814,9 @@
     <string name="storage_percent_full">used</string>
 
     <!-- Summary of a single storage volume used space. [CHAR LIMIT=24] -->
-    <string name="storage_usage_summary"><xliff:g id="number" example="128">%1$s</xliff:g> <xliff:g id="unit" example="KB">%2$s</xliff:g> used</string>
+    <string name="storage_usage_summary"><xliff:g id="number" example="128">%1$s</xliff:g> <xliff:g id="unit" example="KB">%2$s</xliff:g></string>
     <!-- Summary of a single storage volume total space. [CHAR LIMIT=24] -->
-    <string name="storage_total_summary">Total <xliff:g id="number" example="128">%1$s</xliff:g> <xliff:g id="unit" example="KB">%2$s</xliff:g></string>
+    <string name="storage_total_summary"><xliff:g id="percentage" example="54%">%1$s</xliff:g> used of <xliff:g id="number" example="128">%2$s</xliff:g> <xliff:g id="unit" example="KB">%3$s</xliff:g></string>
 
     <!-- Label for button allow user to remove the instant app from the device. -->
     <string name="clear_instant_app_data">Clear app</string>
diff --git a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
index a00b25a..ec51db6 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
@@ -26,6 +26,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.UsageProgressBarPreference;
@@ -101,24 +102,29 @@
             if (mUsageProgressBarPreference == null) {
                 return;
             }
-            ThreadUtils.postOnMainThread(() ->
-                    updateState(mUsageProgressBarPreference)
-            );
+            ThreadUtils.postOnMainThread(() -> updateState(mUsageProgressBarPreference));
         });
     }
 
     @Override
     public void updateState(Preference preference) {
+        final Formatter.BytesResult usedResult = getBytesResult(mUsedBytes);
         mUsageProgressBarPreference.setUsageSummary(
-                getStorageSummary(R.string.storage_usage_summary, mUsedBytes));
+                mContext.getString(R.string.storage_usage_summary,
+                usedResult.value, usedResult.units));
+
+        final String percentageString = mTotalBytes == 0L
+                ? Utils.formatPercentage(0)
+                : Utils.formatPercentage((mUsedBytes * 100) / mTotalBytes, true /* round */);
+        final Formatter.BytesResult totalResult = getBytesResult(mTotalBytes);
         mUsageProgressBarPreference.setTotalSummary(
-                getStorageSummary(R.string.storage_total_summary, mTotalBytes));
+                mContext.getString(R.string.storage_total_summary, percentageString,
+                totalResult.value, totalResult.units));
+
         mUsageProgressBarPreference.setPercent(mUsedBytes, mTotalBytes);
     }
 
-    private String getStorageSummary(int resId, long bytes) {
-        final Formatter.BytesResult result = Formatter.formatBytes(mContext.getResources(),
-                bytes, 0);
-        return mContext.getString(resId, result.value, result.units);
+    private Formatter.BytesResult getBytesResult(long bytes) {
+        return Formatter.formatBytes(mContext.getResources(), bytes, Formatter.FLAG_SHORTER);
     }
 }