Loading services/core/java/com/android/server/wm/BackNavigationController.java +2 −1 Original line number Diff line number Diff line Loading @@ -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; Loading services/tests/wmtests/src/com/android/server/wm/BackNavigationControllerTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -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())) Loading Loading
services/core/java/com/android/server/wm/BackNavigationController.java +2 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
services/tests/wmtests/src/com/android/server/wm/BackNavigationControllerTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -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())) Loading