private void completeDrop(DragObject d) {
    ItemInfo item = (ItemInfo) d.dragInfo;
    if (LauncherLog.DEBUG) {
      LauncherLog.d(
          DragController.TAG, "DeleteDropTarget completeDrop: item = " + item + ",d = " + d);
    }
    if (isAllAppsApplication(d.dragSource, item)) {
      // Uninstall the application if it is being dragged from AppsCustomize
      mLauncher.startApplicationUninstallActivity((ApplicationInfo) item);
    } else if (isWorkspaceOrFolderApplication(d)) {
      LauncherModel.deleteItemFromDatabase(mLauncher, item);
    } else if (isWorkspaceFolder(d)) {
      // Remove the folder from the workspace and delete the contents from launcher model
      FolderInfo folderInfo = (FolderInfo) item;
      mLauncher.removeFolder(folderInfo);
      LauncherModel.deleteFolderContentsFromDatabase(mLauncher, folderInfo);
    } else if (isWorkspaceOrFolderWidget(d)) {
      // Remove the widget from the workspace
      mLauncher.removeAppWidget((LauncherAppWidgetInfo) item);
      LauncherModel.deleteItemFromDatabase(mLauncher, item);

      final LauncherAppWidgetInfo launcherAppWidgetInfo = (LauncherAppWidgetInfo) item;
      final LauncherAppWidgetHost appWidgetHost = mLauncher.getAppWidgetHost();
      if (appWidgetHost != null) {
        // 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();
      }
    }
  }
Exemple #2
0
  private void completeDrop(DragObject d) {
    ItemInfo item = (ItemInfo) d.dragInfo;

    switch (mMode) {
      case MODE_DELETE:
        if (isWorkspaceOrFolderApplication(d.dragSource, item)) {
          LauncherModel.deleteItemFromDatabase(mLauncher, item);
        } else if (isWorkspaceFolder(d.dragSource, d.dragInfo)) {
          // Remove the folder from the workspace and delete the contents from launcher model
          FolderInfo folderInfo = (FolderInfo) item;
          mLauncher.removeFolder(folderInfo);
          LauncherModel.deleteFolderContentsFromDatabase(mLauncher, folderInfo);
        } else if (isWorkspaceWidget(d.dragSource, item)) {
          // Remove the widget from the workspace
          mLauncher.removeAppWidget((LauncherAppWidgetInfo) item);
          LauncherModel.deleteItemFromDatabase(mLauncher, item);

          final LauncherAppWidgetInfo launcherAppWidgetInfo = (LauncherAppWidgetInfo) item;
          final LauncherAppWidgetHost appWidgetHost = mLauncher.getAppWidgetHost();
          if (appWidgetHost != null) {
            // 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();
          }
        }
        break;
      case MODE_UNINSTALL:
        if (isAllAppsApplication(d.dragSource, item)) {
          // Uninstall the application
          mLauncher.startApplicationUninstallActivity((ApplicationInfo) item);
        } else if (isWorkspaceOrFolderApplication(d.dragSource, item)) {
          // Uninstall the shortcut
          mLauncher.startShortcutUninstallActivity((ShortcutInfo) item);
        }
        break;
    }
  }