summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/widget')
-rw-r--r--src/com/android/launcher3/widget/PendingItemDragHelper.java20
-rw-r--r--src/com/android/launcher3/widget/WidgetCell.java13
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;
}
}