Loading services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -559,7 +559,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { return false; } final int sourceWindowingMode = source.getWindowingMode(); final int sourceWindowingMode = source.getTask().getWindowingMode(); if (sourceWindowingMode != WINDOWING_MODE_FULLSCREEN && sourceWindowingMode != WINDOWING_MODE_FREEFORM) { return false; Loading services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +2 −1 Original line number Diff line number Diff line Loading @@ -1679,9 +1679,10 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testResultCanceledWhenNotAllowedStartingActivity() { final Task task = new TaskBuilder(mSupervisor).build(); final ActivityStarter starter = prepareStarter(0, false); final ActivityRecord targetRecord = new ActivityBuilder(mAtm).build(); final ActivityRecord sourceRecord = new ActivityBuilder(mAtm).build(); final ActivityRecord sourceRecord = new ActivityBuilder(mAtm).setTask(task).build(); targetRecord.resultTo = sourceRecord; // Abort the activity start and ensure the sourceRecord gets the result (RESULT_CANCELED). Loading services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java +33 −0 Original line number Diff line number Diff line Loading @@ -678,6 +678,39 @@ public class TaskLaunchParamsModifierTests extends WindowTestsBase { WINDOWING_MODE_FULLSCREEN); } @Test public void testInheritsSourceTaskWindowingModeWhenActivityIsInDifferentWindowingMode() { final TestDisplayContent fullscreenDisplay = createNewDisplayContent( WINDOWING_MODE_FULLSCREEN); final ActivityRecord source = createSourceActivity(fullscreenDisplay); source.setWindowingMode(WINDOWING_MODE_PINNED); source.getTask().setWindowingMode(WINDOWING_MODE_FREEFORM); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setSource(source).calculate()); assertEquivalentWindowingMode(WINDOWING_MODE_FREEFORM, mResult.mWindowingMode, WINDOWING_MODE_FULLSCREEN); } @Test public void testDoesNotInheritsSourceTaskWindowingModeWhenActivityIsInFreeformWindowingMode() { // The activity could end up in different windowing mode state after calling finish() // while the task would still hold the WINDOWING_MODE_PINNED state, or in other words // be still in the Picture in Picture mode. final TestDisplayContent fullscreenDisplay = createNewDisplayContent( WINDOWING_MODE_FULLSCREEN); final ActivityRecord source = createSourceActivity(fullscreenDisplay); source.setWindowingMode(WINDOWING_MODE_FREEFORM); source.getTask().setWindowingMode(WINDOWING_MODE_PINNED); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setSource(source).calculate()); assertEquivalentWindowingMode(WINDOWING_MODE_FULLSCREEN, mResult.mWindowingMode, WINDOWING_MODE_FULLSCREEN); } @Test public void testKeepsPictureInPictureLaunchModeInOptions() { Loading Loading
services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -559,7 +559,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { return false; } final int sourceWindowingMode = source.getWindowingMode(); final int sourceWindowingMode = source.getTask().getWindowingMode(); if (sourceWindowingMode != WINDOWING_MODE_FULLSCREEN && sourceWindowingMode != WINDOWING_MODE_FREEFORM) { return false; Loading
services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +2 −1 Original line number Diff line number Diff line Loading @@ -1679,9 +1679,10 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testResultCanceledWhenNotAllowedStartingActivity() { final Task task = new TaskBuilder(mSupervisor).build(); final ActivityStarter starter = prepareStarter(0, false); final ActivityRecord targetRecord = new ActivityBuilder(mAtm).build(); final ActivityRecord sourceRecord = new ActivityBuilder(mAtm).build(); final ActivityRecord sourceRecord = new ActivityBuilder(mAtm).setTask(task).build(); targetRecord.resultTo = sourceRecord; // Abort the activity start and ensure the sourceRecord gets the result (RESULT_CANCELED). Loading
services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java +33 −0 Original line number Diff line number Diff line Loading @@ -678,6 +678,39 @@ public class TaskLaunchParamsModifierTests extends WindowTestsBase { WINDOWING_MODE_FULLSCREEN); } @Test public void testInheritsSourceTaskWindowingModeWhenActivityIsInDifferentWindowingMode() { final TestDisplayContent fullscreenDisplay = createNewDisplayContent( WINDOWING_MODE_FULLSCREEN); final ActivityRecord source = createSourceActivity(fullscreenDisplay); source.setWindowingMode(WINDOWING_MODE_PINNED); source.getTask().setWindowingMode(WINDOWING_MODE_FREEFORM); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setSource(source).calculate()); assertEquivalentWindowingMode(WINDOWING_MODE_FREEFORM, mResult.mWindowingMode, WINDOWING_MODE_FULLSCREEN); } @Test public void testDoesNotInheritsSourceTaskWindowingModeWhenActivityIsInFreeformWindowingMode() { // The activity could end up in different windowing mode state after calling finish() // while the task would still hold the WINDOWING_MODE_PINNED state, or in other words // be still in the Picture in Picture mode. final TestDisplayContent fullscreenDisplay = createNewDisplayContent( WINDOWING_MODE_FULLSCREEN); final ActivityRecord source = createSourceActivity(fullscreenDisplay); source.setWindowingMode(WINDOWING_MODE_FREEFORM); source.getTask().setWindowingMode(WINDOWING_MODE_PINNED); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setSource(source).calculate()); assertEquivalentWindowingMode(WINDOWING_MODE_FULLSCREEN, mResult.mWindowingMode, WINDOWING_MODE_FULLSCREEN); } @Test public void testKeepsPictureInPictureLaunchModeInOptions() { Loading