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

Commit 48cc3a84 authored by Massimo Carli's avatar Massimo Carli Committed by Android (Google) Code Review
Browse files

Merge "Do not apply fullscreen override for camera activities." into 24D1-dev

parents 3c2f0a5e 996ce09e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1131,6 +1131,17 @@ final class LetterboxUiController {
    }

    boolean shouldApplyUserFullscreenOverride() {
        // Do not override orientation to fullscreen for camera activities.
        // Fixed-orientation activities are rarely tested in other orientations, and it often
        // results in sideways or stretched previews. As the camera compat treatment targets
        // fixed-orientation activities, overriding the orientation disables the treatment.
        final DisplayContent displayContent = mActivityRecord.mDisplayContent;
        if (displayContent != null && displayContent.mDisplayRotationCompatPolicy != null
                && displayContent.mDisplayRotationCompatPolicy
                .isCameraActive(mActivityRecord, /* mustBeFullscreen= */ true)) {
            return false;
        }

        if (isUserFullscreenOverrideEnabled()) {
            mUserAspectRatio = getUserMinAspectRatioOverrideCode();

+18 −0
Original line number Diff line number Diff line
@@ -866,6 +866,24 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
        assertEquals(SCREEN_ORIENTATION_USER, mController.overrideOrientationIfNeeded(
                /* candidate */ SCREEN_ORIENTATION_UNSPECIFIED));
    }
    @Test
    public void testOverrideOrientationIfNeeded_fullscreenOverride_cameraActivity_unchanged() {
        doReturn(true).when(mLetterboxConfiguration).isCameraCompatTreatmentEnabled();
        doReturn(true).when(mLetterboxConfiguration)
                .isCameraCompatTreatmentEnabledAtBuildTime();

        // Recreate DisplayContent with DisplayRotationCompatPolicy
        mActivity = setUpActivityWithComponent();
        mController = new LetterboxUiController(mWm, mActivity);
        spyOn(mDisplayContent.mDisplayRotationCompatPolicy);

        doReturn(false).when(mDisplayContent.mDisplayRotationCompatPolicy)
                .isCameraActive(mActivity, /* mustBeFullscreen= */ true);

        assertEquals(SCREEN_ORIENTATION_PORTRAIT, mController.overrideOrientationIfNeeded(
                /* candidate */ SCREEN_ORIENTATION_PORTRAIT));
    }

    @Test
    public void testOverrideOrientationIfNeeded_respectOrientationRequestOverUserFullScreen() {
        spyOn(mController);