Improve grid preview performance

After breaking down the time we spend in rendering preview under a different grid setting, I found out that we spend a huge amount of time loading the workspace. It takes a long time in non preview case (launcher workspace init), so to optimize we should try to cut down things that are not necessary for preview. Widget model loading (widget and shortcut updates) takes half of the time, and can be optimized with minimal risks / code changes.

Bug: 160662425
Test: Manual

Change-Id: I89029d0ddf6e2517077a0ba3fbbcfdcd60b268d9
This commit is contained in:
Tracy Zhou
2020-07-13 23:13:00 -07:00
parent 369501d8aa
commit b023873bc3
2 changed files with 42 additions and 12 deletions

View File

@@ -126,6 +126,8 @@ public class LoaderTask implements Runnable {
private final UserManagerState mUserManagerState = new UserManagerState();
protected Map<ComponentKey, AppWidgetProviderInfo> mWidgetProvidersMap;
private boolean mStopped;
public LoaderTask(LauncherAppState app, AllAppsList bgAllAppsList, BgDataModel dataModel,
@@ -342,8 +344,6 @@ public class LoaderTask implements Runnable {
contentResolver.query(contentUri, null, null, null, null), contentUri, mApp,
mUserManagerState);
Map<ComponentKey, AppWidgetProviderInfo> widgetProvidersMap = null;
try {
final int appWidgetIdIndex = c.getColumnIndexOrThrow(
LauncherSettings.Favorites.APPWIDGET_ID);
@@ -650,10 +650,11 @@ public class LoaderTask implements Runnable {
final boolean wasProviderReady = !c.hasRestoreFlag(
LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY);
if (widgetProvidersMap == null) {
widgetProvidersMap = WidgetManagerHelper.getAllProvidersMap(context);
if (mWidgetProvidersMap == null) {
mWidgetProvidersMap = WidgetManagerHelper.getAllProvidersMap(
context);
}
final AppWidgetProviderInfo provider = widgetProvidersMap.get(
final AppWidgetProviderInfo provider = mWidgetProvidersMap.get(
new ComponentKey(component, c.user));
final boolean isProviderReady = isValidProvider(provider);