From 3a99f7c370bbc54d6912e34ee985ad2834ac66be Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Thu, 26 May 2022 17:36:45 +0800 Subject: [PATCH] Fix flicker for AppDataUsagePreference AppDataUsagePreference's title is sometime async loading, which cause preference height change, which lead to page flicker. Set a title placeholder before async loading to reduce flicker. Fix: 187019210 Test: manual visual test Change-Id: I26df832ab03a04641fd3d6eb678903ff3fe8820a --- .../android/settings/datausage/AppDataUsagePreference.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/settings/datausage/AppDataUsagePreference.java b/src/com/android/settings/datausage/AppDataUsagePreference.java index 3025a49bb6c..28058198d1a 100644 --- a/src/com/android/settings/datausage/AppDataUsagePreference.java +++ b/src/com/android/settings/datausage/AppDataUsagePreference.java @@ -20,6 +20,7 @@ import android.widget.ProgressBar; import androidx.preference.PreferenceViewHolder; +import com.android.settings.R; import com.android.settingslib.AppItem; import com.android.settingslib.net.UidDetail; import com.android.settingslib.net.UidDetailProvider; @@ -49,6 +50,9 @@ public class AppDataUsagePreference extends AppPreference { if (mDetail != null) { setAppInfo(); } else { + // Set a placeholder title before starting to fetch real title, this is necessary + // to avoid preference height change. + setTitle(R.string.summary_placeholder); ThreadUtils.postOnBackgroundThread(() -> { mDetail = provider.getUidDetail(mItem.key, true /* blocking */); ThreadUtils.postOnMainThread(() -> setAppInfo());