Loading services/core/java/com/android/server/wm/AppTransition.java +9 −8 Original line number Diff line number Diff line Loading @@ -501,12 +501,15 @@ public class AppTransition implements Dump { return a; } private Animation createClipRevealAnimationLocked(int transit, boolean enter, int appWidth, int appHeight) { private Animation createClipRevealAnimationLocked(int transit, boolean enter, Rect appFrame) { final Animation anim; if (enter) { // Reveal will expand and move faster in horizontal direction // Start from upper left of start and move to final position final int appWidth = appFrame.width(); final int appHeight = appFrame.height(); // Start from size of launch icon, expand to full width/height Animation clipAnimLR = new ClipRectLRAnimation( (appWidth - mNextAppTransitionStartWidth) / 2, Loading @@ -521,9 +524,9 @@ public class AppTransition implements Dump { // Start from middle of launch icon area, move to 0, 0 int startMiddleX = mNextAppTransitionStartX + (mNextAppTransitionStartWidth - appWidth) / 2; (mNextAppTransitionStartWidth - appWidth) / 2 - appFrame.left; int startMiddleY = mNextAppTransitionStartY + (mNextAppTransitionStartHeight - appHeight) / 2; (mNextAppTransitionStartHeight - appHeight) / 2 - appFrame.top; TranslateXAnimation translateX = new TranslateXAnimation( Animation.ABSOLUTE, startMiddleX, Animation.ABSOLUTE, 0); Loading Loading @@ -940,7 +943,7 @@ public class AppTransition implements Dump { Animation loadAnimation(WindowManager.LayoutParams lp, int transit, boolean enter, int appWidth, int appHeight, int orientation, Rect containingFrame, Rect contentInsets, boolean isFullScreen, boolean isVoiceInteraction) { Rect appFrame, boolean isFullScreen, boolean isVoiceInteraction) { Animation a; if (isVoiceInteraction && (transit == TRANSIT_ACTIVITY_OPEN || transit == TRANSIT_TASK_OPEN Loading Loading @@ -977,9 +980,7 @@ public class AppTransition implements Dump { + " anim=" + a + " nextAppTransition=ANIM_CUSTOM_IN_PLACE" + " transit=" + transit + " Callers=" + Debug.getCallers(3)); } else if (mNextAppTransitionType == NEXT_TRANSIT_TYPE_CLIP_REVEAL) { a = createClipRevealAnimationLocked(transit, enter, containingFrame.right - containingFrame.left, containingFrame.bottom - containingFrame.top); a = createClipRevealAnimationLocked(transit, enter, appFrame); if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) Slog.v(TAG, "applyAnimation:" + " anim=" + a + " nextAppTransition=ANIM_CLIP_REVEAL" Loading services/core/java/com/android/server/wm/WindowManagerService.java +6 −2 Original line number Diff line number Diff line Loading @@ -3412,6 +3412,7 @@ public class WindowManagerService extends IWindowManager.Stub WindowState win = atoken.findMainWindow(); Rect containingFrame = new Rect(0, 0, width, height); Rect contentInsets = new Rect(); Rect appFrame = new Rect(0, 0, width, height); boolean isFullScreen = true; if (win != null) { if (win.mContainingFrame != null) { Loading @@ -3420,6 +3421,9 @@ public class WindowManagerService extends IWindowManager.Stub if (win.mContentInsets != null) { contentInsets.set(win.mContentInsets); } if (win.mFrame != null) { appFrame.set(win.mFrame); } isFullScreen = ((win.mSystemUiVisibility & SYSTEM_UI_FLAGS_LAYOUT_STABLE_FULLSCREEN) == SYSTEM_UI_FLAGS_LAYOUT_STABLE_FULLSCREEN) || Loading @@ -3433,8 +3437,8 @@ public class WindowManagerService extends IWindowManager.Stub enter = false; } Animation a = mAppTransition.loadAnimation(lp, transit, enter, width, height, mCurConfiguration.orientation, containingFrame, contentInsets, isFullScreen, isVoiceInteraction); mCurConfiguration.orientation, containingFrame, contentInsets, appFrame, isFullScreen, isVoiceInteraction); if (a != null) { if (DEBUG_ANIM) { RuntimeException e = null; Loading services/core/java/com/android/server/wm/WindowState.java +4 −0 Original line number Diff line number Diff line Loading @@ -1635,6 +1635,10 @@ final class WindowState implements WindowManagerPolicy.WindowState { pw.println(); pw.print(prefix); pw.print("mSystemDecorRect="); mSystemDecorRect.printShortString(pw); pw.print(" last="); mLastSystemDecorRect.printShortString(pw); if (mWinAnimator.mHasClipRect) { pw.print(" mLastClipRect="); mWinAnimator.mLastClipRect.printShortString(pw); } pw.println(); } if (mEnforceSizeCompat) { Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +1 −3 Original line number Diff line number Diff line Loading @@ -1139,8 +1139,6 @@ class WindowStateAnimator { mShownAlpha *= appTransformation.getAlpha(); if (appTransformation.hasClipRect()) { mClipRect.set(appTransformation.getClipRect()); // Account for non-fullscreen windows mClipRect.offset(frame.left, frame.top); if (mWin.mHScale > 0) { mClipRect.left /= mWin.mHScale; mClipRect.right /= mWin.mHScale; Loading Loading @@ -1223,7 +1221,7 @@ class WindowStateAnimator { } } void applyDecorRect(final Rect decorRect) { private void applyDecorRect(final Rect decorRect) { final WindowState w = mWin; final int width = w.mFrame.width(); final int height = w.mFrame.height(); Loading Loading
services/core/java/com/android/server/wm/AppTransition.java +9 −8 Original line number Diff line number Diff line Loading @@ -501,12 +501,15 @@ public class AppTransition implements Dump { return a; } private Animation createClipRevealAnimationLocked(int transit, boolean enter, int appWidth, int appHeight) { private Animation createClipRevealAnimationLocked(int transit, boolean enter, Rect appFrame) { final Animation anim; if (enter) { // Reveal will expand and move faster in horizontal direction // Start from upper left of start and move to final position final int appWidth = appFrame.width(); final int appHeight = appFrame.height(); // Start from size of launch icon, expand to full width/height Animation clipAnimLR = new ClipRectLRAnimation( (appWidth - mNextAppTransitionStartWidth) / 2, Loading @@ -521,9 +524,9 @@ public class AppTransition implements Dump { // Start from middle of launch icon area, move to 0, 0 int startMiddleX = mNextAppTransitionStartX + (mNextAppTransitionStartWidth - appWidth) / 2; (mNextAppTransitionStartWidth - appWidth) / 2 - appFrame.left; int startMiddleY = mNextAppTransitionStartY + (mNextAppTransitionStartHeight - appHeight) / 2; (mNextAppTransitionStartHeight - appHeight) / 2 - appFrame.top; TranslateXAnimation translateX = new TranslateXAnimation( Animation.ABSOLUTE, startMiddleX, Animation.ABSOLUTE, 0); Loading Loading @@ -940,7 +943,7 @@ public class AppTransition implements Dump { Animation loadAnimation(WindowManager.LayoutParams lp, int transit, boolean enter, int appWidth, int appHeight, int orientation, Rect containingFrame, Rect contentInsets, boolean isFullScreen, boolean isVoiceInteraction) { Rect appFrame, boolean isFullScreen, boolean isVoiceInteraction) { Animation a; if (isVoiceInteraction && (transit == TRANSIT_ACTIVITY_OPEN || transit == TRANSIT_TASK_OPEN Loading Loading @@ -977,9 +980,7 @@ public class AppTransition implements Dump { + " anim=" + a + " nextAppTransition=ANIM_CUSTOM_IN_PLACE" + " transit=" + transit + " Callers=" + Debug.getCallers(3)); } else if (mNextAppTransitionType == NEXT_TRANSIT_TYPE_CLIP_REVEAL) { a = createClipRevealAnimationLocked(transit, enter, containingFrame.right - containingFrame.left, containingFrame.bottom - containingFrame.top); a = createClipRevealAnimationLocked(transit, enter, appFrame); if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) Slog.v(TAG, "applyAnimation:" + " anim=" + a + " nextAppTransition=ANIM_CLIP_REVEAL" Loading
services/core/java/com/android/server/wm/WindowManagerService.java +6 −2 Original line number Diff line number Diff line Loading @@ -3412,6 +3412,7 @@ public class WindowManagerService extends IWindowManager.Stub WindowState win = atoken.findMainWindow(); Rect containingFrame = new Rect(0, 0, width, height); Rect contentInsets = new Rect(); Rect appFrame = new Rect(0, 0, width, height); boolean isFullScreen = true; if (win != null) { if (win.mContainingFrame != null) { Loading @@ -3420,6 +3421,9 @@ public class WindowManagerService extends IWindowManager.Stub if (win.mContentInsets != null) { contentInsets.set(win.mContentInsets); } if (win.mFrame != null) { appFrame.set(win.mFrame); } isFullScreen = ((win.mSystemUiVisibility & SYSTEM_UI_FLAGS_LAYOUT_STABLE_FULLSCREEN) == SYSTEM_UI_FLAGS_LAYOUT_STABLE_FULLSCREEN) || Loading @@ -3433,8 +3437,8 @@ public class WindowManagerService extends IWindowManager.Stub enter = false; } Animation a = mAppTransition.loadAnimation(lp, transit, enter, width, height, mCurConfiguration.orientation, containingFrame, contentInsets, isFullScreen, isVoiceInteraction); mCurConfiguration.orientation, containingFrame, contentInsets, appFrame, isFullScreen, isVoiceInteraction); if (a != null) { if (DEBUG_ANIM) { RuntimeException e = null; Loading
services/core/java/com/android/server/wm/WindowState.java +4 −0 Original line number Diff line number Diff line Loading @@ -1635,6 +1635,10 @@ final class WindowState implements WindowManagerPolicy.WindowState { pw.println(); pw.print(prefix); pw.print("mSystemDecorRect="); mSystemDecorRect.printShortString(pw); pw.print(" last="); mLastSystemDecorRect.printShortString(pw); if (mWinAnimator.mHasClipRect) { pw.print(" mLastClipRect="); mWinAnimator.mLastClipRect.printShortString(pw); } pw.println(); } if (mEnforceSizeCompat) { Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +1 −3 Original line number Diff line number Diff line Loading @@ -1139,8 +1139,6 @@ class WindowStateAnimator { mShownAlpha *= appTransformation.getAlpha(); if (appTransformation.hasClipRect()) { mClipRect.set(appTransformation.getClipRect()); // Account for non-fullscreen windows mClipRect.offset(frame.left, frame.top); if (mWin.mHScale > 0) { mClipRect.left /= mWin.mHScale; mClipRect.right /= mWin.mHScale; Loading Loading @@ -1223,7 +1221,7 @@ class WindowStateAnimator { } } void applyDecorRect(final Rect decorRect) { private void applyDecorRect(final Rect decorRect) { final WindowState w = mWin; final int width = w.mFrame.width(); final int height = w.mFrame.height(); Loading