Loading services/core/java/com/android/server/wm/ActivityRecord.java +9 −3 Original line number Diff line number Diff line Loading @@ -6619,9 +6619,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override void onCancelFixedRotationTransform(int originalDisplayRotation) { if (this != mDisplayContent.getLastOrientationSource() || getRequestedConfigurationOrientation() != ORIENTATION_UNDEFINED) { // Only need to handle the activity that should be rotated with display. if (this != mDisplayContent.getLastOrientationSource()) { // This activity doesn't affect display rotation. return; } final int requestedOrientation = getRequestedConfigurationOrientation(); if (requestedOrientation != ORIENTATION_UNDEFINED && requestedOrientation != mDisplayContent.getConfiguration().orientation) { // Only need to handle the activity that can be rotated with display or the activity // has requested the same orientation. return; } Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -1723,6 +1723,15 @@ public class ActivityRecordTests extends WindowTestsBase { assertFalse(display.hasTopFixedRotationLaunchingApp()); assertFalse(activity.hasFixedRotationTransform()); // Simulate that the activity requests the same orientation as display. activity.setOrientation(display.getConfiguration().orientation); // Skip the real freezing. activity.mVisibleRequested = false; clearInvocations(activity); activity.onCancelFixedRotationTransform(originalRotation); // The implementation of cancellation must be executed. verify(activity).startFreezingScreen(originalRotation); } @Test Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +9 −3 Original line number Diff line number Diff line Loading @@ -6619,9 +6619,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override void onCancelFixedRotationTransform(int originalDisplayRotation) { if (this != mDisplayContent.getLastOrientationSource() || getRequestedConfigurationOrientation() != ORIENTATION_UNDEFINED) { // Only need to handle the activity that should be rotated with display. if (this != mDisplayContent.getLastOrientationSource()) { // This activity doesn't affect display rotation. return; } final int requestedOrientation = getRequestedConfigurationOrientation(); if (requestedOrientation != ORIENTATION_UNDEFINED && requestedOrientation != mDisplayContent.getConfiguration().orientation) { // Only need to handle the activity that can be rotated with display or the activity // has requested the same orientation. return; } Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -1723,6 +1723,15 @@ public class ActivityRecordTests extends WindowTestsBase { assertFalse(display.hasTopFixedRotationLaunchingApp()); assertFalse(activity.hasFixedRotationTransform()); // Simulate that the activity requests the same orientation as display. activity.setOrientation(display.getConfiguration().orientation); // Skip the real freezing. activity.mVisibleRequested = false; clearInvocations(activity); activity.onCancelFixedRotationTransform(originalRotation); // The implementation of cancellation must be executed. verify(activity).startFreezingScreen(originalRotation); } @Test Loading