Loading services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java→services/core/java/com/android/server/wm/AppCompatCameraDisplayRotationPolicy.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading services/core/java/com/android/server/wm/AppCompatCameraOverrides.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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> Loading @@ -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> Loading services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +31 −32 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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; Loading Loading @@ -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); } } Loading @@ -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(); Loading @@ -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(); Loading @@ -169,8 +169,8 @@ class AppCompatCameraPolicy { } } } } boolean hasDisplayRotationCompatPolicy() { boolean hasDisplayRotationPolicy() { return mDisplayRotationCompatPolicy != null; return mDisplayRotationPolicy != null; } } boolean hasSimReqOrientationPolicy() { boolean hasSimReqOrientationPolicy() { Loading @@ -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; } } Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -249,8 +249,8 @@ class AppCompatCameraPolicy { @Nullable @Nullable String getSummaryForDisplayRotationHistoryRecord() { String getSummaryForDisplayRotationHistoryRecord() { return mDisplayRotationCompatPolicy != null return mDisplayRotationPolicy != null ? mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord() ? mDisplayRotationPolicy.getSummaryForDisplayRotationHistoryRecord() : null; : null; } } Loading @@ -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) Loading services/core/java/com/android/server/wm/DisplayRotationReversionController.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -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> * * Loading @@ -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(); } } Loading services/tests/wmtests/src/com/android/server/wm/AppCompatActivityRobot.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -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())); } } } } Loading Loading @@ -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 Loading
services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java→services/core/java/com/android/server/wm/AppCompatCameraDisplayRotationPolicy.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading
services/core/java/com/android/server/wm/AppCompatCameraOverrides.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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> Loading @@ -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> Loading
services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +31 −32 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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; Loading Loading @@ -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); } } Loading @@ -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(); Loading @@ -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(); Loading @@ -169,8 +169,8 @@ class AppCompatCameraPolicy { } } } } boolean hasDisplayRotationCompatPolicy() { boolean hasDisplayRotationPolicy() { return mDisplayRotationCompatPolicy != null; return mDisplayRotationPolicy != null; } } boolean hasSimReqOrientationPolicy() { boolean hasSimReqOrientationPolicy() { Loading @@ -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; } } Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -249,8 +249,8 @@ class AppCompatCameraPolicy { @Nullable @Nullable String getSummaryForDisplayRotationHistoryRecord() { String getSummaryForDisplayRotationHistoryRecord() { return mDisplayRotationCompatPolicy != null return mDisplayRotationPolicy != null ? mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord() ? mDisplayRotationPolicy.getSummaryForDisplayRotationHistoryRecord() : null; : null; } } Loading @@ -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) Loading
services/core/java/com/android/server/wm/DisplayRotationReversionController.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -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> * * Loading @@ -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(); } } Loading
services/tests/wmtests/src/com/android/server/wm/AppCompatActivityRobot.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -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())); } } } } Loading Loading @@ -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