summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Folder.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-07-08 18:03:46 -0700
committerMichael Jurka <mikejurka@google.com>2013-07-19 17:15:39 -0400
commit1e2f465f46ded990ea30516cdb7f0fcf3280411f (patch)
tree10c65874b01d358a0cb2f7300eeb43a57cdc82c4 /src/com/android/launcher3/Folder.java
parent766f5f7a53718f2820d58f0137a7db0690dd4cf0 (diff)
downloadandroid_packages_apps_Trebuchet-1e2f465f46ded990ea30516cdb7f0fcf3280411f.tar.gz
android_packages_apps_Trebuchet-1e2f465f46ded990ea30516cdb7f0fcf3280411f.tar.bz2
android_packages_apps_Trebuchet-1e2f465f46ded990ea30516cdb7f0fcf3280411f.zip
Implement ability to uninstall shortcuts from workspace
Change-Id: I14ca94ea719825c4de19ab85d67537155098d50c
Diffstat (limited to 'src/com/android/launcher3/Folder.java')
-rw-r--r--src/com/android/launcher3/Folder.java37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java
index 4de929725..bb3993efc 100644
--- a/src/com/android/launcher3/Folder.java
+++ b/src/com/android/launcher3/Folder.java
@@ -126,6 +126,10 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
private AutoScroller mAutoScroller;
+ private Runnable mDeferredAction;
+ private boolean mDeferDropAfterUninstall;
+ private boolean mUninstallSuccessful;
+
/**
* Used to inflate the Workspace from XML.
*
@@ -743,9 +747,22 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
mDragMode = DRAG_MODE_NONE;
}
- public void onDropCompleted(View target, DragObject d, boolean isFlingToDelete,
- boolean success) {
- if (success) {
+ public void onDropCompleted(final View target, final DragObject d,
+ final boolean isFlingToDelete, final boolean success) {
+ if (mDeferDropAfterUninstall) {
+ mDeferredAction = new Runnable() {
+ public void run() {
+ onDropCompleted(target, d, isFlingToDelete, success);
+ mDeferredAction = null;
+ }
+ };
+ return;
+ }
+
+ boolean beingCalledAfterUninstall = mDeferredAction != null;
+ boolean successfulDrop =
+ success && (!beingCalledAfterUninstall || mUninstallSuccessful);
+ if (successfulDrop) {
if (mDeleteFolderOnDropCompleted && !mItemAddedBackToSelfViaIcon) {
replaceFolderWithFinalItem();
}
@@ -758,7 +775,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
if (target != this) {
if (mOnExitAlarm.alarmPending()) {
mOnExitAlarm.cancelAlarm();
- if (!success) {
+ if (successfulDrop) {
mSuppressFolderDeletion = true;
}
completeDragExit();
@@ -776,6 +793,18 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
updateItemLocationsInDatabaseBatch();
}
+ public void deferCompleteDropAfterUninstallActivity() {
+ mDeferDropAfterUninstall = true;
+ }
+
+ public void onUninstallActivityReturned(boolean success) {
+ mDeferDropAfterUninstall = false;
+ mUninstallSuccessful = success;
+ if (mDeferredAction != null) {
+ mDeferredAction.run();
+ }
+ }
+
@Override
public boolean supportsFlingToDelete() {
return true;