diff options
author | Adam Cohen <adamcohen@google.com> | 2012-02-22 12:03:22 -0800 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2012-02-22 12:03:22 -0800 |
commit | 7a326648c54922c60c32088e173c93068a82d107 (patch) | |
tree | f9d41fe36a170f86ef1b586655e09278c4df840c /src | |
parent | 46569ae1073c29ace0137fdc5899cd8f61332865 (diff) | |
download | android_packages_apps_Trebuchet-7a326648c54922c60c32088e173c93068a82d107.tar.gz android_packages_apps_Trebuchet-7a326648c54922c60c32088e173c93068a82d107.tar.bz2 android_packages_apps_Trebuchet-7a326648c54922c60c32088e173c93068a82d107.zip |
Fixing issue where widget preloading not being cleaned up on failed drop
-> issue 6046370
Change-Id: Iee33fc22ae0bfe012fe33efd5b358a2199fdf424
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index ff1118c2e..865c8947b 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -239,6 +239,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen int mWidgetCleanupState = WIDGET_NO_CLEANUP_REQUIRED; int mWidgetLoadingId = -1; PendingAddWidgetInfo mCreateWidgetInfo = null; + private boolean mDraggingWidget = false; public AppsCustomizePagedView(Context context, AttributeSet attrs) { super(context, attrs); @@ -585,8 +586,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen loadWidgetInBackground(mCreateWidgetInfo); } - @Override - public void cleanUpShortPress(View v) { + private void cleanupWidgetPreloading() { PendingAddWidgetInfo info = mCreateWidgetInfo; mCreateWidgetInfo = null; if (mWidgetCleanupState >= 0 && mWidgetLoadingId != -1) { @@ -604,10 +604,15 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mWidgetLoadingId = -1; } - private void beginDraggingWidget(View v) { - mWidgetCleanupState = WIDGET_NO_CLEANUP_REQUIRED; - mWidgetLoadingId = -1; + @Override + public void cleanUpShortPress(View v) { + if (!mDraggingWidget) { + cleanupWidgetPreloading(); + } + } + private void beginDraggingWidget(View v) { + mDraggingWidget = true; // Get the widget preview as the drag representation ImageView image = (ImageView) v.findViewById(R.id.widget_preview); PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag(); @@ -618,7 +623,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen if (createItemInfo instanceof PendingAddWidgetInfo) { PendingAddWidgetInfo createWidgetInfo = mCreateWidgetInfo; createItemInfo = createWidgetInfo; - mCreateWidgetInfo = null; int[] spanXY = mLauncher.getSpanForWidget(createWidgetInfo, null); int[] size = mLauncher.getWorkspace().estimateItemSize(spanXY[0], spanXY[1], createWidgetInfo, true); @@ -729,8 +733,11 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen if (showOutOfSpaceMessage) { mLauncher.showOutOfSpaceMessage(); } + d.deferDragViewCleanupPostAnimation = false; + cleanupWidgetPreloading(); } + mDraggingWidget = false; } @Override |