From 2e7f3bdcc9ec0b3e95b565b943ecee2210f4b937 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 5 Sep 2014 13:17:22 +0200 Subject: Removing unnecessary delays, ensuring transition thumbnail is the size of the header. (Bug. 16987565) Change-Id: Ic104876c5fe16997eca00e0a2b3d8644c927120c --- .../core/java/com/android/server/am/ActivityRecord.java | 13 ++++++------- services/core/java/com/android/server/wm/AppTransition.java | 12 +++++++++--- .../java/com/android/server/wm/WindowManagerService.java | 5 +++-- 3 files changed, 18 insertions(+), 12 deletions(-) (limited to 'services') diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 77b4cc9..e043f03 100755 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -698,12 +698,12 @@ final class ActivityRecord { case ActivityOptions.ANIM_SCALE_UP: service.mWindowManager.overridePendingAppTransitionScaleUp( pendingOptions.getStartX(), pendingOptions.getStartY(), - pendingOptions.getStartWidth(), pendingOptions.getStartHeight()); + pendingOptions.getWidth(), pendingOptions.getHeight()); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), - pendingOptions.getStartX()+pendingOptions.getStartWidth(), - pendingOptions.getStartY()+pendingOptions.getStartHeight())); + pendingOptions.getStartX()+pendingOptions.getWidth(), + pendingOptions.getStartY()+pendingOptions.getHeight())); } break; case ActivityOptions.ANIM_THUMBNAIL_SCALE_UP: @@ -728,15 +728,14 @@ final class ActivityRecord { service.mWindowManager.overridePendingAppTransitionAspectScaledThumb( pendingOptions.getThumbnail(), pendingOptions.getStartX(), pendingOptions.getStartY(), + pendingOptions.getWidth(), pendingOptions.getHeight(), pendingOptions.getOnAnimationStartListener(), (animationType == ActivityOptions.ANIM_THUMBNAIL_ASPECT_SCALE_UP)); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), - pendingOptions.getStartX() - + pendingOptions.getThumbnail().getWidth(), - pendingOptions.getStartY() - + pendingOptions.getThumbnail().getHeight())); + pendingOptions.getStartX() + pendingOptions.getWidth(), + pendingOptions.getStartY() + pendingOptions.getHeight())); } break; default: diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index aabb8f7..bfc7659 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -569,9 +569,9 @@ public class AppTransition implements Dump { int appWidth, int appHeight, int orientation, int transit, Rect containingFrame, Rect contentInsets, boolean isFullScreen) { Animation a; - final int thumbWidthI = mNextAppTransitionThumbnail.getWidth(); + final int thumbWidthI = mNextAppTransitionStartWidth; final float thumbWidth = thumbWidthI > 0 ? thumbWidthI : 1; - final int thumbHeightI = mNextAppTransitionThumbnail.getHeight(); + final int thumbHeightI = mNextAppTransitionStartHeight; final float thumbHeight = thumbHeightI > 0 ? thumbHeightI : 1; // Used for the ENTER_SCALE_UP and EXIT_SCALE_DOWN transitions @@ -993,7 +993,7 @@ public class AppTransition implements Dump { } void overridePendingAppTransitionAspectScaledThumb(Bitmap srcThumb, int startX, int startY, - IRemoteCallback startedCallback, boolean scaleUp) { + int targetWidth, int targetHeight, IRemoteCallback startedCallback, boolean scaleUp) { if (isTransitionSet()) { mNextAppTransitionType = scaleUp ? NEXT_TRANSIT_TYPE_THUMBNAIL_ASPECT_SCALE_UP : NEXT_TRANSIT_TYPE_THUMBNAIL_ASPECT_SCALE_DOWN; @@ -1002,6 +1002,8 @@ public class AppTransition implements Dump { mNextAppTransitionScaleUp = scaleUp; mNextAppTransitionStartX = startX; mNextAppTransitionStartY = startY; + mNextAppTransitionStartWidth = targetWidth; + mNextAppTransitionStartHeight = targetHeight; postAnimationCallback(); mNextAppTransitionCallback = startedCallback; } else { @@ -1138,6 +1140,10 @@ public class AppTransition implements Dump { pw.print(mNextAppTransitionStartX); pw.print(" mNextAppTransitionStartY="); pw.println(mNextAppTransitionStartY); + pw.print(" mNextAppTransitionStartWidth="); + pw.print(mNextAppTransitionStartWidth); + pw.print(" mNextAppTransitionStartHeight="); + pw.println(mNextAppTransitionStartHeight); pw.print(" mNextAppTransitionScaleUp="); pw.println(mNextAppTransitionScaleUp); break; } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index a1afe29..c36a998 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -4031,10 +4031,11 @@ public class WindowManagerService extends IWindowManager.Stub @Override public void overridePendingAppTransitionAspectScaledThumb(Bitmap srcThumb, int startX, - int startY, IRemoteCallback startedCallback, boolean scaleUp) { + int startY, int targetWidth, int targetHeight, IRemoteCallback startedCallback, + boolean scaleUp) { synchronized(mWindowMap) { mAppTransition.overridePendingAppTransitionAspectScaledThumb(srcThumb, startX, - startY, startedCallback, scaleUp); + startY, targetWidth, targetHeight, startedCallback, scaleUp); } } -- cgit v1.1