diff options
author | Michael Jurka <mikejurka@google.com> | 2013-07-08 18:03:46 -0700 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2013-07-19 17:15:39 -0400 |
commit | 1e2f465f46ded990ea30516cdb7f0fcf3280411f (patch) | |
tree | 10c65874b01d358a0cb2f7300eeb43a57cdc82c4 /src/com/android/launcher3/Folder.java | |
parent | 766f5f7a53718f2820d58f0137a7db0690dd4cf0 (diff) | |
download | android_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.java | 37 |
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; |