mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 16:26:47 +00:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user