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

Commit 941d05e6 authored by Mina Granic's avatar Mina Granic
Browse files

Simplify the camera compat state.

Due to previously integrating camera-compat-triggered recalculations in
`cameraActivity.recomputeConfiguration()`, there is no need to track the
camera compat state: it can always be calculated and up-to-date.

Flag: com.android.window.flags.enable_camera_compat_for_desktop_windowing
Fixes: 347864073
Test: atest WmTests:CameraCompatFreeformPolicyTests
Test: atest WmTests:AppCompatCameraOverridesTest
Change-Id: I2074fdd473ad73c22bd807a6f7cc8e573b0c3bd0
parent 92743979
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.wm;

import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_FREEFORM_NONE;
import static android.content.pm.ActivityInfo.OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION;
import static android.content.pm.ActivityInfo.OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT;
import static android.content.pm.ActivityInfo.OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH;
@@ -33,7 +32,6 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLAS
import static com.android.server.wm.AppCompatUtils.isChangeEnabled;

import android.annotation.NonNull;
import android.app.CameraCompatTaskInfo.FreeformCameraCompatMode;

import com.android.server.wm.utils.OptPropFactory;
import com.android.window.flags.Flags;
@@ -202,22 +200,10 @@ class AppCompatCameraOverrides {
                && !mActivityRecord.shouldCreateAppCompatDisplayInsets();
    }

    @FreeformCameraCompatMode
    int getFreeformCameraCompatMode() {
        return mAppCompatCameraOverridesState.mFreeformCameraCompatMode;
    }

    void setFreeformCameraCompatMode(@FreeformCameraCompatMode int freeformCameraCompatMode) {
        mAppCompatCameraOverridesState.mFreeformCameraCompatMode = freeformCameraCompatMode;
    }

    static class AppCompatCameraOverridesState {
        // Whether activity "refresh" was requested but not finished in
        // ActivityRecord#activityResumedLocked following the camera compat force rotation in
        // DisplayRotationCompatPolicy.
        private boolean mIsRefreshRequested;

        @FreeformCameraCompatMode
        private int mFreeformCameraCompatMode = CAMERA_COMPAT_FREEFORM_NONE;
    }
}
+0 −6
Original line number Diff line number Diff line
@@ -159,16 +159,10 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa
        }

        cameraActivity.recomputeConfiguration();
        updateCameraCompatMode(cameraActivity);
        cameraActivity.getTask().dispatchTaskInfoChangedIfNeeded(/* force= */ true);
        cameraActivity.ensureActivityConfiguration(/* ignoreVisibility= */ false);
    }

    private void updateCameraCompatMode(@NonNull ActivityRecord cameraActivity) {
        cameraActivity.mAppCompatController.getAppCompatCameraOverrides()
                .setFreeformCameraCompatMode(getCameraCompatMode(cameraActivity));
    }

    @Override
    public boolean onCameraClosed(@NonNull String cameraId) {
        // Top activity in the same task as the camera activity, or `null` if the task is
+2 −4
Original line number Diff line number Diff line
@@ -429,13 +429,11 @@ public class CameraCompatFreeformPolicyTests extends WindowTestsBase {
    }

    private void assertInCameraCompatMode(@CameraCompatTaskInfo.FreeformCameraCompatMode int mode) {
        assertEquals(mode, mActivity.mAppCompatController.getAppCompatCameraOverrides()
                        .getFreeformCameraCompatMode());
        assertEquals(mode, mCameraCompatFreeformPolicy.getCameraCompatMode(mActivity));
    }

    private void assertNotInCameraCompatMode() {
        assertEquals(CAMERA_COMPAT_FREEFORM_NONE, mActivity.mAppCompatController
                .getAppCompatCameraOverrides().getFreeformCameraCompatMode());
        assertInCameraCompatMode(CAMERA_COMPAT_FREEFORM_NONE);
    }

    private void assertActivityRefreshRequested(boolean refreshRequested) throws Exception {