Get gravity of menu panel by display
Also:
- Reorganize import of DisplayContent and PhoneWindow.
- Fix DisplayContent leakage in wm test.
(SurfaceFlinger abort in createLayer -> addClientLayer with
"Suspected IGBP leak: 4097 IGBPs (4096 max)")
Bug: b/111362047
Test: atest FrameworksServicesTests:DisplayContentTests# \
testGetPreferredOptionsPanelGravityFromDifferentDisplays
Change-Id: I9c5a0f59a86fda08bd532cb2b66bab76b2dfa6c8
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
index cfef51c..0d40c5e 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
@@ -51,6 +51,7 @@
import android.util.DisplayMetrics;
import android.util.SparseIntArray;
import android.view.DisplayCutout;
+import android.view.Gravity;
import android.view.MotionEvent;
import android.view.Surface;
@@ -575,6 +576,31 @@
.setDisplayInfoOverrideFromWindowManager(dc.getDisplayId(), null);
}
+ @Test
+ public void testGetPreferredOptionsPanelGravityFromDifferentDisplays() {
+ final DisplayContent portraitDisplay = createNewDisplay();
+ portraitDisplay.mInitialDisplayHeight = 2000;
+ portraitDisplay.mInitialDisplayWidth = 1000;
+
+ portraitDisplay.setRotation(Surface.ROTATION_0);
+ assertFalse(isOptionsPanelAtRight(portraitDisplay.getDisplayId()));
+ portraitDisplay.setRotation(Surface.ROTATION_90);
+ assertTrue(isOptionsPanelAtRight(portraitDisplay.getDisplayId()));
+
+ final DisplayContent landscapeDisplay = createNewDisplay();
+ landscapeDisplay.mInitialDisplayHeight = 1000;
+ landscapeDisplay.mInitialDisplayWidth = 2000;
+
+ landscapeDisplay.setRotation(Surface.ROTATION_0);
+ assertTrue(isOptionsPanelAtRight(landscapeDisplay.getDisplayId()));
+ landscapeDisplay.setRotation(Surface.ROTATION_90);
+ assertFalse(isOptionsPanelAtRight(landscapeDisplay.getDisplayId()));
+ }
+
+ private boolean isOptionsPanelAtRight(int displayId) {
+ return (sWm.getPreferredOptionsPanelGravity(displayId) & Gravity.RIGHT) == Gravity.RIGHT;
+ }
+
private static void verifySizes(DisplayContent displayContent, int expectedBaseWidth,
int expectedBaseHeight, int expectedBaseDensity) {
assertEquals(displayContent.mBaseDisplayWidth, expectedBaseWidth);