diff options
Diffstat (limited to 'src/com/android/launcher3/widget')
4 files changed, 15 insertions, 16 deletions
diff --git a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java index 23e2f9225..ad05ce917 100644 --- a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java +++ b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java @@ -52,7 +52,7 @@ public class PendingAddWidgetInfo extends PendingAddItemInfo { minSpanY = i.minSpanY; } - public WidgetAddFlowHandler getHander() { + public WidgetAddFlowHandler getHandler() { return new WidgetAddFlowHandler(info); } } diff --git a/src/com/android/launcher3/widget/WidgetAddFlowHandler.java b/src/com/android/launcher3/widget/WidgetAddFlowHandler.java index f44e56c00..629f30c26 100644 --- a/src/com/android/launcher3/widget/WidgetAddFlowHandler.java +++ b/src/com/android/launcher3/widget/WidgetAddFlowHandler.java @@ -40,7 +40,7 @@ public class WidgetAddFlowHandler implements Parcelable { mProviderInfo = providerInfo; } - private WidgetAddFlowHandler(Parcel parcel) { + protected WidgetAddFlowHandler(Parcel parcel) { mProviderInfo = AppWidgetProviderInfo.CREATOR.createFromParcel(parcel); } @@ -81,7 +81,7 @@ public class WidgetAddFlowHandler implements Parcelable { */ public boolean startConfigActivity(Launcher launcher, int appWidgetId, ItemInfo info, int requestCode) { - if (mProviderInfo.configure == null) { + if (!needsConfigure()) { return false; } launcher.setWaitingForResult(PendingRequestArgs.forWidgetInfo(appWidgetId, this, info)); @@ -91,6 +91,10 @@ public class WidgetAddFlowHandler implements Parcelable { return true; } + public boolean needsConfigure() { + return mProviderInfo.configure != null; + } + public LauncherAppWidgetProviderInfo getProviderInfo(Context context) { return LauncherAppWidgetProviderInfo.fromProviderInfo(context, mProviderInfo); } diff --git a/src/com/android/launcher3/widget/WidgetHostViewLoader.java b/src/com/android/launcher3/widget/WidgetHostViewLoader.java index 56112b21e..5eeea44b8 100644 --- a/src/com/android/launcher3/widget/WidgetHostViewLoader.java +++ b/src/com/android/launcher3/widget/WidgetHostViewLoader.java @@ -46,7 +46,9 @@ public class WidgetHostViewLoader implements DragController.DragListener { } @Override - public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) { } + public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) { + preloadWidget(); + } @Override public void onDragEnd() { @@ -80,7 +82,7 @@ public class WidgetHostViewLoader implements DragController.DragListener { /** * Start preloading the widget. */ - public boolean preloadWidget() { + private boolean preloadWidget() { final LauncherAppWidgetProviderInfo pInfo = mInfo.info; if (pInfo.isCustomWidget) { @@ -89,7 +91,7 @@ public class WidgetHostViewLoader implements DragController.DragListener { final Bundle options = getDefaultOptionsForWidget(mLauncher, mInfo); // If there is a configuration activity, do not follow thru bound and inflate. - if (pInfo.configure != null) { + if (mInfo.getHandler().needsConfigure()) { mInfo.bindOptions = options; return false; } diff --git a/src/com/android/launcher3/widget/WidgetsContainerView.java b/src/com/android/launcher3/widget/WidgetsContainerView.java index 2731fb9cd..d1421e05a 100644 --- a/src/com/android/launcher3/widget/WidgetsContainerView.java +++ b/src/com/android/launcher3/widget/WidgetsContainerView.java @@ -150,16 +150,7 @@ public class WidgetsContainerView extends BaseContainerView // Return if global dragging is not enabled if (!mLauncher.isDraggingEnabled()) return false; - boolean status = beginDragging(v); - if (status && v.getTag() instanceof PendingAddWidgetInfo) { - WidgetHostViewLoader hostLoader = new WidgetHostViewLoader(mLauncher, v); - boolean preloadStatus = hostLoader.preloadWidget(); - if (LOGD) { - Log.d(TAG, String.format("preloading widget [status=%s]", preloadStatus)); - } - mLauncher.getDragController().addDragListener(hostLoader); - } - return status; + return beginDragging(v); } private boolean beginDragging(View v) { @@ -222,6 +213,8 @@ public class WidgetsContainerView extends BaseContainerView bounds.right -= padding; } scale = bounds.width() / (float) preview.getWidth(); + + mLauncher.getDragController().addDragListener(new WidgetHostViewLoader(mLauncher, v)); } else { PendingAddShortcutInfo createShortcutInfo = (PendingAddShortcutInfo) v.getTag(); Drawable icon = createShortcutInfo.activityInfo.getFullResIcon(mIconCache); |