Merge "Take margin insets into account when setting position" into sc-dev am: 0f3053ceae
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15152173
Change-Id: I279f00bd76bbf78c40c0cd71c541586edf060d7d
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 710a9ab..1b1066a 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -1665,7 +1665,6 @@
pa.addListener(AnimatorListeners.forSuccessCallback(() -> {
setLayoutRotation(newRotation, mOrientationState.getDisplayRotation());
mActivity.getDragLayer().recreateControllers();
- updateChildTaskOrientations();
setRecentsChangedOrientation(false).start();
}));
pa.start();
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
index c97225e..d663635 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
@@ -59,6 +59,7 @@
private static final int REVEAL_OPEN_DURATION = 150;
private static final int REVEAL_CLOSE_DURATION = 100;
+ private final float mTaskInsetMargin;
private BaseDraggingActivity mActivity;
private TextView mTaskName;
@@ -75,6 +76,7 @@
mActivity = BaseDraggingActivity.fromContext(context);
setClipToOutline(true);
+ mTaskInsetMargin = getResources().getDimension(R.dimen.task_card_margin);
}
@Override
@@ -124,8 +126,13 @@
private void setPosition(float x, float y, int overscrollShift) {
PagedOrientationHandler pagedOrientationHandler = mTaskView.getPagedOrientationHandler();
+ // Inset due to margin
+ PointF additionalInset = pagedOrientationHandler
+ .getAdditionalInsetForTaskMenu(mTaskInsetMargin);
int taskTopMargin = mActivity.getDeviceProfile().overviewTaskThumbnailTopMarginPx;
- float adjustedY = y + taskTopMargin;
+
+ float adjustedY = y + taskTopMargin - additionalInset.y;
+ float adjustedX = x - additionalInset.x;
// Changing pivot to make computations easier
// NOTE: Changing the pivots means the rotated view gets rotated about the new pivots set,
// which would render the X and Y position set here incorrect
@@ -137,7 +144,8 @@
setPivotY(0);
}
setRotation(pagedOrientationHandler.getDegreesRotated());
- setX(pagedOrientationHandler.getTaskMenuX(x, mTaskView.getThumbnail(), overscrollShift));
+ setX(pagedOrientationHandler.getTaskMenuX(adjustedX,
+ mTaskView.getThumbnail(), overscrollShift));
setY(pagedOrientationHandler.getTaskMenuY(
adjustedY, mTaskView.getThumbnail(), overscrollShift));
}
@@ -228,8 +236,7 @@
private void orientAroundTaskView(TaskView taskView) {
PagedOrientationHandler orientationHandler = taskView.getPagedOrientationHandler();
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
- float taskInsetMargin = getResources().getDimension(R.dimen.task_card_margin);
- orientationHandler.setTaskMenuAroundTaskView(this, taskInsetMargin);
+ orientationHandler.setTaskMenuAroundTaskView(this, mTaskInsetMargin);
mActivity.getDragLayer().getDescendantRectRelativeToSelf(taskView, sTempRect);
Rect insets = mActivity.getDragLayer().getInsets();
BaseDragLayer.LayoutParams params = (BaseDragLayer.LayoutParams) getLayoutParams();
@@ -243,9 +250,6 @@
setScaleY(taskView.getScaleY());
orientationHandler.setTaskOptionsMenuLayoutOrientation(
mActivity.getDeviceProfile(), mOptionLayout);
- PointF additionalInset = orientationHandler.getAdditionalInsetForTaskMenu(taskInsetMargin);
- insets.left += additionalInset.x;
- insets.top += additionalInset.y;
setPosition(sTempRect.left - insets.left, sTempRect.top - insets.top, 0);
}