Moving ShortcutInfo creation in InstallShortcutReceiver to background thread

> Creating shortcut info requires iconCache access

Bug: 21325319
Change-Id: I3317d8b6824aa05b836f3ed3626f169d4d34f783
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index c70a475..3daa2c3 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -84,6 +84,7 @@
 import com.android.launcher3.util.MultiHashMap;
 import com.android.launcher3.util.PackageManagerHelper;
 import com.android.launcher3.util.Preconditions;
+import com.android.launcher3.util.Provider;
 import com.android.launcher3.util.Thunk;
 import com.android.launcher3.util.ViewOnDrawExecutor;
 
@@ -261,9 +262,16 @@
     /**
      * Adds the provided items to the workspace.
      */
+    public void addAndBindAddedWorkspaceItems(List<ItemInfo> workspaceApps) {
+        addAndBindAddedWorkspaceItems(Provider.of(workspaceApps));
+    }
+
+    /**
+     * Adds the provided items to the workspace.
+     */
     public void addAndBindAddedWorkspaceItems(
-            final ArrayList<? extends ItemInfo> workspaceApps) {
-        enqueueModelUpdateTask(new AddWorkspaceItemsTask(workspaceApps));
+            Provider<List<ItemInfo>> appsProvider) {
+        enqueueModelUpdateTask(new AddWorkspaceItemsTask(appsProvider));
     }
 
     /**