Take new screen shot before kill previous one.
This issue happened while continues start rotation animation twice. For the second time startFreezingDisplay, if previous ScreenRotationAnimation object is animating, in original flow we would kill previous animation object which would remove the surfaces with a transaction, then take a new screen shot and apply those new surfaces with another transaction. Because the second screen shot is taken after previous animation's surfaces just been removed, so it may not fluent with original frame. To make the animation smooth, take the screen shot before kill previous screen rotation animation. Bug: 148192402 Test: Change display or font size in Settings quickly and monitoring no flicker occurred. Change-Id: Ie351a68e8b813e888756f9578da3a00c5c1c017f
This commit is contained in:
committed by
Wei Sheng Shih
parent
38e3d616bc
commit
42e9e4890b
@@ -5616,11 +5616,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
mLatencyTracker.onActionStart(ACTION_ROTATE_SCREEN);
|
||||
mExitAnimId = exitAnim;
|
||||
mEnterAnimId = enterAnim;
|
||||
ScreenRotationAnimation screenRotationAnimation =
|
||||
displayContent.getRotationAnimation();
|
||||
if (screenRotationAnimation != null) {
|
||||
screenRotationAnimation.kill();
|
||||
}
|
||||
|
||||
displayContent.updateDisplayInfo();
|
||||
final int originalRotation = overrideOriginalRotation != ROTATION_UNDEFINED
|
||||
|
||||
Reference in New Issue
Block a user