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

Commit 219438a3 authored by Mina Granic's avatar Mina Granic
Browse files

Disambiguate between camera compat treatments in config.

Child changes add config for the "simulate requested orientation" treatment (aka 'camera compat freeform')

Flag: EXEMPT small refactoring
Bug: 425491882
Test: atest WmTests:AppCompatCameraOverridesTest
Test: atest WmTests:ActivityRefresherTests
Test: atest WmTests:AppCompatAspectRatioOverridesTest
Test: atest WmTests:AppCompatCameraStateStrategyForPackageTests
Test: atest WmTests:AppCompatCameraStateStrategyForTaskTests
Test: atest WmTests:AppCompatOrientationPolicyTest
Test: atest WmTests:CameraCompatFreeformPolicyTests
Test: atest WmTests:CameraStateMonitorTests
Change-Id: I7c82f4f47ae840bbc45f040a8c798b33c24cb8fb
parent f2ef5a11
Loading
Loading
Loading
Loading
+10 −6
Original line number Original line Diff line number Diff line
@@ -75,21 +75,25 @@ class AppCompatCameraOverrides {
        mAppCompatCameraOverridesState = new AppCompatCameraOverridesState();
        mAppCompatCameraOverridesState = new AppCompatCameraOverridesState();
        mAllowMinAspectRatioOverrideOptProp = optPropBuilder.create(
        mAllowMinAspectRatioOverrideOptProp = optPropBuilder.create(
                PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE);
                PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE);
        final BooleanSupplier isCameraCompatTreatmentEnabled = AppCompatUtils.asLazy(
        final BooleanSupplier isCameraCompatForceRotateTreatmentEnabled = AppCompatUtils.asLazy(
                mAppCompatConfiguration::isCameraCompatTreatmentEnabled);
                mAppCompatConfiguration::isCameraCompatForceRotateTreatmentEnabled);
        mCameraCompatAllowRefreshOptProp = optPropBuilder.create(
        mCameraCompatAllowRefreshOptProp = optPropBuilder.create(
                PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH,
                PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH,
                isCameraCompatTreatmentEnabled);
                // TODO(b/425491882): check if any camera compat treatment is available.
                isCameraCompatForceRotateTreatmentEnabled);
        mCameraCompatEnableRefreshViaPauseOptProp = optPropBuilder.create(
        mCameraCompatEnableRefreshViaPauseOptProp = optPropBuilder.create(
                PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE,
                PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE,
                isCameraCompatTreatmentEnabled);
                // TODO(b/425491882): check if any camera compat treatment is available.
                isCameraCompatForceRotateTreatmentEnabled);
        mCameraCompatAllowForceRotationOptProp = optPropBuilder.create(
        mCameraCompatAllowForceRotationOptProp = optPropBuilder.create(
                PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION,
                PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION,
                isCameraCompatTreatmentEnabled);
                isCameraCompatForceRotateTreatmentEnabled);
        mCameraCompatAllowOrientationTreatmentOptProp =
        mCameraCompatAllowOrientationTreatmentOptProp =
                Flags.enableCameraCompatForDesktopWindowingOptOut() ? optPropBuilder.create(
                Flags.enableCameraCompatForDesktopWindowingOptOut() ? optPropBuilder.create(
                PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION,
                PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION,
                isCameraCompatTreatmentEnabled) : null;
                        // TODO(b/425491882): check if simulate requested orientation camera compat
                        //  treatment is available.
                        isCameraCompatForceRotateTreatmentEnabled) : null;
    }
    }


    /**
    /**
+2 −2
Original line number Original line Diff line number Diff line
@@ -52,8 +52,8 @@ class AppCompatCameraPolicy {
            @NonNull DisplayContent displayContent) {
            @NonNull DisplayContent displayContent) {
        // Not checking DeviceConfig value here to allow enabling via DeviceConfig
        // Not checking DeviceConfig value here to allow enabling via DeviceConfig
        // without the need to restart the device.
        // without the need to restart the device.
        final boolean needsDisplayRotationCompatPolicy =
        final boolean needsDisplayRotationCompatPolicy = wmService.mAppCompatConfiguration
                wmService.mAppCompatConfiguration.isCameraCompatTreatmentEnabledAtBuildTime();
                .isCameraCompatForceRotateTreatmentEnabledAtBuildTime();
        final boolean needsCameraCompatFreeformPolicy =
        final boolean needsCameraCompatFreeformPolicy =
                DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue()
                DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue()
                        && DesktopModeHelper.canEnterDesktopMode(wmService.mContext);
                        && DesktopModeHelper.canEnterDesktopMode(wmService.mContext);
+6 −6
Original line number Original line Diff line number Diff line
@@ -1274,18 +1274,18 @@ final class AppCompatConfiguration {
    }
    }


    /**
    /**
     * @return Whether camera compatibility treatment is currently enabled.
     * @return Whether camera compatibility force-rotate treatment is currently enabled.
     */
     */
    boolean isCameraCompatTreatmentEnabled() {
    boolean isCameraCompatForceRotateTreatmentEnabled() {
        return mDeviceConfig.getFlagValue(KEY_ENABLE_CAMERA_COMPAT_TREATMENT);
        return mDeviceConfig.getFlagValue(KEY_ENABLE_CAMERA_COMPAT_TREATMENT);
    }
    }


    /**
    /**
     * @return Whether camera compatibility treatment is enabled at build time. This is used when
     * @return Whether camera compatibility force-rotate treatment is enabled at build time. This is
     * we need to safely initialize a component before the {@link DeviceConfig} flag value is
     * used when we need to safely initialize a component before the {@link DeviceConfig} flag value
     * available.
     * is available.
     */
     */
    boolean isCameraCompatTreatmentEnabledAtBuildTime() {
    boolean isCameraCompatForceRotateTreatmentEnabledAtBuildTime() {
        return mDeviceConfig.isBuildTimeFlagEnabled(KEY_ENABLE_CAMERA_COMPAT_TREATMENT);
        return mDeviceConfig.isBuildTimeFlagEnabled(KEY_ENABLE_CAMERA_COMPAT_TREATMENT);
    }
    }


+1 −1
Original line number Original line Diff line number Diff line
@@ -277,7 +277,7 @@ final class DisplayRotationCompatPolicy implements AppCompatCameraStatePolicy,
     * </ul>
     * </ul>
     */
     */
    private boolean isTreatmentEnabledForDisplay() {
    private boolean isTreatmentEnabledForDisplay() {
        return mWmService.mAppCompatConfiguration.isCameraCompatTreatmentEnabled()
        return mWmService.mAppCompatConfiguration.isCameraCompatForceRotateTreatmentEnabled()
                && mDisplayContent.getIgnoreOrientationRequest()
                && mDisplayContent.getIgnoreOrientationRequest()
                // TODO(b/225928882): Support camera compat rotation for external displays
                // TODO(b/225928882): Support camera compat rotation for external displays
                && mDisplayContent.getDisplay().getType() == TYPE_INTERNAL;
                && mDisplayContent.getDisplay().getType() == TYPE_INTERNAL;
+1 −1
Original line number Original line Diff line number Diff line
@@ -71,7 +71,7 @@ public class ActivityRefresherTests extends WindowTestsBase {
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        mAppCompatConfiguration = mDisplayContent.mWmService.mAppCompatConfiguration;
        mAppCompatConfiguration = mDisplayContent.mWmService.mAppCompatConfiguration;
        spyOn(mAppCompatConfiguration);
        spyOn(mAppCompatConfiguration);
        when(mAppCompatConfiguration.isCameraCompatTreatmentEnabled())
        when(mAppCompatConfiguration.isCameraCompatForceRotateTreatmentEnabled())
                .thenReturn(true);
                .thenReturn(true);
        when(mAppCompatConfiguration.isCameraCompatRefreshEnabled())
        when(mAppCompatConfiguration.isCameraCompatRefreshEnabled())
                .thenReturn(true);
                .thenReturn(true);
Loading