Fix split animation for grid RTL
Fixes: 202156862 Test: Tested grid + non grid, RTL + LTR Change-Id: I303f60efdd9f2f2ea412e31e574d9a3b50fecf30
This commit is contained in:
parent
779879ce3d
commit
0f12803061
|
@ -129,7 +129,7 @@ public class FloatingTaskView extends FrameLayout {
|
||||||
public void update(RectF position, float progress, float windowRadius) {
|
public void update(RectF position, float progress, float windowRadius) {
|
||||||
MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
|
MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
|
||||||
|
|
||||||
float dX = position.left - lp.getMarginStart();
|
float dX = position.left - mStartingPosition.left;
|
||||||
float dY = position.top - lp.topMargin;
|
float dY = position.top - lp.topMargin;
|
||||||
|
|
||||||
setTranslationX(dX);
|
setTranslationX(dX);
|
||||||
|
@ -155,10 +155,15 @@ public class FloatingTaskView extends FrameLayout {
|
||||||
lp.ignoreInsets = true;
|
lp.ignoreInsets = true;
|
||||||
// Position the floating view exactly on top of the original
|
// Position the floating view exactly on top of the original
|
||||||
lp.topMargin = Math.round(pos.top);
|
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
|
// Set the properties here already to make sure they are available when running the first
|
||||||
// animation frame.
|
// animation frame.
|
||||||
int left = lp.leftMargin;
|
int left = (int) pos.left;
|
||||||
layout(left, lp.topMargin, left + lp.width, lp.topMargin + lp.height);
|
layout(left, lp.topMargin, left + lp.width, lp.topMargin + lp.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue