Merge "Only set drag shadow params if they are valid" into udc-dev am: 2e1ce4c72f am: 1275b898ba

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23249924

Change-Id: Ia66ec2fa0af3980029eeb40f9119ca7450bd49fc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Winson Chung
2023-05-17 06:44:15 +00:00
committed by Automerger Merge Worker
@@ -36,6 +36,7 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.util.Log;
import android.util.Pair;
import android.view.DragEvent;
import android.view.MotionEvent;
@@ -87,6 +88,7 @@ import java.util.function.Predicate;
*/
public class TaskbarDragController extends DragController<BaseTaskbarContext> implements
TaskbarControllers.LoggableTaskbarController {
private static final String TAG = "TaskbarDragController";
private static final boolean DEBUG_DRAG_SHADOW_SURFACE = false;
private static final int ANIM_DURATION_RETURN_ICON_TO_TASKBAR = 300;
@@ -318,12 +320,26 @@ public class TaskbarDragController extends DragController<BaseTaskbarContext> im
@Override
public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
int iconSize = Math.max(mDragIconSize, btv.getWidth());
shadowSize.set(iconSize, iconSize);
if (iconSize > 0) {
shadowSize.set(iconSize, iconSize);
} else {
Log.d(TAG, "Invalid icon size, dragSize=" + mDragIconSize
+ " viewWidth=" + btv.getWidth());
}
// The registration point was taken before the icon scaled to mDragIconSize, so
// offset the registration to where the touch is on the new size.
int offsetX = (mDragIconSize - mDragObject.dragView.getDragRegionWidth()) / 2;
int offsetY = (mDragIconSize - mDragObject.dragView.getDragRegionHeight()) / 2;
shadowTouchPoint.set(mRegistrationX + offsetX, mRegistrationY + offsetY);
int touchX = mRegistrationX + offsetX;
int touchY = mRegistrationY + offsetY;
if (touchX >= 0 && touchY >= 0) {
shadowTouchPoint.set(touchX, touchY);
} else {
Log.d(TAG, "Invalid touch point, "
+ "registrationXY=(" + mRegistrationX + ", " + mRegistrationY + ") "
+ "offsetXY=(" + offsetX + ", " + offsetY + ")");
}
}
@Override