Make thumbnail header animation match multi window thumbnail animation.
Change-Id: Ib21c7c6300d58f08132aadae3aa68439793936d2
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index a2307f9..dfdb29c 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -651,15 +651,15 @@
* This animation runs for the thumbnail that gets cross faded with the enter/exit activity
* when a thumbnail is specified with the activity options.
*/
- Animation createThumbnailAspectScaleAnimationLocked(int appWidth, int appHeight,
- int deviceWidth) {
+ Animation createThumbnailAspectScaleAnimationLocked(Rect appRect) {
Animation a;
final int thumbWidthI = mNextAppTransitionThumbnail.getWidth();
final float thumbWidth = thumbWidthI > 0 ? thumbWidthI : 1;
final int thumbHeightI = mNextAppTransitionThumbnail.getHeight();
final float thumbHeight = thumbHeightI > 0 ? thumbHeightI : 1;
+ final int appWidth = appRect.width();
- float scaleW = deviceWidth / thumbWidth;
+ float scaleW = appWidth / thumbWidth;
float unscaledHeight = thumbHeight * scaleW;
float unscaledStartY = mNextAppTransitionStartY - (unscaledHeight - thumbHeight) / 2f;
if (mNextAppTransitionScaleUp) {
@@ -672,8 +672,10 @@
Animation alpha = new AlphaAnimation(1, 0);
alpha.setInterpolator(mThumbnailFadeOutInterpolator);
alpha.setDuration(THUMBNAIL_APP_TRANSITION_ALPHA_DURATION);
- Animation translate = new TranslateAnimation(0, 0, 0, -unscaledStartY +
- mNextAppTransitionInsets.top);
+ final float toX = appRect.left + appRect.width() / 2 -
+ (mNextAppTransitionStartX + thumbWidth / 2);
+ final float toY = appRect.top + mNextAppTransitionInsets.top + -unscaledStartY;
+ Animation translate = new TranslateAnimation(0, toX, 0, toY);
translate.setInterpolator(mTouchResponseInterpolator);
translate.setDuration(THUMBNAIL_APP_TRANSITION_DURATION);
@@ -706,7 +708,7 @@
a = set;
}
- return prepareThumbnailAnimationWithDuration(a, appWidth, appHeight, 0,
+ return prepareThumbnailAnimationWithDuration(a, appWidth, appRect.height(), 0,
mTouchResponseInterpolator);
}