diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-11-16 09:23:42 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-11-30 05:47:57 +0530 |
commit | 2bcbe13c642efa4c94df570441c700b7aa8e353d (patch) | |
tree | 42528a9bf5d9282314cdae2092ce8982c73ad6db /src/com/android/launcher3/model | |
parent | 6f59cff0d66db55913e62f9f9452be5828970672 (diff) | |
download | android_packages_apps_Trebuchet-2bcbe13c642efa4c94df570441c700b7aa8e353d.tar.gz android_packages_apps_Trebuchet-2bcbe13c642efa4c94df570441c700b7aa8e353d.tar.bz2 android_packages_apps_Trebuchet-2bcbe13c642efa4c94df570441c700b7aa8e353d.zip |
Moving ShortcutInfo creation in InstallShortcutReceiver to background thread
> Creating shortcut info requires iconCache access
Bug: 21325319
Change-Id: I3317d8b6824aa05b836f3ed3626f169d4d34f783
Diffstat (limited to 'src/com/android/launcher3/model')
-rw-r--r-- | src/com/android/launcher3/model/AddWorkspaceItemsTask.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java index 986e163e6..97335cb25 100644 --- a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java +++ b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java @@ -33,26 +33,29 @@ import com.android.launcher3.LauncherSettings; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.util.GridOccupancy; +import com.android.launcher3.util.Provider; import java.util.ArrayList; +import java.util.List; /** * Task to add auto-created workspace items. */ public class AddWorkspaceItemsTask extends ExtendedModelTask { - private final ArrayList<? extends ItemInfo> mWorkspaceApps; + private final Provider<List<ItemInfo>> mAppsProvider; /** - * @param workspaceApps items to add on the workspace + * @param appsProvider items to add on the workspace */ - public AddWorkspaceItemsTask(ArrayList<? extends ItemInfo> workspaceApps) { - mWorkspaceApps = workspaceApps; + public AddWorkspaceItemsTask(Provider<List<ItemInfo>> appsProvider) { + mAppsProvider = appsProvider; } @Override public void execute(LauncherAppState app, BgDataModel dataModel, AllAppsList apps) { - if (mWorkspaceApps.isEmpty()) { + List<ItemInfo> workspaceApps = mAppsProvider.get(); + if (workspaceApps.isEmpty()) { return; } Context context = app.getContext(); @@ -65,7 +68,7 @@ public class AddWorkspaceItemsTask extends ExtendedModelTask { // called. ArrayList<Long> workspaceScreens = LauncherModel.loadWorkspaceScreensDb(context); synchronized(dataModel) { - for (ItemInfo item : mWorkspaceApps) { + for (ItemInfo item : workspaceApps) { if (item instanceof ShortcutInfo) { // Short-circuit this logic if the icon exists somewhere on the workspace if (shortcutExists(dataModel, item.getIntent(), item.user)) { @@ -258,5 +261,4 @@ public class AddWorkspaceItemsTask extends ExtendedModelTask { } return occupied.findVacantCell(xy, spanX, spanY); } - } |