Loading services/core/java/com/android/server/wm/ActivityRecord.java +2 −10 Original line number Diff line number Diff line Loading @@ -6429,11 +6429,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // and the token could be null. return; } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy .getAppCompatCameraPolicy(r); if (cameraPolicy != null) { cameraPolicy.onActivityRefreshed(r); } AppCompatCameraPolicy.onActivityRefreshed(r); } static void splashScreenAttachedLocked(IBinder token) { Loading Loading @@ -9476,11 +9472,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return; } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy( this); if (cameraPolicy != null) { cameraPolicy.onActivityConfigurationChanging(this, newConfig, lastReportedConfig); } AppCompatCameraPolicy.onActivityConfigurationChanging(this, newConfig, lastReportedConfig); } /** Get process configuration, or global config if the process is not set. */ Loading services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java +1 −4 Original line number Diff line number Diff line Loading @@ -255,13 +255,10 @@ class AppCompatAspectRatioOverrides { mActivityRecord.getOverrideOrientation()); final AppCompatCameraOverrides cameraOverrides = mActivityRecord.mAppCompatController.getAppCompatCameraOverrides(); 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() && (cameraPolicy != null && cameraPolicy.isTreatmentEnabledForActivity(mActivityRecord)); && AppCompatCameraPolicy.isTreatmentEnabledForActivity(mActivityRecord); } /** Loading services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java +3 −9 Original line number Diff line number Diff line Loading @@ -74,11 +74,9 @@ class AppCompatAspectRatioPolicy { @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( if (AppCompatCameraPolicy.shouldCameraCompatControlAspectRatio( mActivityRecord)) { return cameraPolicy.getCameraCompatAspectRatio(mActivityRecord); return AppCompatCameraPolicy.getCameraCompatAspectRatio(mActivityRecord); } final float letterboxAspectRatioOverride = Loading Loading @@ -128,12 +126,8 @@ class AppCompatAspectRatioPolicy { if (aspectRatioOverrides.shouldApplyUserMinAspectRatioOverride()) { return aspectRatioOverrides.getUserMinAspectRatio(); } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy( mActivityRecord); final boolean shouldOverrideMinAspectRatioForCamera = cameraPolicy != null && cameraPolicy.shouldOverrideMinAspectRatioForCamera(mActivityRecord); if (!aspectRatioOverrides.shouldOverrideMinAspectRatio() && !shouldOverrideMinAspectRatioForCamera) { && !AppCompatCameraPolicy.shouldOverrideMinAspectRatioForCamera(mActivityRecord)) { if (mActivityRecord.isUniversalResizeable()) { return 0; } Loading services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +69 −47 Original line number Diff line number Diff line Loading @@ -70,9 +70,10 @@ class AppCompatCameraPolicy { } } void onActivityRefreshed(@NonNull ActivityRecord activity) { if (mActivityRefresher != null) { mActivityRefresher.onActivityRefreshed(activity); static void onActivityRefreshed(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy != null && cameraPolicy.mActivityRefresher != null) { cameraPolicy.mActivityRefresher.onActivityRefreshed(activity); } } Loading @@ -88,10 +89,11 @@ class AppCompatCameraPolicy { * camera preview and can lead to sideways or stretching issues persisting even after force * rotation. */ void onActivityConfigurationChanging(@NonNull ActivityRecord activity, static void onActivityConfigurationChanging(@NonNull ActivityRecord activity, @NonNull Configuration newConfig, @NonNull Configuration lastReportedConfig) { if (mActivityRefresher != null) { mActivityRefresher.onActivityConfigurationChanging(activity, newConfig, final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy != null && cameraPolicy.mActivityRefresher != null) { cameraPolicy.mActivityRefresher.onActivityConfigurationChanging(activity, newConfig, lastReportedConfig); } } Loading @@ -108,11 +110,11 @@ class AppCompatCameraPolicy { } } boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.isActivityEligibleForOrientationOverride(activity); } return false; static boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isActivityEligibleForOrientationOverride(activity); } /** Loading @@ -125,11 +127,11 @@ class AppCompatCameraPolicy { * <li>The activity has fixed orientation but not "locked" or "nosensor" one. * </ul> */ boolean isTreatmentEnabledForActivity(@Nullable ActivityRecord activity) { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.isTreatmentEnabledForActivity(activity); } return false; static boolean isTreatmentEnabledForActivity(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isTreatmentEnabledForActivity(activity); } void start() { Loading Loading @@ -176,23 +178,31 @@ class AppCompatCameraPolicy { } // TODO(b/369070416): have policies implement the same interface. boolean shouldCameraCompatControlOrientation(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.shouldCameraCompatControlOrientation( activity)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy.shouldCameraCompatControlOrientation( activity)); static boolean shouldCameraCompatControlOrientation(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .shouldCameraCompatControlOrientation(activity)) || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .shouldCameraCompatControlOrientation(activity)); } // TODO(b/369070416): have policies implement the same interface. boolean shouldCameraCompatControlAspectRatio(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.shouldCameraCompatControlAspectRatio( activity)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy.shouldCameraCompatControlAspectRatio( activity)); static boolean shouldCameraCompatControlAspectRatio(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .shouldCameraCompatControlAspectRatio(activity)) || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .shouldCameraCompatControlAspectRatio(activity)); } // TODO(b/369070416): have policies implement the same interface. Loading @@ -200,29 +210,41 @@ class AppCompatCameraPolicy { * @return {@code true} if the Camera is active for the provided {@link ActivityRecord} and * any camera compat treatment could be triggered for the current windowing mode. */ private boolean isCameraRunningAndWindowingModeEligible(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.isCameraRunningAndWindowingModeEligible(activity, private static boolean isCameraRunningAndWindowingModeEligible( @NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isCameraRunningAndWindowingModeEligible(activity, /* mustBeFullscreen */ true)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .isCameraRunningAndWindowingModeEligible(activity)); } @Nullable String getSummaryForDisplayRotationHistoryRecord() { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord(); } return null; return mDisplayRotationCompatPolicy != null ? mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord() : null; } // TODO(b/369070416): have policies implement the same interface. float getCameraCompatAspectRatio(@NonNull ActivityRecord activity) { float displayRotationCompatPolicyAspectRatio = mDisplayRotationCompatPolicy != null ? mDisplayRotationCompatPolicy.getCameraCompatAspectRatio(activity) static float getCameraCompatAspectRatio(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return 1.0f; } float displayRotationCompatPolicyAspectRatio = cameraPolicy.mDisplayRotationCompatPolicy != null ? cameraPolicy.mDisplayRotationCompatPolicy.getCameraCompatAspectRatio(activity) : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; float cameraCompatFreeformPolicyAspectRatio = mCameraCompatFreeformPolicy != null ? mCameraCompatFreeformPolicy.getCameraCompatAspectRatio(activity) float cameraCompatFreeformPolicyAspectRatio = cameraPolicy.mCameraCompatFreeformPolicy != null ? cameraPolicy.mCameraCompatFreeformPolicy.getCameraCompatAspectRatio(activity) : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; return Math.max(displayRotationCompatPolicyAspectRatio, cameraCompatFreeformPolicyAspectRatio); Loading @@ -232,8 +254,8 @@ class AppCompatCameraPolicy { * Whether we should apply the min aspect ratio per-app override only when an app is connected * to the camera. */ boolean shouldOverrideMinAspectRatioForCamera(@NonNull ActivityRecord activityRecord) { return isCameraRunningAndWindowingModeEligible(activityRecord) static boolean shouldOverrideMinAspectRatioForCamera(@NonNull ActivityRecord activityRecord) { return AppCompatCameraPolicy.isCameraRunningAndWindowingModeEligible(activityRecord) && activityRecord.mAppCompatController.getAppCompatCameraOverrides() .isOverrideMinAspectRatioForCameraEnabled(); } Loading services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java +3 −6 Original line number Diff line number Diff line Loading @@ -58,10 +58,8 @@ class AppCompatOrientationPolicy { && displayContent.getIgnoreOrientationRequest(); final boolean shouldApplyUserFullscreenOverride = mAppCompatOverrides .getAppCompatAspectRatioOverrides().shouldApplyUserFullscreenOverride(); final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy .getAppCompatCameraPolicy(mActivityRecord); final boolean shouldCameraCompatControlOrientation = cameraPolicy != null && cameraPolicy.shouldCameraCompatControlOrientation(mActivityRecord); final boolean shouldCameraCompatControlOrientation = AppCompatCameraPolicy.shouldCameraCompatControlOrientation(mActivityRecord); if (shouldApplyUserFullscreenOverride && isIgnoreOrientationRequestEnabled // Do not override orientation to fullscreen for camera activities. // Fixed-orientation activities are rarely tested in other orientations, and it Loading Loading @@ -98,7 +96,7 @@ class AppCompatOrientationPolicy { if (displayContent != null && mAppCompatOverrides.getAppCompatCameraOverrides() .isOverrideOrientationOnlyForCameraEnabled() && !displayContent.mAppCompatCameraPolicy && !AppCompatCameraPolicy .isActivityEligibleForOrientationOverride(mActivityRecord)) { return candidate; } Loading Loading @@ -213,5 +211,4 @@ class AppCompatOrientationPolicy { } return false; } } Loading
services/core/java/com/android/server/wm/ActivityRecord.java +2 −10 Original line number Diff line number Diff line Loading @@ -6429,11 +6429,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // and the token could be null. return; } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy .getAppCompatCameraPolicy(r); if (cameraPolicy != null) { cameraPolicy.onActivityRefreshed(r); } AppCompatCameraPolicy.onActivityRefreshed(r); } static void splashScreenAttachedLocked(IBinder token) { Loading Loading @@ -9476,11 +9472,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return; } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy( this); if (cameraPolicy != null) { cameraPolicy.onActivityConfigurationChanging(this, newConfig, lastReportedConfig); } AppCompatCameraPolicy.onActivityConfigurationChanging(this, newConfig, lastReportedConfig); } /** Get process configuration, or global config if the process is not set. */ Loading
services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java +1 −4 Original line number Diff line number Diff line Loading @@ -255,13 +255,10 @@ class AppCompatAspectRatioOverrides { mActivityRecord.getOverrideOrientation()); final AppCompatCameraOverrides cameraOverrides = mActivityRecord.mAppCompatController.getAppCompatCameraOverrides(); 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() && (cameraPolicy != null && cameraPolicy.isTreatmentEnabledForActivity(mActivityRecord)); && AppCompatCameraPolicy.isTreatmentEnabledForActivity(mActivityRecord); } /** Loading
services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java +3 −9 Original line number Diff line number Diff line Loading @@ -74,11 +74,9 @@ class AppCompatAspectRatioPolicy { @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( if (AppCompatCameraPolicy.shouldCameraCompatControlAspectRatio( mActivityRecord)) { return cameraPolicy.getCameraCompatAspectRatio(mActivityRecord); return AppCompatCameraPolicy.getCameraCompatAspectRatio(mActivityRecord); } final float letterboxAspectRatioOverride = Loading Loading @@ -128,12 +126,8 @@ class AppCompatAspectRatioPolicy { if (aspectRatioOverrides.shouldApplyUserMinAspectRatioOverride()) { return aspectRatioOverrides.getUserMinAspectRatio(); } final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy.getAppCompatCameraPolicy( mActivityRecord); final boolean shouldOverrideMinAspectRatioForCamera = cameraPolicy != null && cameraPolicy.shouldOverrideMinAspectRatioForCamera(mActivityRecord); if (!aspectRatioOverrides.shouldOverrideMinAspectRatio() && !shouldOverrideMinAspectRatioForCamera) { && !AppCompatCameraPolicy.shouldOverrideMinAspectRatioForCamera(mActivityRecord)) { if (mActivityRecord.isUniversalResizeable()) { return 0; } Loading
services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +69 −47 Original line number Diff line number Diff line Loading @@ -70,9 +70,10 @@ class AppCompatCameraPolicy { } } void onActivityRefreshed(@NonNull ActivityRecord activity) { if (mActivityRefresher != null) { mActivityRefresher.onActivityRefreshed(activity); static void onActivityRefreshed(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy != null && cameraPolicy.mActivityRefresher != null) { cameraPolicy.mActivityRefresher.onActivityRefreshed(activity); } } Loading @@ -88,10 +89,11 @@ class AppCompatCameraPolicy { * camera preview and can lead to sideways or stretching issues persisting even after force * rotation. */ void onActivityConfigurationChanging(@NonNull ActivityRecord activity, static void onActivityConfigurationChanging(@NonNull ActivityRecord activity, @NonNull Configuration newConfig, @NonNull Configuration lastReportedConfig) { if (mActivityRefresher != null) { mActivityRefresher.onActivityConfigurationChanging(activity, newConfig, final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy != null && cameraPolicy.mActivityRefresher != null) { cameraPolicy.mActivityRefresher.onActivityConfigurationChanging(activity, newConfig, lastReportedConfig); } } Loading @@ -108,11 +110,11 @@ class AppCompatCameraPolicy { } } boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.isActivityEligibleForOrientationOverride(activity); } return false; static boolean isActivityEligibleForOrientationOverride(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isActivityEligibleForOrientationOverride(activity); } /** Loading @@ -125,11 +127,11 @@ class AppCompatCameraPolicy { * <li>The activity has fixed orientation but not "locked" or "nosensor" one. * </ul> */ boolean isTreatmentEnabledForActivity(@Nullable ActivityRecord activity) { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.isTreatmentEnabledForActivity(activity); } return false; static boolean isTreatmentEnabledForActivity(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); return cameraPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isTreatmentEnabledForActivity(activity); } void start() { Loading Loading @@ -176,23 +178,31 @@ class AppCompatCameraPolicy { } // TODO(b/369070416): have policies implement the same interface. boolean shouldCameraCompatControlOrientation(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.shouldCameraCompatControlOrientation( activity)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy.shouldCameraCompatControlOrientation( activity)); static boolean shouldCameraCompatControlOrientation(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .shouldCameraCompatControlOrientation(activity)) || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .shouldCameraCompatControlOrientation(activity)); } // TODO(b/369070416): have policies implement the same interface. boolean shouldCameraCompatControlAspectRatio(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.shouldCameraCompatControlAspectRatio( activity)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy.shouldCameraCompatControlAspectRatio( activity)); static boolean shouldCameraCompatControlAspectRatio(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .shouldCameraCompatControlAspectRatio(activity)) || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .shouldCameraCompatControlAspectRatio(activity)); } // TODO(b/369070416): have policies implement the same interface. Loading @@ -200,29 +210,41 @@ class AppCompatCameraPolicy { * @return {@code true} if the Camera is active for the provided {@link ActivityRecord} and * any camera compat treatment could be triggered for the current windowing mode. */ private boolean isCameraRunningAndWindowingModeEligible(@NonNull ActivityRecord activity) { return (mDisplayRotationCompatPolicy != null && mDisplayRotationCompatPolicy.isCameraRunningAndWindowingModeEligible(activity, private static boolean isCameraRunningAndWindowingModeEligible( @NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return false; } return (cameraPolicy.mDisplayRotationCompatPolicy != null && cameraPolicy.mDisplayRotationCompatPolicy .isCameraRunningAndWindowingModeEligible(activity, /* mustBeFullscreen */ true)) || (mCameraCompatFreeformPolicy != null && mCameraCompatFreeformPolicy || (cameraPolicy.mCameraCompatFreeformPolicy != null && cameraPolicy.mCameraCompatFreeformPolicy .isCameraRunningAndWindowingModeEligible(activity)); } @Nullable String getSummaryForDisplayRotationHistoryRecord() { if (mDisplayRotationCompatPolicy != null) { return mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord(); } return null; return mDisplayRotationCompatPolicy != null ? mDisplayRotationCompatPolicy.getSummaryForDisplayRotationHistoryRecord() : null; } // TODO(b/369070416): have policies implement the same interface. float getCameraCompatAspectRatio(@NonNull ActivityRecord activity) { float displayRotationCompatPolicyAspectRatio = mDisplayRotationCompatPolicy != null ? mDisplayRotationCompatPolicy.getCameraCompatAspectRatio(activity) static float getCameraCompatAspectRatio(@NonNull ActivityRecord activity) { final AppCompatCameraPolicy cameraPolicy = getAppCompatCameraPolicy(activity); if (cameraPolicy == null) { return 1.0f; } float displayRotationCompatPolicyAspectRatio = cameraPolicy.mDisplayRotationCompatPolicy != null ? cameraPolicy.mDisplayRotationCompatPolicy.getCameraCompatAspectRatio(activity) : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; float cameraCompatFreeformPolicyAspectRatio = mCameraCompatFreeformPolicy != null ? mCameraCompatFreeformPolicy.getCameraCompatAspectRatio(activity) float cameraCompatFreeformPolicyAspectRatio = cameraPolicy.mCameraCompatFreeformPolicy != null ? cameraPolicy.mCameraCompatFreeformPolicy.getCameraCompatAspectRatio(activity) : MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; return Math.max(displayRotationCompatPolicyAspectRatio, cameraCompatFreeformPolicyAspectRatio); Loading @@ -232,8 +254,8 @@ class AppCompatCameraPolicy { * Whether we should apply the min aspect ratio per-app override only when an app is connected * to the camera. */ boolean shouldOverrideMinAspectRatioForCamera(@NonNull ActivityRecord activityRecord) { return isCameraRunningAndWindowingModeEligible(activityRecord) static boolean shouldOverrideMinAspectRatioForCamera(@NonNull ActivityRecord activityRecord) { return AppCompatCameraPolicy.isCameraRunningAndWindowingModeEligible(activityRecord) && activityRecord.mAppCompatController.getAppCompatCameraOverrides() .isOverrideMinAspectRatioForCameraEnabled(); } Loading
services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java +3 −6 Original line number Diff line number Diff line Loading @@ -58,10 +58,8 @@ class AppCompatOrientationPolicy { && displayContent.getIgnoreOrientationRequest(); final boolean shouldApplyUserFullscreenOverride = mAppCompatOverrides .getAppCompatAspectRatioOverrides().shouldApplyUserFullscreenOverride(); final AppCompatCameraPolicy cameraPolicy = AppCompatCameraPolicy .getAppCompatCameraPolicy(mActivityRecord); final boolean shouldCameraCompatControlOrientation = cameraPolicy != null && cameraPolicy.shouldCameraCompatControlOrientation(mActivityRecord); final boolean shouldCameraCompatControlOrientation = AppCompatCameraPolicy.shouldCameraCompatControlOrientation(mActivityRecord); if (shouldApplyUserFullscreenOverride && isIgnoreOrientationRequestEnabled // Do not override orientation to fullscreen for camera activities. // Fixed-orientation activities are rarely tested in other orientations, and it Loading Loading @@ -98,7 +96,7 @@ class AppCompatOrientationPolicy { if (displayContent != null && mAppCompatOverrides.getAppCompatCameraOverrides() .isOverrideOrientationOnlyForCameraEnabled() && !displayContent.mAppCompatCameraPolicy && !AppCompatCameraPolicy .isActivityEligibleForOrientationOverride(mActivityRecord)) { return candidate; } Loading Loading @@ -213,5 +211,4 @@ class AppCompatOrientationPolicy { } return false; } }