Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 038b6893 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Do not associate staring window to task for rotation change

The association was used for using consistent appearance if the
starting window is moved to an activity with different letterbox
configurations.

But if the change is from display rotation or fixed rotation, it
should follow the configuration of the current activity.

Fix: 294775946
Test: ActivityRecordTests#testTransferStartingWindowSetFixedRotation
Change-Id: I2f6698aeb8470b959c10a7f1a31aa481ea5731ea
parent f2bc3386
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2334,6 +2334,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
            mDisplayContent.updateImeControlTarget(isImeLayeringTarget() /* updateImeParent */);
            // Fix the starting window to task when Activity has changed.
            if (mStartingData != null && mStartingData.mAssociatedTask == null
                    && mTempConfiguration.windowConfiguration.getRotation()
                            == selfConfiguration.windowConfiguration.getRotation()
                    && !mTempConfiguration.windowConfiguration.getBounds().equals(getBounds())) {
                mStartingData.mResizedFromTransfer = true;
                // Lock the starting window to task, so it won't resize from transfer anymore.
+3 −0
Original line number Diff line number Diff line
@@ -2939,6 +2939,9 @@ public class ActivityRecordTests extends WindowTestsBase {
        // transform to activity1.
        int rotation = (mDisplayContent.getRotation() + 1) % 4;
        mDisplayContent.setFixedRotationLaunchingApp(activity, rotation);
        // The configuration with rotation change should not trigger task-association.
        assertNotNull(activity.mStartingData);
        assertNull(activity.mStartingData.mAssociatedTask);
        doReturn(rotation).when(mDisplayContent)
                .rotationForActivityInDifferentOrientation(topActivity);