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

Commit 2b006fb2 authored by shawnlin's avatar shawnlin
Browse files

Detach the nav once the endTarget is determined as HOME

Bug: 189900722
Test: manual - swipe up to home from an app and observe the nav
Change-Id: I421de17fe4d8413deaf9ebd63166a6d2d00d096e
parent b177133e
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -972,6 +972,10 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        }
        if (endTarget == HOME) {
            duration = HOME_DURATION;
            // Early detach the nav bar once the endTarget is determined as HOME
            if (mRecentsAnimationController != null) {
                mRecentsAnimationController.detachNavigationBarFromApp(true);
            }
        } else if (endTarget == RECENTS) {
            if (mRecentsView != null) {
                int nearestPage = mRecentsView.getDestinationPage();
@@ -1496,7 +1500,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        if (LIVE_TILE.get()) {
            mStateCallback.setStateOnUiThread(STATE_CURRENT_TASK_FINISHED);
            if (mRecentsAnimationController != null) {
                mRecentsAnimationController.getController().detachNavigationBarFromApp(true);
                mRecentsAnimationController.detachNavigationBarFromApp(true);
            }
        } else if (!hasTargets() || mRecentsAnimationController == null) {
            // If there are no targets or the animation not started, then there is nothing to finish
+8 −0
Original line number Diff line number Diff line
@@ -154,6 +154,14 @@ public class RecentsAnimationController {
        });
    }

    /**
     * @see RecentsAnimationControllerCompat#detachNavigationBarFromApp
     */
    @UiThread
    public void detachNavigationBarFromApp(boolean moveHomeToTop) {
        UI_HELPER_EXECUTOR.execute(() -> mController.detachNavigationBarFromApp(moveHomeToTop));
    }

    /**
     * Sets the final surface transaction on a Task. This is used by Launcher to notify the system
     * that animating Activity to PiP has completed and the associated task surface should be