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

Commit 23a0e7c6 authored by Will Osborn's avatar Will Osborn Committed by Automerger Merge Worker
Browse files

Merge "Add a delay to rotation updates to help avoid fold state race" into...

Merge "Add a delay to rotation updates to help avoid fold state race" into tm-qpr-dev am: d094fe25 am: 1d480ca0 am: dad0c556

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22122422



Change-Id: I903b92bb0233a82e60582cbec9364a3c101c2abe
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents daedd08c dad0c556
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -87,6 +87,8 @@ import java.util.Set;
 */
public class DisplayRotation {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "DisplayRotation" : TAG_WM;
    // Delay to avoid race between fold update and orientation update.
    private static final int ORIENTATION_UPDATE_DELAY_MS = 800;

    // Delay in milliseconds when updating config due to folding events. This prevents
    // config changes and unexpected jumps while folding the device to closed state.
@@ -1787,15 +1789,15 @@ public class DisplayRotation {
                mDeviceState = newState;
                // Now mFoldState is set to HALF_FOLDED, the overrideFrozenRotation function will
                // return true, so rotation is unlocked.
                mService.updateRotation(false /* alwaysSendConfiguration */,
                        false /* forceRelayout */);
            } else {
                mInHalfFoldTransition = true;
                mDeviceState = newState;
                // Tell the device to update its orientation.
            }
            UiThread.getHandler().postDelayed(
                    () -> {
                        mService.updateRotation(false /* alwaysSendConfiguration */,
                                false /* forceRelayout */);
            }
                    }, ORIENTATION_UPDATE_DELAY_MS);
            // Alert the activity of possible new bounds.
            UiThread.getHandler().removeCallbacks(mActivityBoundsUpdateCallback);
            UiThread.getHandler().postDelayed(mActivityBoundsUpdateCallback,
+2 −2
Original line number Diff line number Diff line
@@ -792,7 +792,7 @@ public class DisplayRotationTests {
        // ... until half-fold
        mTarget.foldStateChanged(DeviceStateController.DeviceState.HALF_FOLDED);
        assertTrue(waitForUiHandler());
        verify(sMockWm).updateRotation(false, false);
        verify(sMockWm).updateRotation(anyBoolean(), anyBoolean());
        assertTrue(waitForUiHandler());
        assertEquals(Surface.ROTATION_0, mTarget.rotationForOrientation(
                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));
@@ -800,7 +800,7 @@ public class DisplayRotationTests {
        // ... then transition back to flat
        mTarget.foldStateChanged(DeviceStateController.DeviceState.OPEN);
        assertTrue(waitForUiHandler());
        verify(sMockWm, atLeast(1)).updateRotation(false, false);
        verify(sMockWm, atLeast(1)).updateRotation(anyBoolean(), anyBoolean());
        assertTrue(waitForUiHandler());
        assertEquals(Surface.ROTATION_270, mTarget.rotationForOrientation(
                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));