Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3dc5d58 authored by Adrian Roos's avatar Adrian Roos Committed by Austin Borger
Browse files

De-flake testSystemDrivenInsetsAnimationLoggingListener_onReady

Test: atest InsetsControllerTest#testSystemDrivenInsetsAnimationLoggingListener_onReady
Fixes: 270547415
Change-Id: Ie72d5b5c538faa038a58033887716bdd870f35fa
Merged-In: Ie72d5b5c538faa038a58033887716bdd870f35fa
(cherry picked from commit 8e011cea)
parent 80649238
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -237,17 +237,22 @@ public class InsetsControllerTest {

    @Test
    public void testSystemDrivenInsetsAnimationLoggingListener_onReady() {
        var loggingListener = mock(WindowInsetsAnimationControlListener.class);

        prepareControls();
        // only the original thread that created view hierarchy can touch its views
        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
            WindowInsetsAnimationControlListener loggingListener =
                    mock(WindowInsetsAnimationControlListener.class);
            mController.setSystemDrivenInsetsAnimationLoggingListener(loggingListener);
            mController.getSourceConsumer(ITYPE_IME).onWindowFocusGained(true);
            // since there is no focused view, forcefully make IME visible.
            mController.show(Type.ime(), true /* fromIme */);
            verify(loggingListener).onReady(notNull(), anyInt());
            mController.show(WindowInsets.Type.ime(), true /* fromIme */);
            // When using the animation thread, this must not invoke onReady()
            mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
        });
        // Wait for onReady() being dispatched on the animation thread.
        InsetsAnimationThread.get().getThreadHandler().runWithScissors(() -> {}, 500);

        verify(loggingListener).onReady(notNull(), anyInt());
    }

    @Test