diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 9fad7daa7212e..7ffc65ab342b3 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -2240,7 +2240,6 @@ class Task extends WindowContainer { mTmpPrevBounds.set(getBounds()); final boolean wasInMultiWindowMode = inMultiWindowMode(); final boolean wasInPictureInPicture = inPinnedWindowingMode(); - final int oldOrientation = getOrientation(); super.onConfigurationChanged(newParentConfig); // Only need to update surface size here since the super method will handle updating // surface position. @@ -2283,11 +2282,6 @@ class Task extends WindowContainer { mForceNotOrganized = false; } - // Report orientation change such as changing from freeform to fullscreen. - if (oldOrientation != getOrientation()) { - onDescendantOrientationChanged(this); - } - saveLaunchingStateIfNeeded(); final boolean taskOrgChanged = updateTaskOrganizerState(false /* forceUpdate */); if (taskOrgChanged) { diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java index 2389d2d6e8d64..f2767470c6516 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java @@ -62,7 +62,6 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.never; -import static org.mockito.Mockito.reset; import android.app.ActivityManager; import android.app.TaskInfo; @@ -1322,20 +1321,22 @@ public class TaskTests extends WindowTestsBase { } @Test - public void testNotifyOrientationChangeCausedByConfigurationChange() { + public void testTaskOrientationOnDisplayWindowingModeChange() { + // Skip unnecessary operations to speed up the test. + mAtm.deferWindowLayout(); final Task task = getTestTask(); final ActivityRecord activity = task.getTopMostActivity(); final DisplayContent display = task.getDisplayContent(); - display.setWindowingMode(WINDOWING_MODE_FREEFORM); + mWm.setWindowingMode(display.mDisplayId, WINDOWING_MODE_FREEFORM); activity.setRequestedOrientation(SCREEN_ORIENTATION_LANDSCAPE); assertEquals(SCREEN_ORIENTATION_UNSET, task.getOrientation()); - verify(display).onDescendantOrientationChanged(same(task)); - reset(display); + assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, display.getLastOrientation()); - display.setWindowingMode(WINDOWING_MODE_FULLSCREEN); + mWm.setWindowingMode(display.mDisplayId, WINDOWING_MODE_FULLSCREEN); assertEquals(SCREEN_ORIENTATION_LANDSCAPE, task.getOrientation()); - verify(display).onDescendantOrientationChanged(same(task)); + assertEquals(SCREEN_ORIENTATION_LANDSCAPE, display.getLastOrientation()); + assertEquals(Configuration.ORIENTATION_LANDSCAPE, display.getConfiguration().orientation); } private Task getTestTask() {