Loading core/java/android/window/flags/windowing_frontend.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,16 @@ flag { bug: "357141415" } flag { name: "opt_out_override_orientation_to_user" namespace: "windowing_frontend" description: "If apps opt out universal resizable, the override-to-user should not take effect" bug: "443951799" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "show_app_handle_large_screens" namespace: "windowing_frontend" Loading services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java +3 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,9 @@ class AppCompatAspectRatioOverrides { final int aspectRatio = getUserMinAspectRatioOverrideCode(); final boolean baseOverride = isChangeEnabled(mActivityRecord, OVERRIDE_ANY_ORIENTATION_TO_USER) && (!com.android.window.flags.Flags.optOutOverrideOrientationToUser() || !mActivityRecord.mAppCompatController.getResizeOverrides() .allowRestrictedResizability()) && !mAllowOrientationOverrideOptProp.isFalse() && (aspectRatio == USER_MIN_ASPECT_RATIO_UNSET || aspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN); Loading services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +40 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow; import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.dx.mockito.inline.extended.ExtendedMockito.never; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; Loading Loading @@ -138,6 +139,7 @@ import org.junit.Test; import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.MockitoSession; import java.util.List; import java.util.function.Consumer; Loading Loading @@ -5577,6 +5579,44 @@ public class SizeCompatTests extends WindowTestsBase { assertFitted(); } @Test @EnableCompatChanges({ActivityInfo.UNIVERSAL_RESIZABLE_BY_DEFAULT}) public void testRestrictedResizabilityOptOutNotOverrideToUser() { mDisplayContent.setIgnoreOrientationRequest(true); makeDisplayLargeScreen(mDisplayContent); setUpApp(mDisplayContent, new ActivityBuilder(mAtm) .setResizeMode(RESIZE_MODE_UNRESIZEABLE) .setScreenOrientation(SCREEN_ORIENTATION_PORTRAIT)); assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, mActivity.getOverrideOrientation()); final AppCompatAspectRatioOverrides overrides = mActivity.mAppCompatController.getAspectRatioOverrides(); final MockitoSession session = mockitoSession().spyStatic(AppCompatUtils.class) .strictness(org.mockito.quality.Strictness.LENIENT).startMocking(); try { doReturn(true).when(() -> AppCompatUtils.isChangeEnabled( eq(mActivity), eq(ActivityInfo.OVERRIDE_ANY_ORIENTATION_TO_USER))); overrides.resetSystemFullscreenOverrideCache(); assertTrue(overrides.isSystemOverrideToFullscreenEnabled()); if (com.android.window.flags.Flags.optOutOverrideOrientationToUser()) { return; } final AppCompatResizeOverrides resizeOverrides = mActivity.mAppCompatController.getResizeOverrides(); spyOn(resizeOverrides); doReturn(true).when(resizeOverrides).allowRestrictedResizability(); overrides.resetSystemFullscreenOverrideCache(); assertFalse(overrides.isSystemOverrideToFullscreenEnabled()); assertEquals(SCREEN_ORIENTATION_PORTRAIT, mActivity.getOverrideOrientation()); } finally { session.finishMocking(); } } @Test public void testClearSizeCompat_resetOverrideConfig() { final int origDensity = 480; Loading Loading
core/java/android/window/flags/windowing_frontend.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,16 @@ flag { bug: "357141415" } flag { name: "opt_out_override_orientation_to_user" namespace: "windowing_frontend" description: "If apps opt out universal resizable, the override-to-user should not take effect" bug: "443951799" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "show_app_handle_large_screens" namespace: "windowing_frontend" Loading
services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java +3 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,9 @@ class AppCompatAspectRatioOverrides { final int aspectRatio = getUserMinAspectRatioOverrideCode(); final boolean baseOverride = isChangeEnabled(mActivityRecord, OVERRIDE_ANY_ORIENTATION_TO_USER) && (!com.android.window.flags.Flags.optOutOverrideOrientationToUser() || !mActivityRecord.mAppCompatController.getResizeOverrides() .allowRestrictedResizability()) && !mAllowOrientationOverrideOptProp.isFalse() && (aspectRatio == USER_MIN_ASPECT_RATIO_UNSET || aspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN); Loading
services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +40 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow; import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.dx.mockito.inline.extended.ExtendedMockito.never; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; Loading Loading @@ -138,6 +139,7 @@ import org.junit.Test; import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.MockitoSession; import java.util.List; import java.util.function.Consumer; Loading Loading @@ -5577,6 +5579,44 @@ public class SizeCompatTests extends WindowTestsBase { assertFitted(); } @Test @EnableCompatChanges({ActivityInfo.UNIVERSAL_RESIZABLE_BY_DEFAULT}) public void testRestrictedResizabilityOptOutNotOverrideToUser() { mDisplayContent.setIgnoreOrientationRequest(true); makeDisplayLargeScreen(mDisplayContent); setUpApp(mDisplayContent, new ActivityBuilder(mAtm) .setResizeMode(RESIZE_MODE_UNRESIZEABLE) .setScreenOrientation(SCREEN_ORIENTATION_PORTRAIT)); assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, mActivity.getOverrideOrientation()); final AppCompatAspectRatioOverrides overrides = mActivity.mAppCompatController.getAspectRatioOverrides(); final MockitoSession session = mockitoSession().spyStatic(AppCompatUtils.class) .strictness(org.mockito.quality.Strictness.LENIENT).startMocking(); try { doReturn(true).when(() -> AppCompatUtils.isChangeEnabled( eq(mActivity), eq(ActivityInfo.OVERRIDE_ANY_ORIENTATION_TO_USER))); overrides.resetSystemFullscreenOverrideCache(); assertTrue(overrides.isSystemOverrideToFullscreenEnabled()); if (com.android.window.flags.Flags.optOutOverrideOrientationToUser()) { return; } final AppCompatResizeOverrides resizeOverrides = mActivity.mAppCompatController.getResizeOverrides(); spyOn(resizeOverrides); doReturn(true).when(resizeOverrides).allowRestrictedResizability(); overrides.resetSystemFullscreenOverrideCache(); assertFalse(overrides.isSystemOverrideToFullscreenEnabled()); assertEquals(SCREEN_ORIENTATION_PORTRAIT, mActivity.getOverrideOrientation()); } finally { session.finishMocking(); } } @Test public void testClearSizeCompat_resetOverrideConfig() { final int origDensity = 480; Loading