Loading libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java +6 −0 Original line number Diff line number Diff line Loading @@ -293,7 +293,13 @@ public class UnfoldTransitionHandler implements TransitionHandler, UnfoldListene @Override public void onFoldStateChanged(boolean isFolded) { if (isFolded) { // Reset unfold animation finished flag on folding, so it could be used next time // when we unfold the device as an indication that animation hasn't finished yet mAnimationFinished = false; // If we are currently animating unfold animation we should finish it because // the animation might not start and finish as the device was folded finishTransitionIfNeeded(); } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/unfold/UnfoldTransitionHandlerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -297,6 +297,32 @@ public class UnfoldTransitionHandlerTest { verify(finishCallback).onTransitionFinished(any()); } @Test public void fold_animationInProgress_finishesTransition() { TransitionRequestInfo requestInfo = createUnfoldTransitionRequestInfo(); TransitionFinishCallback finishCallback = mock(TransitionFinishCallback.class); // Unfold mShellUnfoldProgressProvider.onFoldStateChanged(/* isFolded= */ false); mUnfoldTransitionHandler.handleRequest(mTransition, requestInfo); mUnfoldTransitionHandler.startAnimation( mTransition, mock(TransitionInfo.class), mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class), finishCallback ); // Start animation but don't finish it mShellUnfoldProgressProvider.onStateChangeStarted(); mShellUnfoldProgressProvider.onStateChangeProgress(0.5f); // Fold mShellUnfoldProgressProvider.onFoldStateChanged(/* isFolded= */ true); verify(finishCallback).onTransitionFinished(any()); } @Test public void mergeAnimation_eatsDisplayOnlyTransitions() { TransitionRequestInfo requestInfo = createUnfoldTransitionRequestInfo(); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldTransitionHandler.java +6 −0 Original line number Diff line number Diff line Loading @@ -293,7 +293,13 @@ public class UnfoldTransitionHandler implements TransitionHandler, UnfoldListene @Override public void onFoldStateChanged(boolean isFolded) { if (isFolded) { // Reset unfold animation finished flag on folding, so it could be used next time // when we unfold the device as an indication that animation hasn't finished yet mAnimationFinished = false; // If we are currently animating unfold animation we should finish it because // the animation might not start and finish as the device was folded finishTransitionIfNeeded(); } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/unfold/UnfoldTransitionHandlerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -297,6 +297,32 @@ public class UnfoldTransitionHandlerTest { verify(finishCallback).onTransitionFinished(any()); } @Test public void fold_animationInProgress_finishesTransition() { TransitionRequestInfo requestInfo = createUnfoldTransitionRequestInfo(); TransitionFinishCallback finishCallback = mock(TransitionFinishCallback.class); // Unfold mShellUnfoldProgressProvider.onFoldStateChanged(/* isFolded= */ false); mUnfoldTransitionHandler.handleRequest(mTransition, requestInfo); mUnfoldTransitionHandler.startAnimation( mTransition, mock(TransitionInfo.class), mock(SurfaceControl.Transaction.class), mock(SurfaceControl.Transaction.class), finishCallback ); // Start animation but don't finish it mShellUnfoldProgressProvider.onStateChangeStarted(); mShellUnfoldProgressProvider.onStateChangeProgress(0.5f); // Fold mShellUnfoldProgressProvider.onFoldStateChanged(/* isFolded= */ true); verify(finishCallback).onTransitionFinished(any()); } @Test public void mergeAnimation_eatsDisplayOnlyTransitions() { TransitionRequestInfo requestInfo = createUnfoldTransitionRequestInfo(); Loading