summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Filip Gruszczynski <gruszczy@google.com> 2015-10-14 13:57:55 -0700
committer Filip Gruszczynski <gruszczy@google.com> 2015-10-15 09:25:23 -0700
commitefd3d1b41f5c9ced2b6eed4ab6f95a267bcde9f2 (patch)
treeb108dbc26aa71efb5775c8855bd3aa14f4383306
parentb3a54f91fde6121b8bf07b57931fc5455be3ba42 (diff)
Fix misaligned from and to recents animation.
Because of the small translation that accounts for the status bar, the animating window gets cropped at the beginning of from recents and at the end of to recents animation. Change-Id: I36878c6ff84903db05335890b03199878174c5af
-rw-r--r--services/core/java/com/android/server/wm/AppTransition.java28
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java2
2 files changed, 12 insertions, 18 deletions
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index cc51d204e98d..9f44fea94d4a 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -760,26 +760,24 @@ public class AppTransition implements Dump {
a = createAspectScaledThumbnailEnterNonFullscreenAnimationLocked(
containingFrame, surfaceInsets, taskId);
} else {
+ mTmpFromClipRect.set(containingFrame);
+ // exclude top screen decor (status bar) region from the source clip.
+ mTmpFromClipRect.top = contentInsets.top;
// App window scaling up to become full screen
+ mTmpToClipRect.set(containingFrame);
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// In portrait, we scale the width and clip to the top/left square
scale = thumbWidth / appWidth;
scaledTopDecor = (int) (scale * contentInsets.top);
int unscaledThumbHeight = (int) (thumbHeight / scale);
- mTmpFromClipRect.set(containingFrame);
- mTmpFromClipRect.bottom = (mTmpFromClipRect.top + unscaledThumbHeight);
- mTmpToClipRect.set(containingFrame);
+ mTmpFromClipRect.bottom = mTmpFromClipRect.top + unscaledThumbHeight;
} else {
// In landscape, we scale the height and clip to the top/left square
scale = thumbHeight / (appHeight - contentInsets.top);
scaledTopDecor = (int) (scale * contentInsets.top);
int unscaledThumbWidth = (int) (thumbWidth / scale);
- mTmpFromClipRect.set(containingFrame);
- mTmpFromClipRect.right = (mTmpFromClipRect.left + unscaledThumbWidth);
- mTmpToClipRect.set(containingFrame);
+ mTmpFromClipRect.right = mTmpFromClipRect.left + unscaledThumbWidth;
}
- // exclude top screen decor (status bar) region from the source clip.
- mTmpFromClipRect.top = contentInsets.top;
mNextAppTransitionInsets.set(contentInsets);
@@ -821,25 +819,23 @@ public class AppTransition implements Dump {
}
case THUMBNAIL_TRANSITION_EXIT_SCALE_DOWN: {
// App window scaling down from full screen
+ mTmpFromClipRect.set(containingFrame);
+ mTmpToClipRect.set(containingFrame);
+ // exclude top screen decor (status bar) region from the destination clip.
+ mTmpToClipRect.top = contentInsets.top;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// In portrait, we scale the width and clip to the top/left square
scale = thumbWidth / appWidth;
scaledTopDecor = (int) (scale * contentInsets.top);
int unscaledThumbHeight = (int) (thumbHeight / scale);
- mTmpFromClipRect.set(containingFrame);
- mTmpToClipRect.set(containingFrame);
- mTmpToClipRect.bottom = (mTmpToClipRect.top + unscaledThumbHeight);
+ mTmpToClipRect.bottom = mTmpToClipRect.top + unscaledThumbHeight;
} else {
// In landscape, we scale the height and clip to the top/left square
scale = thumbHeight / (appHeight - contentInsets.top);
scaledTopDecor = (int) (scale * contentInsets.top);
int unscaledThumbWidth = (int) (thumbWidth / scale);
- mTmpFromClipRect.set(containingFrame);
- mTmpToClipRect.set(containingFrame);
- mTmpToClipRect.right = (mTmpToClipRect.left + unscaledThumbWidth);
+ mTmpToClipRect.right = mTmpToClipRect.left + unscaledThumbWidth;
}
- // exclude top screen decor (status bar) region from the destination clip.
- mTmpToClipRect.top = contentInsets.top;
mNextAppTransitionInsets.set(contentInsets);
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 3c897fa519b8..191360426e94 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -1190,8 +1190,6 @@ class WindowStateAnimator {
mDtDy = tmpFloats[Matrix.MSCALE_Y];
float x = tmpFloats[Matrix.MTRANS_X];
float y = tmpFloats[Matrix.MTRANS_Y];
- int w = frame.width();
- int h = frame.height();
mWin.mShownPosition.set((int) x, (int) y);
// Now set the alpha... but because our current hardware