Only fade window token on exact rotation change
The rotation animation may apply without rotation degree change
to freeze display for display configuration change. The duration
is shorter so it is unnecessary to fade for covering frozen time.
Bug: 185403130
Test: DisplayContentTests#testHybridRotationAnimation
Test: Toggle dark theme from quick setting.
The notification shade should not disappear a while.
Change-Id: Ia943a9025bb4ab4a7e804e5e67648c9e8302a77b
This commit is contained in:
@@ -2998,6 +2998,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
// Hide the windows which are not significant in rotation animation. So that the windows
|
||||
// don't need to block the unfreeze time.
|
||||
if (screenRotationAnimation != null && screenRotationAnimation.hasScreenshot()
|
||||
// Do not fade for freezing without rotation change.
|
||||
&& mDisplayRotation.getRotation() != getWindowConfiguration().getRotation()
|
||||
&& mFadeRotationAnimationController == null) {
|
||||
startFadeRotationAnimation(false /* shouldDebounce */);
|
||||
}
|
||||
|
||||
@@ -1275,6 +1275,7 @@ public class DisplayContentTests extends WindowTestsBase {
|
||||
// Assume that the display rotation is changed so it is frozen in preparation for animation.
|
||||
doReturn(true).when(rotationAnim).hasScreenshot();
|
||||
mWm.mDisplayFrozen = true;
|
||||
displayContent.getDisplayRotation().setRotation((displayContent.getRotation() + 1) % 4);
|
||||
displayContent.setRotationAnimation(rotationAnim);
|
||||
// The fade rotation animation also starts to hide some non-app windows.
|
||||
assertNotNull(displayContent.getFadeRotationAnimationController());
|
||||
|
||||
Reference in New Issue
Block a user