diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-03-08 14:49:55 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-03-17 11:25:29 -0700 |
commit | c65a0085d77edd8e8821254f081eb94e9dcc5e75 (patch) | |
tree | 9b5828af69bd8c6fb34d47e121202cfe86123b8f /src/com/android/launcher3/widget/PendingItemDragHelper.java | |
parent | efd5cbf55c45185230d56799e67b31e96d8d7029 (diff) | |
download | android_packages_apps_Trebuchet-c65a0085d77edd8e8821254f081eb94e9dcc5e75.tar.gz android_packages_apps_Trebuchet-c65a0085d77edd8e8821254f081eb94e9dcc5e75.tar.bz2 android_packages_apps_Trebuchet-c65a0085d77edd8e8821254f081eb94e9dcc5e75.zip |
Adding support for showing the widget preview based on the provided RemoteViews
Bug: 35811129
Change-Id: I336e48cd00cfec2e617ac73bd8a81419b0944aa7
Diffstat (limited to 'src/com/android/launcher3/widget/PendingItemDragHelper.java')
-rw-r--r-- | src/com/android/launcher3/widget/PendingItemDragHelper.java | 20 |
1 files changed, 17 insertions, 3 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. |