mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Moving ShortcutInfo creation in InstallShortcutReceiver to background thread
> Creating shortcut info requires iconCache access Bug: 21325319 Change-Id: I3317d8b6824aa05b836f3ed3626f169d4d34f783
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user