Translate the taskbar icons to match nav handle shape.

- We need to reset icon alignment whenever icon layout bound
  changes. This fixes the issue where we build an icon
  alignment animator before any of the views are laid out.
- Separated animation logic between.
  createTransientAnimToIsStashed and createAnimToIsStashed
* The values still require a bit more tuning but this gets us
  a lot closer to spec for many of the motion polish.

Bug: 267806083
Bug: 246634367
Bug: 246635237
Test: manual
Change-Id: Id122134b22ef4e418ce632e4a8137239dc8bb313
This commit is contained in:
Jon Miranda
2023-02-14 21:02:25 -08:00
parent 202c68c8a2
commit 13e9b9f889
11 changed files with 449 additions and 63 deletions

View File

@@ -104,6 +104,10 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
private final PointF mTranslationForReorderPreview = new PointF(0, 0);
private float mTranslationXForTaskbarAlignmentAnimation = 0f;
private float mTranslationYForTaskbarAlignmentAnimation = 0f;
private float mTranslationXForTaskbarRevealAnimation = 0f;
private float mTranslationYForTaskbarRevealAnimation = 0f;
private final PointF mTranslationForMoveFromCenterAnimation = new PointF(0, 0);
@@ -952,11 +956,17 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
}
private void updateTranslation() {
super.setTranslationX(mTranslationForReorderBounce.x + mTranslationForReorderPreview.x
super.setTranslationX(mTranslationForReorderBounce.x
+ mTranslationForReorderPreview.x
+ mTranslationForMoveFromCenterAnimation.x
+ mTranslationXForTaskbarAlignmentAnimation);
super.setTranslationY(mTranslationForReorderBounce.y + mTranslationForReorderPreview.y
+ mTranslationForMoveFromCenterAnimation.y);
+ mTranslationXForTaskbarAlignmentAnimation
+ mTranslationXForTaskbarRevealAnimation
);
super.setTranslationY(mTranslationForReorderBounce.y
+ mTranslationForReorderPreview.y
+ mTranslationForMoveFromCenterAnimation.y
+ mTranslationYForTaskbarAlignmentAnimation
+ mTranslationYForTaskbarRevealAnimation);
}
public void setReorderBounceOffset(float x, float y) {
@@ -1012,6 +1022,51 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
return mTranslationXForTaskbarAlignmentAnimation;
}
/**
* Sets translationX for taskbar to launcher alignment animation
*/
public void setTranslationYForTaskbarAlignmentAnimation(float translationY) {
mTranslationYForTaskbarAlignmentAnimation = translationY;
updateTranslation();
}
/**
* Returns translationY value for taskbar to launcher alignment animation
*/
public float getTranslationYForTaskbarAlignmentAnimation() {
return mTranslationYForTaskbarAlignmentAnimation;
}
/**
* Sets translationX value for taskbar reveal animation
*/
public void setTranslationXForTaskbarRevealAnimation(float translationX) {
mTranslationXForTaskbarRevealAnimation = translationX;
updateTranslation();
}
/**
* Returns translation values for taskbar reveal animation
*/
public float getTranslationXForTaskbarRevealAnimation() {
return mTranslationXForTaskbarRevealAnimation;
}
/**
* Sets translationY value for taskbar reveal animation
*/
public void setTranslationYForTaskbarRevealAnimation(float translationY) {
mTranslationYForTaskbarRevealAnimation = translationY;
updateTranslation();
}
/**
* Returns translationY values for taskbar reveal animation
*/
public float getTranslationYForTaskbarRevealAnimation() {
return mTranslationYForTaskbarRevealAnimation;
}
public View getView() {
return this;
}