Loading src/com/android/launcher3/dragndrop/AddItemActivity.java +12 −4 Original line number Diff line number Diff line Loading @@ -189,10 +189,18 @@ public class AddItemActivity extends BaseActivity if (appWidgetHostView != null) { bounds = new Rect(); appWidgetHostView.getSourceVisualDragBounds(bounds); bounds.offset(appWidgetHostView.getLeft() - (int) mLastTouchPos.x, appWidgetHostView.getTop() - (int) mLastTouchPos.y); listener = new PinItemDragListener(mRequest, bounds, appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getMeasuredWidth()); float appWidgetHostViewScale = mWidgetCell.getAppWidgetHostViewScale(); int xOffset = appWidgetHostView.getLeft() - (int) (mLastTouchPos.x * appWidgetHostViewScale); int yOffset = appWidgetHostView.getTop() - (int) (mLastTouchPos.y * mWidgetCell.getAppWidgetHostViewScale()); bounds.offset(xOffset, yOffset); listener = new PinItemDragListener( mRequest, bounds, appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getScaleX()); } else { bounds = img.getBitmapBounds(); bounds.offset(img.getLeft() - (int) mLastTouchPos.x, Loading src/com/android/launcher3/dragndrop/PinItemDragListener.java +8 −1 Original line number Diff line number Diff line Loading @@ -48,12 +48,19 @@ public class PinItemDragListener extends BaseItemDragListener { private final PinItemRequest mRequest; private final CancellationSignal mCancelSignal; private final float mPreviewScale; public PinItemDragListener(PinItemRequest request, Rect previewRect, int previewBitmapWidth, int previewViewWidth) { this(request, previewRect, previewBitmapWidth, previewViewWidth, /* previewScale= */ 1f); } public PinItemDragListener(PinItemRequest request, Rect previewRect, int previewBitmapWidth, int previewViewWidth, float previewScale) { super(previewRect, previewBitmapWidth, previewViewWidth); mRequest = request; mCancelSignal = new CancellationSignal(); mPreviewScale = previewScale; } @Override Loading Loading @@ -98,7 +105,7 @@ public class PinItemDragListener extends BaseItemDragListener { PendingItemDragHelper dragHelper = new PendingItemDragHelper(view); if (mRequest.getRequestType() == PinItemRequest.REQUEST_TYPE_APPWIDGET) { dragHelper.setRemoteViewsPreview(getPreview(mRequest)); dragHelper.setRemoteViewsPreview(getPreview(mRequest), mPreviewScale); } return dragHelper; } Loading src/com/android/launcher3/widget/BaseWidgetSheet.java +3 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,9 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher> } PendingItemDragHelper dragHelper = new PendingItemDragHelper(v); dragHelper.setRemoteViewsPreview(v.getRemoteViewsPreview()); // RemoteViews are being rendered in AppWidgetHostView in WidgetCell. And thus, the scale of // RemoteViews is equivalent to the AppWidgetHostView scale. dragHelper.setRemoteViewsPreview(v.getRemoteViewsPreview(), v.getAppWidgetHostViewScale()); dragHelper.setAppWidgetHostViewPreview(v.getAppWidgetHostViewPreview()); if (image.getDrawable() != null) { Loading src/com/android/launcher3/widget/PendingItemDragHelper.java +13 −7 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.Size; import android.view.View; import android.view.View.MeasureSpec; import android.widget.RemoteViews; Loading @@ -41,6 +42,7 @@ import com.android.launcher3.icons.FastBitmapDrawable; import com.android.launcher3.icons.LauncherIcons; import com.android.launcher3.icons.RoundDrawableWrapper; import com.android.launcher3.widget.dragndrop.AppWidgetHostViewDragListener; import com.android.launcher3.widget.util.WidgetSizes; /** * Extension of {@link DragPreviewProvider} with logic specific to pending widgets/shortcuts Loading @@ -54,6 +56,7 @@ public class PendingItemDragHelper extends DragPreviewProvider { private int[] mEstimatedCellSize; @Nullable private RemoteViews mRemoteViewsPreview; private float mRemoteViewsPreviewScale = 1f; @Nullable private NavigableAppWidgetHostView mAppWidgetHostViewPreview; private final float mEnforcedRoundedCornersForWidget; Loading @@ -68,8 +71,10 @@ public class PendingItemDragHelper extends DragPreviewProvider { * Sets a {@link RemoteViews} which shows an app widget preview provided by app developers in * the pin widget flow. */ public void setRemoteViewsPreview(@Nullable RemoteViews remoteViewsPreview) { public void setRemoteViewsPreview(@Nullable RemoteViews remoteViewsPreview, float previewScale) { mRemoteViewsPreview = remoteViewsPreview; mRemoteViewsPreviewScale = previewScale; } /** Sets a {@link NavigableAppWidgetHostView} which shows a preview layout of an app widget. */ Loading Loading @@ -120,13 +125,14 @@ public class PendingItemDragHelper extends DragPreviewProvider { mAppWidgetHostViewPreview.setPadding(padding.left, padding.top, padding.right, padding.bottom); mAppWidgetHostViewPreview.updateAppWidget(/* remoteViews= */ mRemoteViewsPreview); int width = deviceProfile.cellWidthPx * mAddInfo.spanX + padding.left + padding.right; int height = deviceProfile.cellHeightPx * mAddInfo.spanY + padding.top + padding.bottom; Size widgetSizes = WidgetSizes.getWidgetPaddedSizePx(launcher, mAddInfo.componentName, deviceProfile, mAddInfo.spanX, mAddInfo.spanY); mAppWidgetHostViewPreview.measure( MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); MeasureSpec.makeMeasureSpec(widgetSizes.getWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(widgetSizes.getHeight(), MeasureSpec.EXACTLY)); mAppWidgetHostViewPreview.setClipChildren(false); mAppWidgetHostViewPreview.setClipToPadding(false); mAppWidgetHostViewPreview.setScaleToFit(mRemoteViewsPreviewScale); } if (mAppWidgetHostViewPreview != null) { previewSizeBeforeScale[0] = mAppWidgetHostViewPreview.getMeasuredWidth(); Loading src/com/android/launcher3/widget/WidgetCell.java +9 −2 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { private RemoteViews mRemoteViewsPreview; private NavigableAppWidgetHostView mAppWidgetHostViewPreview; private float mAppWidgetHostViewScale = 1f; private int mSourceContainer = CONTAINER_WIDGETS_TRAY; public WidgetCell(Context context) { Loading Loading @@ -178,6 +179,11 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { return mRemoteViewsPreview; } /** Returns the app widget host view scale, which is a value between [0f, 1f]. */ public float getAppWidgetHostViewScale() { return mAppWidgetHostViewScale; } /** * Called to clear the view and free attached resources. (e.g., {@link Bitmap} */ Loading @@ -203,6 +209,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { mWidgetImageContainer.removeView(mAppWidgetHostViewPreview); } mAppWidgetHostViewPreview = null; mAppWidgetHostViewScale = 1f; mItem = null; } Loading Loading @@ -365,8 +372,8 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { if (shouldScale) { setNoClip(mWidgetImageContainer); setNoClip(mAppWidgetHostViewPreview); float previewLayoutScale = computeWidgetPreviewScale(); mAppWidgetHostViewPreview.setScaleToFit(previewLayoutScale); mAppWidgetHostViewScale = computeWidgetPreviewScale(); mAppWidgetHostViewPreview.setScaleToFit(mAppWidgetHostViewScale); } } FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( Loading Loading
src/com/android/launcher3/dragndrop/AddItemActivity.java +12 −4 Original line number Diff line number Diff line Loading @@ -189,10 +189,18 @@ public class AddItemActivity extends BaseActivity if (appWidgetHostView != null) { bounds = new Rect(); appWidgetHostView.getSourceVisualDragBounds(bounds); bounds.offset(appWidgetHostView.getLeft() - (int) mLastTouchPos.x, appWidgetHostView.getTop() - (int) mLastTouchPos.y); listener = new PinItemDragListener(mRequest, bounds, appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getMeasuredWidth()); float appWidgetHostViewScale = mWidgetCell.getAppWidgetHostViewScale(); int xOffset = appWidgetHostView.getLeft() - (int) (mLastTouchPos.x * appWidgetHostViewScale); int yOffset = appWidgetHostView.getTop() - (int) (mLastTouchPos.y * mWidgetCell.getAppWidgetHostViewScale()); bounds.offset(xOffset, yOffset); listener = new PinItemDragListener( mRequest, bounds, appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getMeasuredWidth(), appWidgetHostView.getScaleX()); } else { bounds = img.getBitmapBounds(); bounds.offset(img.getLeft() - (int) mLastTouchPos.x, Loading
src/com/android/launcher3/dragndrop/PinItemDragListener.java +8 −1 Original line number Diff line number Diff line Loading @@ -48,12 +48,19 @@ public class PinItemDragListener extends BaseItemDragListener { private final PinItemRequest mRequest; private final CancellationSignal mCancelSignal; private final float mPreviewScale; public PinItemDragListener(PinItemRequest request, Rect previewRect, int previewBitmapWidth, int previewViewWidth) { this(request, previewRect, previewBitmapWidth, previewViewWidth, /* previewScale= */ 1f); } public PinItemDragListener(PinItemRequest request, Rect previewRect, int previewBitmapWidth, int previewViewWidth, float previewScale) { super(previewRect, previewBitmapWidth, previewViewWidth); mRequest = request; mCancelSignal = new CancellationSignal(); mPreviewScale = previewScale; } @Override Loading Loading @@ -98,7 +105,7 @@ public class PinItemDragListener extends BaseItemDragListener { PendingItemDragHelper dragHelper = new PendingItemDragHelper(view); if (mRequest.getRequestType() == PinItemRequest.REQUEST_TYPE_APPWIDGET) { dragHelper.setRemoteViewsPreview(getPreview(mRequest)); dragHelper.setRemoteViewsPreview(getPreview(mRequest), mPreviewScale); } return dragHelper; } Loading
src/com/android/launcher3/widget/BaseWidgetSheet.java +3 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,9 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher> } PendingItemDragHelper dragHelper = new PendingItemDragHelper(v); dragHelper.setRemoteViewsPreview(v.getRemoteViewsPreview()); // RemoteViews are being rendered in AppWidgetHostView in WidgetCell. And thus, the scale of // RemoteViews is equivalent to the AppWidgetHostView scale. dragHelper.setRemoteViewsPreview(v.getRemoteViewsPreview(), v.getAppWidgetHostViewScale()); dragHelper.setAppWidgetHostViewPreview(v.getAppWidgetHostViewPreview()); if (image.getDrawable() != null) { Loading
src/com/android/launcher3/widget/PendingItemDragHelper.java +13 −7 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.Size; import android.view.View; import android.view.View.MeasureSpec; import android.widget.RemoteViews; Loading @@ -41,6 +42,7 @@ import com.android.launcher3.icons.FastBitmapDrawable; import com.android.launcher3.icons.LauncherIcons; import com.android.launcher3.icons.RoundDrawableWrapper; import com.android.launcher3.widget.dragndrop.AppWidgetHostViewDragListener; import com.android.launcher3.widget.util.WidgetSizes; /** * Extension of {@link DragPreviewProvider} with logic specific to pending widgets/shortcuts Loading @@ -54,6 +56,7 @@ public class PendingItemDragHelper extends DragPreviewProvider { private int[] mEstimatedCellSize; @Nullable private RemoteViews mRemoteViewsPreview; private float mRemoteViewsPreviewScale = 1f; @Nullable private NavigableAppWidgetHostView mAppWidgetHostViewPreview; private final float mEnforcedRoundedCornersForWidget; Loading @@ -68,8 +71,10 @@ public class PendingItemDragHelper extends DragPreviewProvider { * Sets a {@link RemoteViews} which shows an app widget preview provided by app developers in * the pin widget flow. */ public void setRemoteViewsPreview(@Nullable RemoteViews remoteViewsPreview) { public void setRemoteViewsPreview(@Nullable RemoteViews remoteViewsPreview, float previewScale) { mRemoteViewsPreview = remoteViewsPreview; mRemoteViewsPreviewScale = previewScale; } /** Sets a {@link NavigableAppWidgetHostView} which shows a preview layout of an app widget. */ Loading Loading @@ -120,13 +125,14 @@ public class PendingItemDragHelper extends DragPreviewProvider { mAppWidgetHostViewPreview.setPadding(padding.left, padding.top, padding.right, padding.bottom); mAppWidgetHostViewPreview.updateAppWidget(/* remoteViews= */ mRemoteViewsPreview); int width = deviceProfile.cellWidthPx * mAddInfo.spanX + padding.left + padding.right; int height = deviceProfile.cellHeightPx * mAddInfo.spanY + padding.top + padding.bottom; Size widgetSizes = WidgetSizes.getWidgetPaddedSizePx(launcher, mAddInfo.componentName, deviceProfile, mAddInfo.spanX, mAddInfo.spanY); mAppWidgetHostViewPreview.measure( MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); MeasureSpec.makeMeasureSpec(widgetSizes.getWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(widgetSizes.getHeight(), MeasureSpec.EXACTLY)); mAppWidgetHostViewPreview.setClipChildren(false); mAppWidgetHostViewPreview.setClipToPadding(false); mAppWidgetHostViewPreview.setScaleToFit(mRemoteViewsPreviewScale); } if (mAppWidgetHostViewPreview != null) { previewSizeBeforeScale[0] = mAppWidgetHostViewPreview.getMeasuredWidth(); Loading
src/com/android/launcher3/widget/WidgetCell.java +9 −2 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { private RemoteViews mRemoteViewsPreview; private NavigableAppWidgetHostView mAppWidgetHostViewPreview; private float mAppWidgetHostViewScale = 1f; private int mSourceContainer = CONTAINER_WIDGETS_TRAY; public WidgetCell(Context context) { Loading Loading @@ -178,6 +179,11 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { return mRemoteViewsPreview; } /** Returns the app widget host view scale, which is a value between [0f, 1f]. */ public float getAppWidgetHostViewScale() { return mAppWidgetHostViewScale; } /** * Called to clear the view and free attached resources. (e.g., {@link Bitmap} */ Loading @@ -203,6 +209,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { mWidgetImageContainer.removeView(mAppWidgetHostViewPreview); } mAppWidgetHostViewPreview = null; mAppWidgetHostViewScale = 1f; mItem = null; } Loading Loading @@ -365,8 +372,8 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { if (shouldScale) { setNoClip(mWidgetImageContainer); setNoClip(mAppWidgetHostViewPreview); float previewLayoutScale = computeWidgetPreviewScale(); mAppWidgetHostViewPreview.setScaleToFit(previewLayoutScale); mAppWidgetHostViewScale = computeWidgetPreviewScale(); mAppWidgetHostViewPreview.setScaleToFit(mAppWidgetHostViewScale); } } FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( Loading