Merge "Fix Storage Settings progress bar summary jank problem" into sc-dev am: 3a77c9c9e4

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14514140

Change-Id: Ic700afae3c43260fa38f7bff0bf62cb331ab34c5
This commit is contained in:
Arc Wang
2021-05-13 05:54:05 +00:00
committed by Automerger Merge Worker

View File

@@ -47,6 +47,7 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
long mTotalBytes; long mTotalBytes;
private UsageProgressBarPreference mUsageProgressBarPreference; private UsageProgressBarPreference mUsageProgressBarPreference;
private StorageEntry mStorageEntry; private StorageEntry mStorageEntry;
boolean mIsUpdateStateFromSelectedStorageEntry;
public StorageUsageProgressBarPreferenceController(Context context, String key) { public StorageUsageProgressBarPreferenceController(Context context, String key) {
super(context, key); super(context, key);
@@ -68,7 +69,6 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
mUsageProgressBarPreference = screen.findPreference(getPreferenceKey()); mUsageProgressBarPreference = screen.findPreference(getPreferenceKey());
getStorageStatsAndUpdateUi();
} }
private void getStorageStatsAndUpdateUi() { private void getStorageStatsAndUpdateUi() {
@@ -101,12 +101,18 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
if (mUsageProgressBarPreference == null) { if (mUsageProgressBarPreference == null) {
return; return;
} }
mIsUpdateStateFromSelectedStorageEntry = true;
ThreadUtils.postOnMainThread(() -> updateState(mUsageProgressBarPreference)); ThreadUtils.postOnMainThread(() -> updateState(mUsageProgressBarPreference));
}); });
} }
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
if (!mIsUpdateStateFromSelectedStorageEntry) {
// Returns here to avoid jank by unnecessary UI update.
return;
}
mIsUpdateStateFromSelectedStorageEntry = false;
mUsageProgressBarPreference.setUsageSummary( mUsageProgressBarPreference.setUsageSummary(
getStorageSummary(R.string.storage_usage_summary, mUsedBytes)); getStorageSummary(R.string.storage_usage_summary, mUsedBytes));
mUsageProgressBarPreference.setTotalSummary( mUsageProgressBarPreference.setTotalSummary(