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:
@@ -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(
|
||||||
|
Reference in New Issue
Block a user