Add X translation to tiles.

Test: manual
Bug: 191735427
Change-Id: I6710900bdd90afad2b20e1d006fb26469f00d9a7
This commit is contained in:
Fabian Kozynski
2021-06-24 16:09:43 -04:00
parent 7712f3bc0a
commit 9b2b0f66a4

View File

@@ -81,6 +81,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
private QSExpansionPathInterpolator mQSExpansionPathInterpolator;
private TouchAnimator mFirstPageAnimator;
private TouchAnimator mFirstPageDelayedAnimator;
private TouchAnimator mTranslationXAnimator;
private TouchAnimator mTranslationYAnimator;
private TouchAnimator mNonfirstPageAnimator;
private TouchAnimator mNonfirstPageDelayedAnimator;
@@ -223,18 +224,25 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
View qqsView,
View qsView,
View commonParent,
int xOffset,
int yOffset,
int[] temp,
TouchAnimator.Builder animatorBuilder
TouchAnimator.Builder animatorBuilderX,
TouchAnimator.Builder animatorBuilderY
) {
getRelativePosition(temp, qqsView, commonParent);
int qqsPos = temp[1];
int qqsPosX = temp[0];
int qqsPosY = temp[1];
getRelativePosition(temp, qsView, commonParent);
int qsPos = temp[1];
int qsPosX = temp[0];
int qsPosY = temp[1];
int diff = qsPos - qqsPos - yOffset;
animatorBuilder.addFloat(qqsView, "translationY", 0, diff);
animatorBuilder.addFloat(qsView, "translationY", -diff, 0);
int xDiff = qsPosX - qqsPosX - xOffset;
animatorBuilderX.addFloat(qqsView, "translationX", 0, xDiff);
animatorBuilderX.addFloat(qsView, "translationX", -xDiff, 0);
int yDiff = qsPosY - qqsPosY - yOffset;
animatorBuilderY.addFloat(qqsView, "translationY", 0, yDiff);
animatorBuilderY.addFloat(qsView, "translationY", -yDiff, 0);
mAllViews.add(qqsView);
mAllViews.add(qsView);
}
@@ -243,6 +251,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
mNeedsAnimatorUpdate = false;
TouchAnimator.Builder firstPageBuilder = new Builder();
TouchAnimator.Builder translationYBuilder = new Builder();
TouchAnimator.Builder translationXBuilder = new Builder();
Collection<QSTile> tiles = mHost.getTiles();
int count = 0;
@@ -289,6 +298,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
getRelativePosition(loc1, quickTileView, view);
getRelativePosition(loc2, tileView, view);
int yOffset = loc2[1] - loc1[1];
int xOffset = loc2[0] - loc1[0];
// Offset the translation animation on the views
// (that goes from 0 to getOffsetTranslation)
@@ -299,6 +309,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
translationYBuilder.addFloat(tileView, "translationY",
-offsetWithQSBHTranslation, 0);
translationXBuilder.addFloat(quickTileView, "translationX", 0, xOffset);
translationXBuilder.addFloat(tileView, "translationX", -xOffset, 0);
if (mQQSTileHeightAnimator == null) {
mQQSTileHeightAnimator = new HeightExpansionAnimator(this,
quickTileView.getHeight(), tileView.getHeight());
@@ -312,8 +325,10 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
quickTileView.getIcon(),
tileView.getIcon(),
view,
xOffset,
yOffset,
loc1,
translationXBuilder,
translationYBuilder
);
@@ -322,8 +337,10 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
quickTileView.getLabelContainer(),
tileView.getLabelContainer(),
view,
xOffset,
yOffset,
loc1,
translationXBuilder,
translationYBuilder
);
@@ -332,8 +349,10 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
quickTileView.getSecondaryIcon(),
tileView.getSecondaryIcon(),
view,
xOffset,
yOffset,
loc1,
translationXBuilder,
translationYBuilder
);
@@ -401,7 +420,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
mAllPagesDelayedAnimator = builder.build();
mAllViews.add(mSecurityFooter.getView());
translationYBuilder.setInterpolator(mQSExpansionPathInterpolator.getYInterpolator());
translationXBuilder.setInterpolator(mQSExpansionPathInterpolator.getXInterpolator());
mTranslationYAnimator = translationYBuilder.build();
mTranslationXAnimator = translationXBuilder.build();
if (mQQSTileHeightAnimator != null) {
mQQSTileHeightAnimator.setInterpolator(
mQSExpansionPathInterpolator.getYInterpolator());
@@ -474,6 +495,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
mFirstPageAnimator.setPosition(position);
mFirstPageDelayedAnimator.setPosition(position);
mTranslationYAnimator.setPosition(position);
mTranslationXAnimator.setPosition(position);
if (mQQSTileHeightAnimator != null) {
mQQSTileHeightAnimator.setPosition(position);
}