From 68f681bc7a10fc014ae0864c6e2db465ce4c30df Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Mon, 28 May 2012 15:01:16 -0700 Subject: Adding debugging for stuck widget (issue 6557954) Change-Id: I73217d6a5dd650278f93ae02672c92c823e08ded --- .../android/launcher2/AppsCustomizePagedView.java | 21 +++++++++++++++++++++ src/com/android/launcher2/Workspace.java | 1 + 2 files changed, 22 insertions(+) diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index 03d2a72e5..eea0dbb51 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -648,6 +648,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } private void preloadWidget(final PendingAddWidgetInfo info) { + Log.d(TAG, "6557954 Preload widget: " + info.info); final AppWidgetProviderInfo pInfo = info.info; if (pInfo.configure != null) { return; @@ -656,6 +657,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mBindWidgetRunnable = new Runnable() { @Override public void run() { + Log.d(TAG, " 6557954 Preload, bind widget: " + info.info); mWidgetLoadingId = mLauncher.getAppWidgetHost().allocateAppWidgetId(); if (AppWidgetManager.getInstance(mLauncher) .bindAppWidgetIdIfAllowed(mWidgetLoadingId, info.componentName)) { @@ -671,6 +673,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen AppWidgetHostView hostView = mLauncher. getAppWidgetHost().createView(getContext(), mWidgetLoadingId, pInfo); info.boundWidget = hostView; + Log.d(TAG, " 6557954 Preload, inflate widget: " + info.info); mWidgetCleanupState = WIDGET_INFLATED; hostView.setVisibility(INVISIBLE); int[] unScaledSize = mLauncher.getWorkspace().estimateItemSize(info.spanX, @@ -695,13 +698,20 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // the widget. This will need to be cleaned up if it turns out no long press occurs. if (mCreateWidgetInfo != null) { // Just in case the cleanup process wasn't properly executed. This shouldn't happen. + Log.d(TAG, "**** 6557954 Previous shortpress not cleaned up, cleaning up now: " + mCreateWidgetInfo.info); cleanupWidgetPreloading(false); } mCreateWidgetInfo = new PendingAddWidgetInfo((PendingAddWidgetInfo) v.getTag()); + Log.d(TAG, "6557954 Short press triggered for view: " + v + ", widget info: " + mCreateWidgetInfo.info); preloadWidget(mCreateWidgetInfo); } private void cleanupWidgetPreloading(boolean widgetWasAdded) { + Log.d(TAG, "6557954 Cleaning up widget, was added: " + widgetWasAdded); + if (mCreateWidgetInfo != null) { + Log.d(TAG, " 6557954 Cleaning up widget, widget info: " + mCreateWidgetInfo.info); + } + if (!widgetWasAdded) { // If the widget was not added, we may need to do further cleanup. PendingAddWidgetInfo info = mCreateWidgetInfo; @@ -709,13 +719,16 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // First step was to allocate a widget id, revert that. if ((mWidgetCleanupState == WIDGET_BOUND || mWidgetCleanupState == WIDGET_INFLATED) && mWidgetLoadingId != -1) { + Log.d(TAG, " 6557954 Cleaning up widget, delete widget id"); mLauncher.getAppWidgetHost().deleteAppWidgetId(mWidgetLoadingId); } if (mWidgetCleanupState == WIDGET_BOUND) { // We never actually inflated the widget, so remove the callback to do so. + Log.d(TAG, " 6557954 Cleaning up widget, remove callbacks"); removeCallbacks(mInflateWidgetRunnable); } else if (mWidgetCleanupState == WIDGET_INFLATED) { // The widget was inflated and added to the DragLayer -- remove it. + Log.d(TAG, " 6557954 Cleaning up widget, remove inflated widget from draglayer"); AppWidgetHostView widget = info.boundWidget; mLauncher.getDragLayer().removeView(widget); } @@ -728,7 +741,9 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen @Override public void cleanUpShortPress(View v) { + Log.d(TAG, "6557954 Cleanup shortpress"); if (!mDraggingWidget) { + Log.d(TAG, " 6557954 Cleanup shortpress, cleanup cleanup preloading"); cleanupWidgetPreloading(false); } } @@ -739,9 +754,15 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen ImageView image = (ImageView) v.findViewById(R.id.widget_preview); PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag(); + if (createItemInfo instanceof PendingAddWidgetInfo) { + PendingAddWidgetInfo createWidgetInfo = mCreateWidgetInfo; + Log.d(TAG, "6557954 Begin dragging widget, view: " + v + ", widget info: " + createWidgetInfo.info); + } + // If the ImageView doesn't have a drawable yet, the widget preview hasn't been loaded and // we abort the drag. if (image.getDrawable() == null) { + Log.d(TAG, " 6557954 Begin dragging widget, abort, no drawable set"); mDraggingWidget = false; return false; } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index f562cbccb..2dd027cd6 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -3181,6 +3181,7 @@ public class Workspace extends SmoothPagedView // In the case where we've prebound the widget, we remove it from the DragLayer if (finalView instanceof AppWidgetHostView && external) { + Log.d(TAG, "6557954 Animate widget drop, final view is appWidgetHostView"); mLauncher.getDragLayer().removeView(finalView); } if ((animationType == ANIMATE_INTO_POSITION_AND_RESIZE || external) && finalView != null) { -- cgit v1.2.3