Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26323770 authored by Yanting Yang's avatar Yanting Yang
Browse files

Speed up the cache building of app info data

Trigger the background thread to cache the app icon and label
description. It could reduce data loading times in UI thread to avoid
the scrolling janky.

Test: manual and robotests
Fixes: 156527207
Change-Id: If171a450b51c7fd8c4ae19d8d149c944a17cf0e9
parent 829ac140
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import androidx.lifecycle.OnLifecycleEvent;
import com.android.internal.R;
import com.android.internal.util.ArrayUtils;
import com.android.settingslib.Utils;
import com.android.settingslib.utils.ThreadUtils;

import java.io.File;
import java.io.IOException;
@@ -1588,6 +1589,15 @@ public class ApplicationsState {
            this.size = SIZE_UNKNOWN;
            this.sizeStale = true;
            ensureLabel(context);
            // Speed up the cache of the icon and label description if they haven't been created.
            ThreadUtils.postOnBackgroundThread(() -> {
                if (this.icon == null) {
                    this.ensureIconLocked(context);
                }
                if (this.labelDescription == null) {
                    this.ensureLabelDescriptionLocked(context);
                }
            });
        }

        public void ensureLabel(Context context) {