Freeze insets position for shell transition rotation
The insets-freeze should be enabled for all types of shell transition, e.g. change/open/close. Otherwise if the app changes insets flags and requests different orientation at the same time, the position of the insets provider (e.g. navigation bar) will show at a rotated position. Fixes: 237599512 Test: atest TransitionTests#testDisplayRotationChange Change-Id: I5723c8082f6c9d658f83c0e5064463870870283f
This commit is contained in:
@@ -357,7 +357,7 @@ class AsyncRotationController extends FadeAnimationController implements Consume
|
||||
* or seamless transformation in a rotated display.
|
||||
*/
|
||||
boolean shouldFreezeInsetsPosition(WindowState w) {
|
||||
return mTransitionOp == OP_APP_SWITCH && w.mTransitionController.inTransition()
|
||||
return mTransitionOp != OP_LEGACY && w.mTransitionController.inTransition()
|
||||
&& isTargetToken(w.mToken);
|
||||
}
|
||||
|
||||
|
||||
@@ -683,6 +683,7 @@ public class TransitionTests extends WindowTestsBase {
|
||||
assertTrue(ime.mToken.inTransition());
|
||||
assertTrue(task.inTransition());
|
||||
assertTrue(asyncRotationController.isTargetToken(decorToken));
|
||||
assertTrue(asyncRotationController.shouldFreezeInsetsPosition(navBar));
|
||||
|
||||
screenDecor.setOrientationChanging(false);
|
||||
// Status bar finishes drawing before the start transaction. Its fade-in animation will be
|
||||
|
||||
Reference in New Issue
Block a user