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

Commit 0e2a3287 authored by Mina Granic's avatar Mina Granic Committed by Android (Google) Code Review
Browse files

Merge "Freeform: Use camera compat aspect ratio when in camera compat mode." into main

parents c3df9e9d 6dc652f6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6183,6 +6183,10 @@
        is enabled and activity is connected to the camera in fullscreen. -->
    <bool name="config_isWindowManagerCameraCompatSplitScreenAspectRatioEnabled">false</bool>

    <!-- Which aspect ratio to use when camera compat treatment is enabled and an activity eligible
        for treatment is connected to the camera. -->
    <item name="config_windowManagerCameraCompatAspectRatio" format="float" type="dimen">1.0</item>

    <!-- Docking is a uiMode configuration change and will cause activities to relaunch if it's not
         handled. If true, the configuration change will be sent but activities will not be
         relaunched upon docking. Apps with desk resources will behave like normal, since they may
+1 −0
Original line number Diff line number Diff line
@@ -4778,6 +4778,7 @@
  <java-symbol type="bool" name="config_isCompatFakeFocusEnabled" />
  <java-symbol type="bool" name="config_isWindowManagerCameraCompatTreatmentEnabled" />
  <java-symbol type="bool" name="config_isWindowManagerCameraCompatSplitScreenAspectRatioEnabled" />
  <java-symbol type="dimen" name="config_windowManagerCameraCompatAspectRatio" />
  <java-symbol type="bool" name="config_skipActivityRelaunchWhenDocking" />

  <java-symbol type="bool" name="config_hideDisplayCutoutWithDisplayArea" />
+11 −3
Original line number Diff line number Diff line
@@ -6409,7 +6409,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            // and the token could be null.
            return;
        }
        r.mDisplayContent.mAppCompatCameraPolicy.onActivityRefreshed(r);
        final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy
                .getAppCompatCameraPolicy(r);
        if (cameraPolicy != null) {
            cameraPolicy.onActivityRefreshed(r);
        }
    }

    static void splashScreenAttachedLocked(IBinder token) {
@@ -9451,8 +9455,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (!shouldBeResumed(/* activeActivity */ null)) {
            return;
        }
        mDisplayContent.mAppCompatCameraPolicy.onActivityConfigurationChanging(
                this, newConfig, lastReportedConfig);

        final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy(
                this);
        if (cameraPolicy != null) {
            cameraPolicy.onActivityConfigurationChanging(this, newConfig, lastReportedConfig);
        }
    }

    /** Get process configuration, or global config if the process is not set. */
+2 −2
Original line number Diff line number Diff line
@@ -255,8 +255,8 @@ class AppCompatAspectRatioOverrides {
                mActivityRecord.getOverrideOrientation());
        final AppCompatCameraOverrides cameraOverrides =
                mActivityRecord.mAppCompatController.getAppCompatCameraOverrides();
        final AppCompatCameraPolicy cameraPolicy =
                mActivityRecord.mAppCompatController.getAppCompatCameraPolicy();
        final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy(
                mActivityRecord);
        // Don't resize to split screen size when in book mode if letterbox position is centered
        return (isBookMode && isNotCenteredHorizontally || isTabletopMode && isLandscape)
                || cameraOverrides.isCameraCompatSplitScreenAspectRatioAllowed()
+13 −4
Original line number Diff line number Diff line
@@ -72,6 +72,15 @@ class AppCompatAspectRatioPolicy {

    float getDesiredAspectRatio(@NonNull Configuration newParentConfig,
            @NonNull Rect parentBounds) {
        // If in camera compat mode, aspect ratio from the camera compat policy has priority over
        // default letterbox aspect ratio.
        final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy(
                mActivityRecord);
        if (cameraPolicy != null && cameraPolicy.shouldCameraCompatControlAspectRatio(
                mActivityRecord)) {
            return cameraPolicy.getCameraCompatAspectRatio(mActivityRecord);
        }

        final float letterboxAspectRatioOverride =
                mAppCompatOverrides.getAppCompatAspectRatioOverrides()
                        .getFixedOrientationLetterboxAspectRatio(newParentConfig);
@@ -119,10 +128,10 @@ class AppCompatAspectRatioPolicy {
        if (aspectRatioOverrides.shouldApplyUserMinAspectRatioOverride()) {
            return aspectRatioOverrides.getUserMinAspectRatio();
        }
        final DisplayContent displayContent = mActivityRecord.getDisplayContent();
        final boolean shouldOverrideMinAspectRatioForCamera = displayContent != null
                && displayContent.mAppCompatCameraPolicy.shouldOverrideMinAspectRatioForCamera(
        final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy(
                mActivityRecord);
        final boolean shouldOverrideMinAspectRatioForCamera = cameraPolicy != null
                && cameraPolicy.shouldOverrideMinAspectRatioForCamera(mActivityRecord);
        if (!aspectRatioOverrides.shouldOverrideMinAspectRatio()
                && !shouldOverrideMinAspectRatioForCamera) {
            if (mActivityRecord.isUniversalResizeable()) {
Loading