diff options
Diffstat (limited to 'src/com/android/launcher3/widget')
-rw-r--r-- | src/com/android/launcher3/widget/PendingItemDragHelper.java | 20 | ||||
-rw-r--r-- | src/com/android/launcher3/widget/WidgetCell.java | 13 |
2 files changed, 24 insertions, 9 deletions
diff --git a/src/com/android/launcher3/widget/PendingItemDragHelper.java b/src/com/android/launcher3/widget/PendingItemDragHelper.java index 6f4c2864b..b4118790c 100644 --- a/src/com/android/launcher3/widget/PendingItemDragHelper.java +++ b/src/com/android/launcher3/widget/PendingItemDragHelper.java @@ -23,6 +23,7 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.view.View; +import android.widget.RemoteViews; import com.android.launcher3.DeviceProfile; import com.android.launcher3.DragSource; @@ -32,6 +33,7 @@ import com.android.launcher3.PendingAddItemInfo; import com.android.launcher3.R; import com.android.launcher3.Workspace; import com.android.launcher3.dragndrop.DragOptions; +import com.android.launcher3.dragndrop.LivePreviewWidgetCell; import com.android.launcher3.graphics.DragPreviewProvider; import com.android.launcher3.graphics.HolographicOutlineHelper; import com.android.launcher3.graphics.LauncherIcons; @@ -47,12 +49,17 @@ public class PendingItemDragHelper extends DragPreviewProvider { private final PendingAddItemInfo mAddInfo; private Bitmap mPreviewBitmap; + private RemoteViews mPreview; public PendingItemDragHelper(View view) { super(view); mAddInfo = (PendingAddItemInfo) view.getTag(); } + public void setPreview(RemoteViews preview) { + mPreview = preview; + } + /** * Starts the drag for the pending item associated with the view. * @@ -67,7 +74,7 @@ public class PendingItemDragHelper extends DragPreviewProvider { final Launcher launcher = Launcher.getLauncher(mView.getContext()); LauncherAppState app = LauncherAppState.getInstance(launcher); - final Bitmap preview; + Bitmap preview = null; final float scale; final Point dragOffset; final Rect dragRegion; @@ -80,8 +87,15 @@ public class PendingItemDragHelper extends DragPreviewProvider { int maxWidth = Math.min((int) (previewBitmapWidth * MAX_WIDGET_SCALE), size[0]); int[] previewSizeBeforeScale = new int[1]; - preview = app.getWidgetCache() .generateWidgetPreview( - launcher, createWidgetInfo.info, maxWidth, null, previewSizeBeforeScale); + + if (mPreview != null) { + preview = LivePreviewWidgetCell.generateFromRemoteViews(launcher, mPreview, + createWidgetInfo.info, maxWidth, previewSizeBeforeScale); + } + if (preview == null) { + preview = app.getWidgetCache().generateWidgetPreview( + launcher, createWidgetInfo.info, maxWidth, null, previewSizeBeforeScale); + } if (previewSizeBeforeScale[0] < previewBitmapWidth) { // The icon has extra padding around it. diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java index 455ec4ef8..3bf622e8f 100644 --- a/src/com/android/launcher3/widget/WidgetCell.java +++ b/src/com/android/launcher3/widget/WidgetCell.java @@ -18,6 +18,7 @@ package com.android.launcher3.widget; import android.content.Context; import android.graphics.Bitmap; +import android.os.CancellationSignal; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; @@ -34,7 +35,6 @@ import com.android.launcher3.R; import com.android.launcher3.SimpleOnStylusPressListener; import com.android.launcher3.StylusEventHelper; import com.android.launcher3.WidgetPreviewLoader; -import com.android.launcher3.WidgetPreviewLoader.PreviewLoadRequest; import com.android.launcher3.graphics.DrawableFactory; import com.android.launcher3.model.WidgetItem; @@ -60,20 +60,21 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { /** Widget preview width is calculated by multiplying this factor to the widget cell width. */ private static final float PREVIEW_SCALE = 0.8f; - private int mPresetPreviewSize; + protected int mPresetPreviewSize; private int mCellSize; private WidgetImageView mWidgetImage; private TextView mWidgetName; private TextView mWidgetDims; - private WidgetItem mItem; + protected WidgetItem mItem; private WidgetPreviewLoader mWidgetPreviewLoader; - private PreviewLoadRequest mActiveRequest; private StylusEventHelper mStylusEventHelper; - private final BaseActivity mActivity; + protected CancellationSignal mActiveRequest; + + protected final BaseActivity mActivity; public WidgetCell(Context context) { this(context, null); @@ -123,7 +124,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { mWidgetDims.setText(null); if (mActiveRequest != null) { - mActiveRequest.cleanup(); + mActiveRequest.cancel(); mActiveRequest = null; } } |