Centralize rotation control to DisplayRotation
- Move seamless rotation logic. The scattered conditions
(mayRotateSeamlessly) are also combined into shouldRotateSeamlessly.
- Move DisplayContent#updateRotationUnchecked and the related fields.
- Consolidate DisplayContent#updateOrientationFromAppTokens and
DisplayRotation#setCurrentOrientation to DR#updateOrientation.
Bug: 117593656
Test: go/wm-smoke
Test: atest DisplayContentTests DisplayPolicyTests DisplayRotationTests
Change-Id: Ifd978a20a2773a39000a90edf683e6459adf0d2d
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 6289768..44f3ee41 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -445,7 +445,7 @@
.computeSafeInsets(200, 400).getDisplayCutout();
dc.mInitialDisplayCutout = cutout;
- dc.setRotation(Surface.ROTATION_0);
+ dc.getDisplayRotation().setRotation(Surface.ROTATION_0);
dc.computeScreenConfiguration(new Configuration()); // recomputes dc.mDisplayInfo.
assertEquals(cutout, dc.getDisplayInfo().displayCutout);
@@ -476,7 +476,7 @@
.computeSafeInsets(displayWidth, displayHeight).getDisplayCutout();
dc.mInitialDisplayCutout = cutout;
- dc.setRotation(Surface.ROTATION_90);
+ dc.getDisplayRotation().setRotation(Surface.ROTATION_90);
dc.computeScreenConfiguration(new Configuration()); // recomputes dc.mDisplayInfo.
// ----o---------- -------------
@@ -608,18 +608,18 @@
portraitDisplay.mInitialDisplayHeight = 2000;
portraitDisplay.mInitialDisplayWidth = 1000;
- portraitDisplay.setRotation(Surface.ROTATION_0);
+ portraitDisplay.getDisplayRotation().setRotation(Surface.ROTATION_0);
assertFalse(isOptionsPanelAtRight(portraitDisplay.getDisplayId()));
- portraitDisplay.setRotation(Surface.ROTATION_90);
+ portraitDisplay.getDisplayRotation().setRotation(Surface.ROTATION_90);
assertTrue(isOptionsPanelAtRight(portraitDisplay.getDisplayId()));
final DisplayContent landscapeDisplay = createNewDisplay();
landscapeDisplay.mInitialDisplayHeight = 1000;
landscapeDisplay.mInitialDisplayWidth = 2000;
- landscapeDisplay.setRotation(Surface.ROTATION_0);
+ landscapeDisplay.getDisplayRotation().setRotation(Surface.ROTATION_0);
assertTrue(isOptionsPanelAtRight(landscapeDisplay.getDisplayId()));
- landscapeDisplay.setRotation(Surface.ROTATION_90);
+ landscapeDisplay.getDisplayRotation().setRotation(Surface.ROTATION_90);
assertFalse(isOptionsPanelAtRight(landscapeDisplay.getDisplayId()));
}