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

Commit d3d84f7b authored by Mina Karadzic's avatar Mina Karadzic Committed by Android (Google) Code Review
Browse files

Merge "Rename camera compat force-rotate policy for consistency." into main

parents d1259d28 49eeb012
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -62,9 +62,9 @@ import com.android.window.flags.Flags;
 * R.bool.config_isWindowManagerCameraCompatTreatmentEnabled} is {@code true}.
 * R.bool.config_isWindowManagerCameraCompatTreatmentEnabled} is {@code true}.
 */
 */
// TODO(b/261444714): Consider moving Camera-specific logic outside of the WM Core path
// TODO(b/261444714): Consider moving Camera-specific logic outside of the WM Core path
final class DisplayRotationCompatPolicy implements AppCompatCameraStatePolicy,
final class AppCompatCameraDisplayRotationPolicy implements AppCompatCameraStatePolicy,
        ActivityRefresher.Evaluator {
        ActivityRefresher.Evaluator {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "DisplayRotationCompatPolicy" : TAG_WM;
    private static final String TAG = TAG_WITH_CLASS_NAME ? "AppCompatCameraDRPolicy" : TAG_WM;


    @NonNull
    @NonNull
    private final DisplayContent mDisplayContent;
    private final DisplayContent mDisplayContent;
@@ -89,7 +89,7 @@ final class DisplayRotationCompatPolicy implements AppCompatCameraStatePolicy,
     */
     */
    private boolean mIsRunning;
    private boolean mIsRunning;


    DisplayRotationCompatPolicy(@NonNull DisplayContent displayContent,
    AppCompatCameraDisplayRotationPolicy(@NonNull DisplayContent displayContent,
            @NonNull CameraStateMonitor cameraStateMonitor,
            @NonNull CameraStateMonitor cameraStateMonitor,
            @NonNull AppCompatCameraStateSource cameraStateNotifier,
            @NonNull AppCompatCameraStateSource cameraStateNotifier,
            @NonNull ActivityRefresher activityRefresher) {
            @NonNull ActivityRefresher activityRefresher) {
+3 −3
Original line number Original line Diff line number Diff line
@@ -125,7 +125,7 @@ class AppCompatCameraOverrides {


    /**
    /**
     * Whether activity is eligible for activity "refresh" after camera compat force rotation
     * Whether activity is eligible for activity "refresh" after camera compat force rotation
     * treatment. See {@link DisplayRotationCompatPolicy} for context.
     * treatment. See {@link AppCompatCameraDisplayRotationPolicy} for context.
     *
     *
     * <p>This treatment is enabled when the following conditions are met:
     * <p>This treatment is enabled when the following conditions are met:
     * <ul>
     * <ul>
@@ -142,7 +142,7 @@ class AppCompatCameraOverrides {
    /**
    /**
     * Whether activity should be "refreshed" after the camera compat force rotation treatment
     * Whether activity should be "refreshed" after the camera compat force rotation treatment
     * using the "resumed -> paused -> resumed" cycle rather than the "resumed -> ... -> stopped
     * using the "resumed -> paused -> resumed" cycle rather than the "resumed -> ... -> stopped
     * -> ... -> resumed" cycle. See {@link DisplayRotationCompatPolicy} for context.
     * -> ... -> resumed" cycle. See {@link AppCompatCameraDisplayRotationPolicy} for context.
     *
     *
     * <p>This treatment is enabled when the following conditions are met:
     * <p>This treatment is enabled when the following conditions are met:
     * <ul>
     * <ul>
@@ -160,7 +160,7 @@ class AppCompatCameraOverrides {


    /**
    /**
     * Whether activity is eligible for camera compat force rotation treatment. See {@link
     * Whether activity is eligible for camera compat force rotation treatment. See {@link
     * DisplayRotationCompatPolicy} for context.
     * AppCompatCameraDisplayRotationPolicy} for context.
     *
     *
     * <p>This treatment is enabled when the following conditions are met:
     * <p>This treatment is enabled when the following conditions are met:
     * <ul>
     * <ul>
+31 −32
Original line number Original line Diff line number Diff line
@@ -44,7 +44,7 @@ class AppCompatCameraPolicy {
    @VisibleForTesting
    @VisibleForTesting
    final ActivityRefresher mActivityRefresher;
    final ActivityRefresher mActivityRefresher;
    @Nullable
    @Nullable
    final DisplayRotationCompatPolicy mDisplayRotationCompatPolicy;
    final AppCompatCameraDisplayRotationPolicy mDisplayRotationPolicy;
    @Nullable
    @Nullable
    final AppCompatCameraSimReqOrientationPolicy mSimReqOrientationPolicy;
    final AppCompatCameraSimReqOrientationPolicy mSimReqOrientationPolicy;


@@ -52,21 +52,21 @@ 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 = wmService.mAppCompatConfiguration
        final boolean needsDisplayRotationPolicy = wmService.mAppCompatConfiguration
                .isCameraCompatForceRotateTreatmentEnabledAtBuildTime();
                .isCameraCompatForceRotateTreatmentEnabledAtBuildTime();
        final boolean needsSimReqOrientationPolicy =
        final boolean needsSimReqOrientationPolicy =
                DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue()
                DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue()
                        && DesktopModeHelper.canEnterDesktopMode(wmService.mContext)
                        && DesktopModeHelper.canEnterDesktopMode(wmService.mContext)
                        && wmService.mAppCompatConfiguration
                        && wmService.mAppCompatConfiguration
                        .isCameraCompatSimulateRequestedOrientationTreatmentEnabled();
                        .isCameraCompatSimulateRequestedOrientationTreatmentEnabled();
        if (needsDisplayRotationCompatPolicy || needsSimReqOrientationPolicy) {
        if (needsDisplayRotationPolicy || needsSimReqOrientationPolicy) {
            final AppCompatCameraStateSource cameraStateListenerDelegate =
            final AppCompatCameraStateSource cameraStateListenerDelegate =
                    new AppCompatCameraStateSource();
                    new AppCompatCameraStateSource();
            mCameraStateMonitor = new CameraStateMonitor(displayContent, wmService.mH,
            mCameraStateMonitor = new CameraStateMonitor(displayContent, wmService.mH,
                    cameraStateListenerDelegate);
                    cameraStateListenerDelegate);
            mActivityRefresher = new ActivityRefresher(wmService, wmService.mH);
            mActivityRefresher = new ActivityRefresher(wmService, wmService.mH);
            mDisplayRotationCompatPolicy = needsDisplayRotationCompatPolicy
            mDisplayRotationPolicy = needsDisplayRotationPolicy
                    ? new DisplayRotationCompatPolicy(displayContent, mCameraStateMonitor,
                    ? new AppCompatCameraDisplayRotationPolicy(displayContent, mCameraStateMonitor,
                            cameraStateListenerDelegate, mActivityRefresher)
                            cameraStateListenerDelegate, mActivityRefresher)
                    : null;
                    : null;
            mSimReqOrientationPolicy = needsSimReqOrientationPolicy
            mSimReqOrientationPolicy = needsSimReqOrientationPolicy
@@ -74,7 +74,7 @@ class AppCompatCameraPolicy {
                            mCameraStateMonitor, cameraStateListenerDelegate, mActivityRefresher)
                            mCameraStateMonitor, cameraStateListenerDelegate, mActivityRefresher)
                    : null;
                    : null;
        } else {
        } else {
            mDisplayRotationCompatPolicy = null;
            mDisplayRotationPolicy = null;
            mSimReqOrientationPolicy = null;
            mSimReqOrientationPolicy = null;
            mCameraStateMonitor = null;
            mCameraStateMonitor = null;
            mActivityRefresher = null;
            mActivityRefresher = null;
@@ -116,15 +116,15 @@ class AppCompatCameraPolicy {
     * reason with the {@link Toast}.
     * reason with the {@link Toast}.
     */
     */
    void onScreenRotationAnimationFinished() {
    void onScreenRotationAnimationFinished() {
        if (mDisplayRotationCompatPolicy != null) {
        if (mDisplayRotationPolicy != null) {
            mDisplayRotationCompatPolicy.onScreenRotationAnimationFinished();
            mDisplayRotationPolicy.onScreenRotationAnimationFinished();
        }
        }
    }
    }


    static boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) {
    static boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) {
        final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity);
        final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity);
        return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null
        return cameraPolicy != null && cameraPolicy.mDisplayRotationPolicy != null
                && cameraPolicy.mDisplayRotationCompatPolicy
                && cameraPolicy.mDisplayRotationPolicy
                        .isActivityEligibleForOrientationOverride(activity);
                        .isActivityEligibleForOrientationOverride(activity);
    }
    }


@@ -140,14 +140,14 @@ class AppCompatCameraPolicy {
     */
     */
    static boolean isTreatmentEnabledForActivity(@NonNull ActivityRecord activity) {
    static boolean isTreatmentEnabledForActivity(@NonNull ActivityRecord activity) {
        final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity);
        final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity);
        return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null
        return cameraPolicy != null && cameraPolicy.mDisplayRotationPolicy != null
                && cameraPolicy.mDisplayRotationCompatPolicy
                && cameraPolicy.mDisplayRotationPolicy
                        .isTreatmentEnabledForActivity(activity);
                        .isTreatmentEnabledForActivity(activity);
    }
    }


    void start() {
    void start() {
        if (mDisplayRotationCompatPolicy != null) {
        if (mDisplayRotationPolicy != null) {
            mDisplayRotationCompatPolicy.start();
            mDisplayRotationPolicy.start();
        }
        }
        if (mSimReqOrientationPolicy != null) {
        if (mSimReqOrientationPolicy != null) {
            mSimReqOrientationPolicy.start();
            mSimReqOrientationPolicy.start();
@@ -158,8 +158,8 @@ class AppCompatCameraPolicy {
    }
    }


    void dispose() {
    void dispose() {
        if (mDisplayRotationCompatPolicy != null) {
        if (mDisplayRotationPolicy != null) {
            mDisplayRotationCompatPolicy.dispose();
            mDisplayRotationPolicy.dispose();
        }
        }
        if (mSimReqOrientationPolicy != null) {
        if (mSimReqOrientationPolicy != null) {
            mSimReqOrientationPolicy.dispose();
            mSimReqOrientationPolicy.dispose();
@@ -169,8 +169,8 @@ class AppCompatCameraPolicy {
        }
        }
    }
    }


    boolean hasDisplayRotationCompatPolicy() {
    boolean hasDisplayRotationPolicy() {
        return mDisplayRotationCompatPolicy != null;
        return mDisplayRotationPolicy != null;
    }
    }


    boolean hasSimReqOrientationPolicy() {
    boolean hasSimReqOrientationPolicy() {
@@ -183,8 +183,8 @@ class AppCompatCameraPolicy {


    @ScreenOrientation
    @ScreenOrientation
    int getOrientation() {
    int getOrientation() {
        return mDisplayRotationCompatPolicy != null
        return mDisplayRotationPolicy != null
                ? mDisplayRotationCompatPolicy.getOrientation()
                ? mDisplayRotationPolicy.getOrientation()
                : SCREEN_ORIENTATION_UNSPECIFIED;
                : SCREEN_ORIENTATION_UNSPECIFIED;
    }
    }


@@ -194,8 +194,8 @@ class AppCompatCameraPolicy {
        if (cameraPolicy == null) {
        if (cameraPolicy == null) {
            return false;
            return false;
        }
        }
        return (cameraPolicy.mDisplayRotationCompatPolicy != null
        return (cameraPolicy.mDisplayRotationPolicy != null
                        && cameraPolicy.mDisplayRotationCompatPolicy
                        && cameraPolicy.mDisplayRotationPolicy
                                .shouldCameraCompatControlOrientation(activity))
                                .shouldCameraCompatControlOrientation(activity))
                || (cameraPolicy.mSimReqOrientationPolicy != null
                || (cameraPolicy.mSimReqOrientationPolicy != null
                        && cameraPolicy.mSimReqOrientationPolicy
                        && cameraPolicy.mSimReqOrientationPolicy
@@ -219,8 +219,8 @@ class AppCompatCameraPolicy {
        if (cameraPolicy == null) {
        if (cameraPolicy == null) {
            return false;
            return false;
        }
        }
        return (cameraPolicy.mDisplayRotationCompatPolicy != null
        return (cameraPolicy.mDisplayRotationPolicy != null
                        && cameraPolicy.mDisplayRotationCompatPolicy
                        && cameraPolicy.mDisplayRotationPolicy
                                .shouldCameraCompatControlAspectRatio(activity))
                                .shouldCameraCompatControlAspectRatio(activity))
                || (cameraPolicy.mSimReqOrientationPolicy != null
                || (cameraPolicy.mSimReqOrientationPolicy != null
                        && cameraPolicy.mSimReqOrientationPolicy
                        && cameraPolicy.mSimReqOrientationPolicy
@@ -238,8 +238,8 @@ class AppCompatCameraPolicy {
        if (cameraPolicy == null) {
        if (cameraPolicy == null) {
            return false;
            return false;
        }
        }
        return (cameraPolicy.mDisplayRotationCompatPolicy != null
        return (cameraPolicy.mDisplayRotationPolicy != null
                && cameraPolicy.mDisplayRotationCompatPolicy
                && cameraPolicy.mDisplayRotationPolicy
                        .isCameraRunningAndWindowingModeEligible(activity,
                        .isCameraRunningAndWindowingModeEligible(activity,
                                /* mustBeFullscreen */ true))
                                /* mustBeFullscreen */ true))
                || (cameraPolicy.mSimReqOrientationPolicy != null
                || (cameraPolicy.mSimReqOrientationPolicy != null
@@ -249,8 +249,8 @@ class AppCompatCameraPolicy {


    @Nullable
    @Nullable
    String getSummaryForDisplayRotationHistoryRecord() {
    String getSummaryForDisplayRotationHistoryRecord() {
        return mDisplayRotationCompatPolicy != null
        return mDisplayRotationPolicy != null
                ? mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord()
                ? mDisplayRotationPolicy.getSummaryForDisplayRotationHistoryRecord()
                : null;
                : null;
    }
    }


@@ -261,9 +261,8 @@ class AppCompatCameraPolicy {
            return 1.0f;
            return 1.0f;
        }
        }
        float displayRotationCompatPolicyAspectRatio =
        float displayRotationCompatPolicyAspectRatio =
                cameraPolicy.mDisplayRotationCompatPolicy != null
                cameraPolicy.mDisplayRotationPolicy != null
                        ? cameraPolicy.mDisplayRotationCompatPolicy.getCameraCompatAspectRatio(
                ? cameraPolicy.mDisplayRotationPolicy.getCameraCompatAspectRatio(activity)
                                activity)
                : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO;
                : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO;
        float simReqOrientationPolicyAspectRatio = cameraPolicy.mSimReqOrientationPolicy != null
        float simReqOrientationPolicyAspectRatio = cameraPolicy.mSimReqOrientationPolicy != null
                ? cameraPolicy.mSimReqOrientationPolicy.getCameraCompatAspectRatio(activity)
                ? cameraPolicy.mSimReqOrientationPolicy.getCameraCompatAspectRatio(activity)
+2 −2
Original line number Original line Diff line number Diff line
@@ -35,7 +35,7 @@ import com.android.internal.protolog.ProtoLog;
 * <ol>
 * <ol>
 *  <li>The top application has {@link SCREEN_ORIENTATION_NOSENSOR} set and is rotated to
 *  <li>The top application has {@link SCREEN_ORIENTATION_NOSENSOR} set and is rotated to
 *  {@link ROTATION_0}.
 *  {@link ROTATION_0}.
 *  <li>Camera compat treatment has rotated the app {@link DisplayRotationCompatPolicy}.
 *  <li>Camera compat treatment has rotated the app {@link AppCompatCameraDisplayRotationPolicy}.
 *  <li>The device is half-folded and has auto-rotate is temporarily enabled.
 *  <li>The device is half-folded and has auto-rotate is temporarily enabled.
 * </ol>
 * </ol>
 *
 *
@@ -61,7 +61,7 @@ final class DisplayRotationReversionController {
    }
    }


    boolean isRotationReversionEnabled() {
    boolean isRotationReversionEnabled() {
        return mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()
        return mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationPolicy()
                || mDisplayContent.getDisplayRotation().mFoldController != null
                || mDisplayContent.getDisplayRotation().mFoldController != null
                || mDisplayContent.getIgnoreOrientationRequest();
                || mDisplayContent.getIgnoreOrientationRequest();
    }
    }
+4 −4
Original line number Original line Diff line number Diff line
@@ -226,9 +226,9 @@ class AppCompatActivityRobot {
    }
    }


    void enableFullscreenCameraCompatTreatmentForTopActivity(boolean enabled) {
    void enableFullscreenCameraCompatTreatmentForTopActivity(boolean enabled) {
        if (mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationCompatPolicy()) {
        if (mDisplayContent.mAppCompatCameraPolicy.hasDisplayRotationPolicy()) {
            doReturn(enabled).when(
            doReturn(enabled).when(
                    mDisplayContent.mAppCompatCameraPolicy.mDisplayRotationCompatPolicy)
                    mDisplayContent.mAppCompatCameraPolicy.mDisplayRotationPolicy)
                        .isTreatmentEnabledForActivity(eq(mActivityStack.top()));
                        .isTreatmentEnabledForActivity(eq(mActivityStack.top()));
        }
        }
    }
    }
@@ -653,9 +653,9 @@ class AppCompatActivityRobot {
        }
        }
    }
    }


    private DisplayRotationCompatPolicy getTopDisplayRotationCompatPolicy() {
    private AppCompatCameraDisplayRotationPolicy getTopDisplayRotationCompatPolicy() {
        return mActivityStack.top().mDisplayContent.mAppCompatCameraPolicy
        return mActivityStack.top().mDisplayContent.mAppCompatCameraPolicy
                .mDisplayRotationCompatPolicy;
                .mDisplayRotationPolicy;
    }
    }


    private AppCompatCameraSimReqOrientationPolicy getTopCameraCompatSimReqOrientationPolicy() {
    private AppCompatCameraSimReqOrientationPolicy getTopCameraCompatSimReqOrientationPolicy() {
Loading