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

Commit 7f94d3d0 authored by wilsonshih's avatar wilsonshih
Browse files

Do not prepare PB animation if previous activity has no process.(cont)

Add a missing check from fcb47c92
for cross-task operations.

Flag: EXEMPT bugfix
Bug: 423522798
Test: atest BackNavigationControllerTests
Change-Id: I36e01cd1d505105833ae875a296abd640c79e6d7
parent 79071c28
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -389,7 +389,8 @@ class BackNavigationController {
                    if ((prevTask.inMultiWindowMode() && prevParent != currParent)
                            // Do not animate to translucent task, it could be trampoline.
                            || hasTranslucentActivity(currentActivity, prevActivities)
                            || !allActivitiesHaveWindow(prevActivities)) {
                            || !allActivitiesHaveWindow(prevActivities)
                            || !allActivitiesHaveProcesses(prevActivities)) {
                        backType = BackNavigationInfo.TYPE_CALLBACK;
                    } else {
                        removedWindowContainer = prevTask;
+9 −0
Original line number Diff line number Diff line
@@ -209,9 +209,18 @@ public class BackNavigationControllerTests extends WindowTestsBase {
        assertThat(typeToString(backNavigationInfo.getType()))
                .isEqualTo(typeToString(BackNavigationInfo.TYPE_CROSS_TASK));

        // Reset drawing status to test no process
        backNavigationInfo.onBackNavigationFinished(false);
        mBackNavigationController.clearBackAnimations(true);
        doReturn(false).when(recordA).hasProcess();
        backNavigationInfo = startBackNavigation();
        assertThat(typeToString(backNavigationInfo.getType()))
                .isEqualTo(typeToString(BackNavigationInfo.TYPE_CALLBACK));

        // Reset drawing status to test no window activity.
        backNavigationInfo.onBackNavigationFinished(false);
        mBackNavigationController.clearBackAnimations(true);
        doReturn(true).when(recordA).hasProcess();
        doReturn(null).when(recordA).findMainWindow();
        backNavigationInfo = startBackNavigation();
        assertThat(typeToString(backNavigationInfo.getType()))