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

Commit e437099d authored by Arthur Hung's avatar Arthur Hung Committed by Automerger Merge Worker
Browse files

Merge "Fix back gesture send to wrong focus window" into tm-dev am: 4bf81d57 am: dc621522

parents 81dbc596 dc621522
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -246,9 +246,13 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont
     * {@link BackAnimationController}
     */
    public void onMotionEvent(MotionEvent event, int action, @BackEvent.SwipeEdge int swipeEdge) {
        if (action == MotionEvent.ACTION_DOWN) {
        if (action == MotionEvent.ACTION_MOVE) {
            if (!mBackGestureStarted) {
                // Let the animation initialized here to make sure the onPointerDownOutsideFocus
                // could be happened when ACTION_DOWN, it may change the current focus that we
                // would access it when startBackNavigation.
                initAnimation(event);
        } else if (action == MotionEvent.ACTION_MOVE) {
            }
            onMove(event, swipeEdge);
        } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
            ProtoLog.d(WM_SHELL_BACK_PREVIEW,
+2 −3
Original line number Diff line number Diff line
@@ -209,12 +209,11 @@ public class BackAnimationControllerTest {
        createNavigationInfo(animationTarget, null, null,
                BackNavigationInfo.TYPE_RETURN_TO_HOME, null);

        // Check that back start is dispatched.
        doMotionEvent(MotionEvent.ACTION_DOWN, 0);
        verify(mIOnBackInvokedCallback).onBackStarted();

        // Check that back progress is dispatched.
        // Check that back start and progress is dispatched when first move.
        doMotionEvent(MotionEvent.ACTION_MOVE, 100);
        verify(mIOnBackInvokedCallback).onBackStarted();
        ArgumentCaptor<BackEvent> backEventCaptor = ArgumentCaptor.forClass(BackEvent.class);
        verify(mIOnBackInvokedCallback).onBackProgressed(backEventCaptor.capture());
        assertEquals(animationTarget, backEventCaptor.getValue().getDepartingAnimationTarget());
+1 −8
Original line number Diff line number Diff line
@@ -124,8 +124,7 @@ class BackNavigationController {
                    LocalServices.getService(WindowManagerInternal.class);
            IBinder focusedWindowToken = windowManagerInternal.getFocusedWindowToken();

            window = wmService.windowForClientLocked(null, focusedWindowToken,
                    false /* throwOnError */);
            window = wmService.getFocusedWindowLocked();

            if (window == null) {
                EmbeddedWindowController.EmbeddedWindow embeddedWindow =
@@ -146,12 +145,6 @@ class BackNavigationController {
                        "Focused window found using getFocusedWindowToken");
            }

            if (window == null) {
                window = wmService.getFocusedWindowLocked();
                ProtoLog.d(WM_DEBUG_BACK_PREVIEW,
                        "Focused window found using wmService.getFocusedWindowLocked()");
            }

            if (window == null) {
                // We don't have any focused window, fallback ont the top currentTask of the focused
                // display.
+1 −0
Original line number Diff line number Diff line
@@ -306,6 +306,7 @@ public class BackNavigationControllerTests extends WindowTestsBase {
        if (focus) {
            doReturn(window.getWindowInfo().token)
                    .when(mWindowManagerInternal).getFocusedWindowToken();
            doReturn(window).when(mWm).getFocusedWindowLocked();
        }
    }
}