diff options
author | Winson <winsonc@google.com> | 2015-09-09 16:38:15 -0700 |
---|---|---|
committer | Winson <winsonc@google.com> | 2015-09-10 14:55:17 -0700 |
commit | c0b52fefbc11531d560359c093484099f9d1298e (patch) | |
tree | 0ac56dcb6819e6e314438d7bc535ef39dbbbfc99 /src/com/android/launcher3/DeleteDropTarget.java | |
parent | 01251b0dc4c302a8b9eb6ef6797c8e33eebab139 (diff) | |
download | android_packages_apps_Trebuchet-c0b52fefbc11531d560359c093484099f9d1298e.tar.gz android_packages_apps_Trebuchet-c0b52fefbc11531d560359c093484099f9d1298e.tar.bz2 android_packages_apps_Trebuchet-c0b52fefbc11531d560359c093484099f9d1298e.zip |
Refactoring to ensure item deletion always removes from the DB.
- Routing the various places where we call through to delete from
LauncherModel through Launcher, which will delegate the removal
of the icon from the workspace, and properly handle the removal
of all items and their contents from the db.
Bug: 23944119
Change-Id: I022fe2b3e79da16b5af87505c4362490b8422686
Diffstat (limited to 'src/com/android/launcher3/DeleteDropTarget.java')
-rw-r--r-- | src/com/android/launcher3/DeleteDropTarget.java | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java index 9c8659c29..163ffb6e7 100644 --- a/src/com/android/launcher3/DeleteDropTarget.java +++ b/src/com/android/launcher3/DeleteDropTarget.java @@ -70,40 +70,9 @@ public class DeleteDropTarget extends ButtonDropTarget { * @return true if the item was removed. */ public static boolean removeWorkspaceOrFolderItem(Launcher launcher, ItemInfo item, View view) { - if (item instanceof ShortcutInfo) { - LauncherModel.deleteItemFromDatabase(launcher, item); - } else if (item instanceof FolderInfo) { - FolderInfo folder = (FolderInfo) item; - launcher.removeFolder(folder); - LauncherModel.deleteFolderContentsFromDatabase(launcher, folder); - } else if (item instanceof LauncherAppWidgetInfo) { - final LauncherAppWidgetInfo widget = (LauncherAppWidgetInfo) item; - - // Remove the widget from the workspace - launcher.removeAppWidget(widget); - LauncherModel.deleteItemFromDatabase(launcher, widget); - - final LauncherAppWidgetHost appWidgetHost = launcher.getAppWidgetHost(); - - if (appWidgetHost != null && !widget.isCustomWidget() - && widget.isWidgetIdValid()) { - // Deleting an app widget ID is a void call but writes to disk before returning - // to the caller... - new AsyncTask<Void, Void, Void>() { - public Void doInBackground(Void ... args) { - appWidgetHost.deleteAppWidgetId(widget.appWidgetId); - return null; - } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - } else { - return false; - } - - if (view != null) { - launcher.getWorkspace().removeWorkspaceItem(view); - launcher.getWorkspace().stripEmptyScreens(); - } + // Remove the item from launcher and the db + launcher.removeItem(view, item, true /* deleteFromDb */); + launcher.getWorkspace().stripEmptyScreens(); return true; } |