Merge "Fix placement bug with split staging icon in RtL" into tm-dev
diff --git a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
index c13ab02..54420de 100644
--- a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
+++ b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
@@ -239,12 +239,10 @@
* offscreen).
*/
void centerIconView(IconView iconView, float onScreenRectCenterX, float onScreenRectCenterY) {
- FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) iconView.getLayoutParams();
- mOrientationHandler.updateStagedSplitIconParams(params, onScreenRectCenterX,
+ mOrientationHandler.updateStagedSplitIconParams(iconView, onScreenRectCenterX,
onScreenRectCenterY, mFullscreenParams.mScaleX, mFullscreenParams.mScaleY,
iconView.getDrawableWidth(), iconView.getDrawableHeight(),
mActivity.getDeviceProfile(), mStagePosition);
- iconView.setLayoutParams(params);
}
private static class SplitOverlayProperties {
diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
index cba5be5..121088a 100644
--- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
@@ -413,16 +413,15 @@
}
@Override
- public void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+ public void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
int drawableWidth, int drawableHeight, DeviceProfile dp,
@StagePosition int stagePosition) {
float inset = dp.getInsets().top;
- out.leftMargin = Math.round(onScreenRectCenterX / fullscreenScaleX
- - 1.0f * drawableWidth / 2);
- out.topMargin = Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
- - 1.0f * drawableHeight / 2);
-
+ out.setX(Math.round(onScreenRectCenterX / fullscreenScaleX
+ - 1.0f * drawableWidth / 2));
+ out.setY(Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
+ - 1.0f * drawableHeight / 2));
}
@Override
diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java
index 911f2b0..4fcf378 100644
--- a/src/com/android/launcher3/touch/PagedOrientationHandler.java
+++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java
@@ -117,7 +117,7 @@
/**
* Centers an icon in the split staging area, accounting for insets.
- * @param out The LayoutParams of the icon that needs to be centered.
+ * @param out The icon that needs to be centered.
* @param onScreenRectCenterX The x-center of the on-screen staging area (most of the Rect is
* offscreen).
* @param onScreenRectCenterY The y-center of the on-screen staging area (most of the Rect is
@@ -129,7 +129,7 @@
* @param dp The device profile, used to report rotation and hardware insets.
* @param stagePosition 0 if the staging area is pinned to top/left, 1 for bottom/right.
*/
- void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+ void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
int drawableWidth, int drawableHeight, DeviceProfile dp,
@StagePosition int stagePosition);
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index 309da22..80a8c19 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -458,29 +458,29 @@
}
@Override
- public void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+ public void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
int drawableWidth, int drawableHeight, DeviceProfile dp,
@StagePosition int stagePosition) {
boolean pinToRight = stagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT;
if (!dp.isLandscape) {
float inset = dp.getInsets().top;
- out.leftMargin = Math.round(onScreenRectCenterX / fullscreenScaleX
- - 1.0f * drawableWidth / 2);
- out.topMargin = Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
- - 1.0f * drawableHeight / 2);
+ out.setX(Math.round(onScreenRectCenterX / fullscreenScaleX
+ - 1.0f * drawableWidth / 2));
+ out.setY(Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
+ - 1.0f * drawableHeight / 2));
} else {
if (pinToRight) {
float inset = dp.getInsets().right;
- out.leftMargin = Math.round((onScreenRectCenterX - (inset / 2f)) / fullscreenScaleX
- - 1.0f * drawableWidth / 2);
+ out.setX(Math.round((onScreenRectCenterX - (inset / 2f)) / fullscreenScaleX
+ - 1.0f * drawableWidth / 2));
} else {
float inset = dp.getInsets().left;
- out.leftMargin = Math.round((onScreenRectCenterX + (inset / 2f)) / fullscreenScaleX
- - 1.0f * drawableWidth / 2);
+ out.setX(Math.round((onScreenRectCenterX + (inset / 2f)) / fullscreenScaleX
+ - 1.0f * drawableWidth / 2));
}
- out.topMargin = Math.round(onScreenRectCenterY / fullscreenScaleY
- - 1.0f * drawableHeight / 2);
+ out.setY(Math.round(onScreenRectCenterY / fullscreenScaleY
+ - 1.0f * drawableHeight / 2));
}
}