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

Commit 4a172241 authored by wilsonshih's avatar wilsonshih
Browse files

[RESTRICT AUTOMERGE]Animate back gesture with focusd window activity

Correct the animation target, top most activity can be finishing so
shouldn't be choose as animation target.

Bug: 245467978
Test: Start two activities in a task.
      Finish top activity, before the exit animation done, drive another
      back gesture.
      Verify the target should not point to the top activity.

Change-Id: I4d9d61bd566cafbeef90916cdf40a6fc9c8e13d7
parent dd2f2901
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ class BackNavigationController {
                        mBackNaviAnimationController = new BackNaviAnimationController(
                                backAnimationAdaptor.getRunner(), this,
                                currentActivity.getDisplayId());
                        prepareBackToHomeTransition(currentTask, prevTask);
                        prepareBackToHomeTransition(currentActivity, prevTask);
                        infoBuilder.setPrepareAnimation(true);
                    }
                } else {
@@ -489,8 +489,8 @@ class BackNavigationController {
        mWindowManagerService = wm;
    }

    private void prepareBackToHomeTransition(Task currentTask, Task homeTask) {
        final DisplayContent dc = currentTask.getDisplayContent();
    private void prepareBackToHomeTransition(ActivityRecord currentActivity, Task homeTask) {
        final DisplayContent dc = currentActivity.getDisplayContent();
        final ActivityRecord homeActivity = homeTask.getTopNonFinishingActivity();
        if (!homeActivity.mVisibleRequested) {
            homeActivity.setVisibility(true);
@@ -499,7 +499,7 @@ class BackNavigationController {
        dc.ensureActivitiesVisible(
                null /* starting */, 0 /* configChanges */,
                false /* preserveWindows */, true);
        mBackNaviAnimationController.initialize(homeActivity, currentTask.getTopMostActivity());
        mBackNaviAnimationController.initialize(homeActivity, currentActivity);
    }

    void finishAnimation() {