Force Kids app to use sensorLandscape when in reverseLandscape

A few apps in Kids Space request "reverseLandscape" orientation when
Display#getRotation returns ROTATION_270 expecting it to correspond
to the seascape display orientation while it may correspond to the
landscape one when config_reverseDefaultRotation is set to true.

This CL overrides the "reverseLandscape" and "landscape" orientation
with "sensorLandscape" in the context of apps running in the Kids space
when config_reverseDefaultRotation is set to true

Fixes: 265589619
Test: Run `atest WmTests:WindowManagerServiceTests`
      Run `atest WMShellUnitTests:KidsModeTaskOrganizerTest`
      Run `atest WmTests:LetterboxUiControllerTest`

Change-Id: Iadfb840199df9b308df699a9ca18ac5332c2536f
This commit is contained in:
Massimo Carli
2023-03-31 16:31:47 +00:00
parent 6ed71b9057
commit 9da476b39e

View File

@@ -23,6 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
import static android.view.Display.DEFAULT_DISPLAY;
import android.app.ActivityManager;
@@ -290,8 +291,11 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
// TODO(229961548): Remove ignoreOrientationRequest exception for Kids Mode once possible.
if (mReverseDefaultRotationEnabled) {
setOrientationRequestPolicy(/* isIgnoreOrientationRequestDisabled */ true,
/* fromOrientations */ new int[]{SCREEN_ORIENTATION_REVERSE_LANDSCAPE},
/* toOrientations */ new int[]{SCREEN_ORIENTATION_LANDSCAPE});
/* fromOrientations */
new int[]{SCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_LANDSCAPE},
/* toOrientations */
new int[]{SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
SCREEN_ORIENTATION_SENSOR_LANDSCAPE});
} else {
setOrientationRequestPolicy(/* isIgnoreOrientationRequestDisabled */ true,
/* fromOrientations */ null, /* toOrientations */ null);