summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-11-16 09:23:42 -0800
committerSunny Goyal <sunnygoyal@google.com>2016-11-30 05:47:57 +0530
commit2bcbe13c642efa4c94df570441c700b7aa8e353d (patch)
tree42528a9bf5d9282314cdae2092ce8982c73ad6db /src/com/android/launcher3/model/AddWorkspaceItemsTask.java
parent6f59cff0d66db55913e62f9f9452be5828970672 (diff)
downloadpackages_apps_Trebuchet-2bcbe13c642efa4c94df570441c700b7aa8e353d.tar.gz
packages_apps_Trebuchet-2bcbe13c642efa4c94df570441c700b7aa8e353d.tar.bz2
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/AddWorkspaceItemsTask.java')
-rw-r--r--src/com/android/launcher3/model/AddWorkspaceItemsTask.java16
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);
}
-
}