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);
}
}