summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPatrick Dubroy <dubroy@google.com>2010-09-01 11:54:27 -0700
committerPatrick Dubroy <dubroy@google.com>2010-09-03 12:13:00 -0700
commitbc6840b316992c6fdd681be419fc767b5de2f226 (patch)
tree356194d1cc792e153a96ffe54483ff1a20f02488 /src
parentc4fb9173e73c0092a089512734c0d7df13189014 (diff)
downloadandroid_packages_apps_Trebuchet-bc6840b316992c6fdd681be419fc767b5de2f226.tar.gz
android_packages_apps_Trebuchet-bc6840b316992c6fdd681be419fc767b5de2f226.tar.bz2
android_packages_apps_Trebuchet-bc6840b316992c6fdd681be419fc767b5de2f226.zip
Support uninstalling an app by dragging from all apps to trash can.
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/ApplicationInfoDropTarget.java9
-rw-r--r--src/com/android/launcher2/DeleteZone.java39
-rw-r--r--src/com/android/launcher2/Launcher.java14
3 files changed, 41 insertions, 21 deletions
diff --git a/src/com/android/launcher2/ApplicationInfoDropTarget.java b/src/com/android/launcher2/ApplicationInfoDropTarget.java
index 737d19841..b053fa006 100644
--- a/src/com/android/launcher2/ApplicationInfoDropTarget.java
+++ b/src/com/android/launcher2/ApplicationInfoDropTarget.java
@@ -16,6 +16,7 @@
package com.android.launcher2;
+import android.content.ComponentName;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.PorterDuff;
@@ -65,13 +66,13 @@ public class ApplicationInfoDropTarget extends ImageView implements DropTarget,
// in onDrop, because it allows us to reject the drop (by returning false)
// so that the object being dragged isn't removed from the home screen.
- String packageName = null;
+ ComponentName componentName = null;
if (dragInfo instanceof ApplicationInfo) {
- packageName = ((ApplicationInfo)dragInfo).componentName.getPackageName();
+ componentName = ((ApplicationInfo)dragInfo).componentName;
} else if (dragInfo instanceof ShortcutInfo) {
- packageName = ((ShortcutInfo)dragInfo).intent.getComponent().getPackageName();
+ componentName = ((ShortcutInfo)dragInfo).intent.getComponent();
}
- mLauncher.startApplicationDetailsActivity(packageName);
+ mLauncher.startApplicationDetailsActivity(componentName);
return false;
}
diff --git a/src/com/android/launcher2/DeleteZone.java b/src/com/android/launcher2/DeleteZone.java
index b11b1dde6..91ff56fd4 100644
--- a/src/com/android/launcher2/DeleteZone.java
+++ b/src/com/android/launcher2/DeleteZone.java
@@ -16,24 +16,25 @@
package com.android.launcher2;
-import android.widget.ImageView;
+import com.android.launcher.R;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.drawable.TransitionDrawable;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.View;
-import android.view.animation.TranslateAnimation;
-import android.view.animation.Animation;
-import android.view.animation.AnimationSet;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AlphaAnimation;
-import android.graphics.RectF;
-import android.graphics.drawable.TransitionDrawable;
-
-import com.android.launcher.R;
+import android.view.animation.Animation;
+import android.view.animation.AnimationSet;
+import android.view.animation.TranslateAnimation;
+import android.widget.ImageView;
public class DeleteZone extends ImageView implements DropTarget, DragController.DragListener {
private static final int ORIENTATION_HORIZONTAL = 1;
@@ -93,21 +94,26 @@ public class DeleteZone extends ImageView implements DropTarget, DragController.
DragView dragView, Object dragInfo) {
final ItemInfo item = (ItemInfo) dragInfo;
+ // On x-large screens, you can uninstall an app by dragging from all apps
+ if (item instanceof ApplicationInfo && LauncherApplication.isScreenXLarge()) {
+ ApplicationInfo appInfo = (ApplicationInfo)item;
+ mLauncher.startApplicationUninstallActivity(appInfo.componentName);
+ }
+
if (item.container == -1) return;
if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
if (item instanceof LauncherAppWidgetInfo) {
mLauncher.removeAppWidget((LauncherAppWidgetInfo) item);
}
- } else {
- if (source instanceof UserFolder) {
- final UserFolder userFolder = (UserFolder) source;
- final UserFolderInfo userFolderInfo = (UserFolderInfo) userFolder.getInfo();
- // Item must be a ShortcutInfo otherwise it couldn't have been in the folder
- // in the first place.
- userFolderInfo.remove((ShortcutInfo)item);
- }
+ } else if (source instanceof UserFolder) {
+ final UserFolder userFolder = (UserFolder) source;
+ final UserFolderInfo userFolderInfo = (UserFolderInfo) userFolder.getInfo();
+ // Item must be a ShortcutInfo otherwise it couldn't have been in the folder
+ // in the first place.
+ userFolderInfo.remove((ShortcutInfo)item);
}
+
if (item instanceof UserFolderInfo) {
final UserFolderInfo userFolderInfo = (UserFolderInfo)item;
LauncherModel.deleteUserFolderContentsFromDatabase(mLauncher, userFolderInfo);
@@ -119,6 +125,7 @@ public class DeleteZone extends ImageView implements DropTarget, DragController.
appWidgetHost.deleteAppWidgetId(launcherAppWidgetInfo.appWidgetId);
}
}
+
LauncherModel.deleteItemFromDatabase(mLauncher, item);
}
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 4e3398533..bee69b90d 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1765,12 +1765,21 @@ public final class Launcher extends Activity
}
}
- void startApplicationDetailsActivity(String packageName) {
+ void startApplicationDetailsActivity(ComponentName componentName) {
+ String packageName = componentName.getPackageName();
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", packageName, null));
startActivity(intent);
}
+ void startApplicationUninstallActivity(ComponentName componentName) {
+ String packageName = componentName.getPackageName();
+ String className = componentName.getClassName();
+ Intent intent = new Intent(
+ Intent.ACTION_DELETE, Uri.fromParts("package", packageName, className));
+ startActivity(intent);
+ }
+
void startActivitySafely(Intent intent, Object tag) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
@@ -2277,18 +2286,21 @@ public final class Launcher extends Activity
hideOrShowToolbarButton(true, allAppsButton, showSeq);
hideOrShowToolbarButton(true, configureButton, showSeq);
hideOrShowToolbarButton(false, marketButton, hideSeq);
+ mDeleteZone.setHandle(allAppsButton);
break;
case ALL_APPS:
hideOrShowToolbarButton(true, configureButton, showSeq);
hideOrShowToolbarButton(true, marketButton, showSeq);
hideOrShowToolbarButton(false, searchButton, hideSeq);
hideOrShowToolbarButton(false, allAppsButton, hideSeq);
+ mDeleteZone.setHandle(marketButton);
break;
case CUSTOMIZE:
hideOrShowToolbarButton(true, allAppsButton, showSeq);
hideOrShowToolbarButton(false, searchButton, hideSeq);
hideOrShowToolbarButton(false, marketButton, hideSeq);
hideOrShowToolbarButton(false, configureButton, hideSeq);
+ mDeleteZone.setHandle(allAppsButton);
break;
}
}