Fix split animation for grid RTL

Fixes: 202156862
Test: Tested grid + non grid,
RTL + LTR

Change-Id: I303f60efdd9f2f2ea412e31e574d9a3b50fecf30
This commit is contained in:
Vinit Nayak 2021-12-07 22:13:06 -08:00
parent 779879ce3d
commit 0f12803061
1 changed files with 8 additions and 3 deletions

View File

@ -129,7 +129,7 @@ public class FloatingTaskView extends FrameLayout {
public void update(RectF position, float progress, float windowRadius) {
MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
float dX = position.left - lp.getMarginStart();
float dX = position.left - mStartingPosition.left;
float dY = position.top - lp.topMargin;
setTranslationX(dX);
@ -155,10 +155,15 @@ public class FloatingTaskView extends FrameLayout {
lp.ignoreInsets = true;
// Position the floating view exactly on top of the original
lp.topMargin = Math.round(pos.top);
lp.setMarginStart(Math.round(pos.left));
if (mIsRtl) {
lp.setMarginStart(mLauncher.getDeviceProfile().widthPx - Math.round(pos.right));
} else {
lp.setMarginStart(Math.round(pos.left));
}
// Set the properties here already to make sure they are available when running the first
// animation frame.
int left = lp.leftMargin;
int left = (int) pos.left;
layout(left, lp.topMargin, left + lp.width, lp.topMargin + lp.height);
}