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
This commit is contained in:
Yanting Yang
2020-06-03 13:59:32 +08:00
parent 829ac140f8
commit 2632377083

View File

@@ -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) {