Merge "Eliminate some unnecessary waiting time of WM CTS" into android12L-gsi
diff --git a/tests/framework/base/windowmanager/AndroidManifest.xml b/tests/framework/base/windowmanager/AndroidManifest.xml
index b765cb0..d473b9d 100644
--- a/tests/framework/base/windowmanager/AndroidManifest.xml
+++ b/tests/framework/base/windowmanager/AndroidManifest.xml
@@ -302,6 +302,7 @@
              android:configChanges="orientation|screenLayout|keyboard|keyboardHidden|navigation"
              android:showWhenLocked="true"/>
         <activity android:name="android.server.wm.WindowInsetsPolicyTest$TestActivity"
+             android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
              android:turnScreenOn="true"
              android:showWhenLocked="true"/>
         <activity android:name="android.server.wm.WindowInsetsPolicyTest$FullscreenTestActivity"/>
@@ -309,8 +310,6 @@
         <activity android:name="android.server.wm.WindowInsetsPolicyTest$ImmersiveFullscreenTestActivity"
              android:documentLaunchMode="always"
              android:theme="@style/no_animation"/>
-        <activity android:name="android.server.wm.WindowInsetsPolicyTest$NaturalOrientationTestActivity"
-                  android:screenOrientation="nosensor"/>
         <activity android:name="android.server.wm.LayoutTests$TestActivity"
              android:theme="@style/no_animation"/>
         <activity android:name="android.server.wm.LocationOnScreenTests$TestActivity"
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/StartActivityTests.java b/tests/framework/base/windowmanager/src/android/server/wm/StartActivityTests.java
index 1ba6672..6552273 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/StartActivityTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/StartActivityTests.java
@@ -171,6 +171,7 @@
         getLaunchActivityBuilder()
                 .setTargetActivity(LAUNCHING_ACTIVITY)
                 .setUseInstrumentation()
+                .setWaitForLaunched(false)
                 .execute();
 
         // make sure TEST_ACTIVITY is still on top and resumed
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsPolicyTest.java b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsPolicyTest.java
index a3b504e..ab057d7 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsPolicyTest.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsPolicyTest.java
@@ -18,8 +18,8 @@
 
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.server.wm.app.Components.LAUNCHING_ACTIVITY;
-import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Surface.ROTATION_0;
+import static android.view.Surface.ROTATION_180;
 import static android.view.Surface.ROTATION_90;
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
 
@@ -88,11 +88,6 @@
             new ActivityTestRule<>(ImmersiveFullscreenTestActivity.class,
                     false /* initialTouchMode */, false /* launchActivity */);
 
-    @Rule
-    public final ActivityTestRule<NaturalOrientationTestActivity> mNaturalOrientationTestActivity =
-            new ActivityTestRule<>(NaturalOrientationTestActivity.class,
-                    false /* initialTouchMode */, false /* launchActivity */);
-
     @Before
     @Override
     public void setUp() throws Exception {
@@ -129,16 +124,20 @@
         assumeTrue("Skipping test: no split multi-window support",
                 supportsSplitScreenMultiWindow());
 
-        launchAndWait(mNaturalOrientationTestActivity);
-        mWmState.computeState(new ComponentName[] {});
-        final boolean naturalOrientationPortrait =
-                mWmState.getDisplay(DEFAULT_DISPLAY)
-                        .mFullConfiguration.orientation == ORIENTATION_PORTRAIT;
-
-        final RotationSession rotationSession = createManagedRotationSession();
-        rotationSession.set(naturalOrientationPortrait ? ROTATION_90 : ROTATION_0);
-
         final TestActivity activity = launchAndWait(mTestActivity);
+        final int rotation = activity.getDisplay().getRotation();
+        final boolean isPortrait = activity.getResources().getConfiguration()
+                .orientation == ORIENTATION_PORTRAIT;
+        final RotationSession rotationSession = createManagedRotationSession();
+        if (isPortrait) {
+            // Rotate to landscape.
+            rotationSession.set(rotation == ROTATION_0 || rotation == ROTATION_180
+                    ? ROTATION_90 : ROTATION_0);
+        } else {
+            // Keep in landscape.
+            rotationSession.set(rotation);
+        }
+
         mWmState.waitForValidState(mTestActivityComponentName);
         final int taskId = mWmState.getTaskByActivity(mTestActivityComponentName).mTaskId;
         launchActivityInPrimarySplit(LAUNCHING_ACTIVITY);