diff options
-rw-r--r-- | src/com/android/launcher2/DeleteZone.java | 9 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 7 |
3 files changed, 15 insertions, 9 deletions
diff --git a/src/com/android/launcher2/DeleteZone.java b/src/com/android/launcher2/DeleteZone.java index 7e4293f44..12713e5cd 100644 --- a/src/com/android/launcher2/DeleteZone.java +++ b/src/com/android/launcher2/DeleteZone.java @@ -120,7 +120,14 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. final LauncherAppWidgetInfo launcherAppWidgetInfo = (LauncherAppWidgetInfo) item; final LauncherAppWidgetHost appWidgetHost = mLauncher.getAppWidgetHost(); if (appWidgetHost != null) { - appWidgetHost.deleteAppWidgetId(launcherAppWidgetInfo.appWidgetId); + final int appWidgetId = launcherAppWidgetInfo.appWidgetId; + // Deleting an app widget ID is a void call but writes to disk before returning + // to the caller... + new Thread("deleteAppWidgetId") { + public void run() { + appWidgetHost.deleteAppWidgetId(launcherAppWidgetInfo.appWidgetId); + } + }.start(); } } diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index 1e363d1ef..4ad31b1ad 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -341,8 +341,12 @@ public class LauncherModel extends BroadcastReceiver { */ static void deleteItemFromDatabase(Context context, ItemInfo item) { final ContentResolver cr = context.getContentResolver(); - - cr.delete(LauncherSettings.Favorites.getContentUri(item.id, false), null, null); + final Uri uriToDelete = LauncherSettings.Favorites.getContentUri(item.id, false); + new Thread("deleteItemFromDatabase") { + public void run() { + cr.delete(uriToDelete, null, null); + } + }.start(); } /** diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 0eaa91342..0568d8941 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -1317,7 +1317,6 @@ public class Workspace extends SmoothPagedView if (Intent.ACTION_MAIN.equals(intent.getAction()) && name != null) { for (String packageName: packageNames) { if (packageName.equals(name.getPackageName())) { - // TODO: This should probably be done on a worker thread LauncherModel.deleteItemFromDatabase(mLauncher, info); childrenToRemove.add(view); } @@ -1339,9 +1338,7 @@ public class Workspace extends SmoothPagedView for (String packageName: packageNames) { if (packageName.equals(name.getPackageName())) { toRemove.add(appInfo); - // TODO: This should probably be done on a worker thread - LauncherModel.deleteItemFromDatabase( - mLauncher, appInfo); + LauncherModel.deleteItemFromDatabase(mLauncher, appInfo); removedFromFolder = true; } } @@ -1363,7 +1360,6 @@ public class Workspace extends SmoothPagedView if (providerInfo != null) { for (String packageName: packageNames) { if (packageName.equals(providerInfo.packageName)) { - // TODO: This should probably be done on a worker thread LauncherModel.deleteItemFromDatabase(mLauncher, info); childrenToRemove.add(view); } @@ -1376,7 +1372,6 @@ public class Workspace extends SmoothPagedView if (provider != null) { for (String packageName: packageNames) { if (packageName.equals(provider.provider.getPackageName())) { - // TODO: This should probably be done on a worker thread LauncherModel.deleteItemFromDatabase(mLauncher, info); childrenToRemove.add(view); } |