Loading data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -3865,6 +3865,12 @@ "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/WindowState.java" }, "1511273241": { "message": "Refreshing activity for camera compatibility treatment, activityRecord=%s", "level": "VERBOSE", "group": "WM_DEBUG_STATES", "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java" }, "1518495446": { "message": "removeWindowToken: Attempted to remove non-existing token: %s", "level": "WARN", Loading Loading @@ -4297,12 +4303,6 @@ "group": "WM_DEBUG_REMOTE_ANIMATIONS", "at": "com\/android\/server\/wm\/RemoteAnimationController.java" }, "1967643923": { "message": "Refershing activity for camera compatibility treatment, activityRecord=%s", "level": "VERBOSE", "group": "WM_DEBUG_STATES", "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java" }, "1967975839": { "message": "Changing app %s visible=%b performLayout=%b", "level": "VERBOSE", Loading services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java +7 −4 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ final class DisplayRotationCompatPolicy { try { activity.mLetterboxUiController.setIsRefreshAfterRotationRequested(true); ProtoLog.v(WM_DEBUG_STATES, "Refershing activity for camera compatibility treatment, " "Refreshing activity for camera compatibility treatment, " + "activityRecord=%s", activity); final ClientTransaction transaction = ClientTransaction.obtain( activity.app.getThread(), activity.token); Loading Loading @@ -311,11 +311,14 @@ final class DisplayRotationCompatPolicy { } } // Refreshing only when configuration changes after rotation. // Refreshing only when configuration changes after rotation or camera split screen aspect ratio // treatment is enabled private boolean shouldRefreshActivity(ActivityRecord activity, Configuration newConfig, Configuration lastReportedConfig) { return newConfig.windowConfiguration.getDisplayRotation() != lastReportedConfig.windowConfiguration.getDisplayRotation() final boolean displayRotationChanged = (newConfig.windowConfiguration.getDisplayRotation() != lastReportedConfig.windowConfiguration.getDisplayRotation()); return (displayRotationChanged || activity.mLetterboxUiController.isCameraCompatSplitScreenAspectRatioAllowed()) && isTreatmentEnabledForActivity(activity) && activity.mLetterboxUiController.shouldRefreshActivityForCameraCompat(); } Loading services/core/java/com/android/server/wm/LetterboxConfiguration.java +2 −2 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ final class LetterboxConfiguration { // otherwise the apps get blacked out when they are resumed and do not have focus yet. private boolean mIsCompatFakeFocusEnabled; // Whether should use split screen aspect ratio for the activity when camera compat treatment // Whether we should use split screen aspect ratio for the activity when camera compat treatment // is enabled and activity is connected to the camera in fullscreen. private final boolean mIsCameraCompatSplitScreenAspectRatioEnabled; Loading Loading @@ -1118,7 +1118,7 @@ final class LetterboxConfiguration { } /** * Whether should use split screen aspect ratio for the activity when camera compat treatment * Whether we should use split screen aspect ratio for the activity when camera compat treatment * is enabled and activity is connected to the camera in fullscreen. */ boolean isCameraCompatSplitScreenAspectRatioEnabled() { Loading services/core/java/com/android/server/wm/LetterboxUiController.java +1 −1 Original line number Diff line number Diff line Loading @@ -958,7 +958,7 @@ final class LetterboxUiController { * Whether we use split screen aspect ratio for the activity when camera compat treatment * is active because the corresponding config is enabled and activity supports resizing. */ private boolean isCameraCompatSplitScreenAspectRatioAllowed() { boolean isCameraCompatSplitScreenAspectRatioAllowed() { return mLetterboxConfiguration.isCameraCompatSplitScreenAspectRatioEnabled() && !mActivityRecord.shouldCreateCompatDisplayInsets(); } Loading services/tests/wmtests/src/com/android/server/wm/DisplayRotationCompatPolicyTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,8 @@ public final class DisplayRotationCompatPolicyTests extends WindowTestsBase { public void testOnActivityConfigurationChanging_displayRotationNotChanging_noRefresh() throws Exception { configureActivity(SCREEN_ORIENTATION_PORTRAIT); doReturn(false).when(mActivity.mLetterboxUiController) .isCameraCompatSplitScreenAspectRatioAllowed(); mCameraAvailabilityCallback.onCameraOpened(CAMERA_ID_1, TEST_PACKAGE_1); callOnActivityConfigurationChanging(mActivity, /* isDisplayRotationChanging */ false); Loading @@ -486,6 +488,19 @@ public final class DisplayRotationCompatPolicyTests extends WindowTestsBase { assertActivityRefreshRequested(/* refreshRequested */ false); } @Test public void testOnActivityConfigurationChanging_splitScreenAspectRatioAllowed_refresh() throws Exception { configureActivity(SCREEN_ORIENTATION_PORTRAIT); doReturn(true).when(mActivity.mLetterboxUiController) .isCameraCompatSplitScreenAspectRatioAllowed(); mCameraAvailabilityCallback.onCameraOpened(CAMERA_ID_1, TEST_PACKAGE_1); callOnActivityConfigurationChanging(mActivity, /* isDisplayRotationChanging */ false); assertActivityRefreshRequested(/* refreshRequested */ true); } @Test public void testOnActivityConfigurationChanging_cycleThroughStopDisabled() throws Exception { when(mLetterboxConfiguration.isCameraCompatRefreshCycleThroughStopEnabled()) Loading Loading
data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -3865,6 +3865,12 @@ "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/WindowState.java" }, "1511273241": { "message": "Refreshing activity for camera compatibility treatment, activityRecord=%s", "level": "VERBOSE", "group": "WM_DEBUG_STATES", "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java" }, "1518495446": { "message": "removeWindowToken: Attempted to remove non-existing token: %s", "level": "WARN", Loading Loading @@ -4297,12 +4303,6 @@ "group": "WM_DEBUG_REMOTE_ANIMATIONS", "at": "com\/android\/server\/wm\/RemoteAnimationController.java" }, "1967643923": { "message": "Refershing activity for camera compatibility treatment, activityRecord=%s", "level": "VERBOSE", "group": "WM_DEBUG_STATES", "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java" }, "1967975839": { "message": "Changing app %s visible=%b performLayout=%b", "level": "VERBOSE", Loading
services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java +7 −4 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ final class DisplayRotationCompatPolicy { try { activity.mLetterboxUiController.setIsRefreshAfterRotationRequested(true); ProtoLog.v(WM_DEBUG_STATES, "Refershing activity for camera compatibility treatment, " "Refreshing activity for camera compatibility treatment, " + "activityRecord=%s", activity); final ClientTransaction transaction = ClientTransaction.obtain( activity.app.getThread(), activity.token); Loading Loading @@ -311,11 +311,14 @@ final class DisplayRotationCompatPolicy { } } // Refreshing only when configuration changes after rotation. // Refreshing only when configuration changes after rotation or camera split screen aspect ratio // treatment is enabled private boolean shouldRefreshActivity(ActivityRecord activity, Configuration newConfig, Configuration lastReportedConfig) { return newConfig.windowConfiguration.getDisplayRotation() != lastReportedConfig.windowConfiguration.getDisplayRotation() final boolean displayRotationChanged = (newConfig.windowConfiguration.getDisplayRotation() != lastReportedConfig.windowConfiguration.getDisplayRotation()); return (displayRotationChanged || activity.mLetterboxUiController.isCameraCompatSplitScreenAspectRatioAllowed()) && isTreatmentEnabledForActivity(activity) && activity.mLetterboxUiController.shouldRefreshActivityForCameraCompat(); } Loading
services/core/java/com/android/server/wm/LetterboxConfiguration.java +2 −2 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ final class LetterboxConfiguration { // otherwise the apps get blacked out when they are resumed and do not have focus yet. private boolean mIsCompatFakeFocusEnabled; // Whether should use split screen aspect ratio for the activity when camera compat treatment // Whether we should use split screen aspect ratio for the activity when camera compat treatment // is enabled and activity is connected to the camera in fullscreen. private final boolean mIsCameraCompatSplitScreenAspectRatioEnabled; Loading Loading @@ -1118,7 +1118,7 @@ final class LetterboxConfiguration { } /** * Whether should use split screen aspect ratio for the activity when camera compat treatment * Whether we should use split screen aspect ratio for the activity when camera compat treatment * is enabled and activity is connected to the camera in fullscreen. */ boolean isCameraCompatSplitScreenAspectRatioEnabled() { Loading
services/core/java/com/android/server/wm/LetterboxUiController.java +1 −1 Original line number Diff line number Diff line Loading @@ -958,7 +958,7 @@ final class LetterboxUiController { * Whether we use split screen aspect ratio for the activity when camera compat treatment * is active because the corresponding config is enabled and activity supports resizing. */ private boolean isCameraCompatSplitScreenAspectRatioAllowed() { boolean isCameraCompatSplitScreenAspectRatioAllowed() { return mLetterboxConfiguration.isCameraCompatSplitScreenAspectRatioEnabled() && !mActivityRecord.shouldCreateCompatDisplayInsets(); } Loading
services/tests/wmtests/src/com/android/server/wm/DisplayRotationCompatPolicyTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,8 @@ public final class DisplayRotationCompatPolicyTests extends WindowTestsBase { public void testOnActivityConfigurationChanging_displayRotationNotChanging_noRefresh() throws Exception { configureActivity(SCREEN_ORIENTATION_PORTRAIT); doReturn(false).when(mActivity.mLetterboxUiController) .isCameraCompatSplitScreenAspectRatioAllowed(); mCameraAvailabilityCallback.onCameraOpened(CAMERA_ID_1, TEST_PACKAGE_1); callOnActivityConfigurationChanging(mActivity, /* isDisplayRotationChanging */ false); Loading @@ -486,6 +488,19 @@ public final class DisplayRotationCompatPolicyTests extends WindowTestsBase { assertActivityRefreshRequested(/* refreshRequested */ false); } @Test public void testOnActivityConfigurationChanging_splitScreenAspectRatioAllowed_refresh() throws Exception { configureActivity(SCREEN_ORIENTATION_PORTRAIT); doReturn(true).when(mActivity.mLetterboxUiController) .isCameraCompatSplitScreenAspectRatioAllowed(); mCameraAvailabilityCallback.onCameraOpened(CAMERA_ID_1, TEST_PACKAGE_1); callOnActivityConfigurationChanging(mActivity, /* isDisplayRotationChanging */ false); assertActivityRefreshRequested(/* refreshRequested */ true); } @Test public void testOnActivityConfigurationChanging_cycleThroughStopDisabled() throws Exception { when(mLetterboxConfiguration.isCameraCompatRefreshCycleThroughStopEnabled()) Loading