diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 0e68a8f64e5f..0b65b2287bdd 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -119,6 +119,7 @@ import static com.android.server.wm.proto.DisplayProto.WINDOW_CONTAINER; import android.annotation.CallSuper; import android.annotation.NonNull; import android.app.ActivityManager.StackId; +import android.content.pm.PackageManager; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; @@ -3571,6 +3572,16 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } final int orientation = super.getOrientation(); + boolean isCar = mService.mContext.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_AUTOMOTIVE); + if (isCar) { + // In a car, you cannot physically rotate the screen, so it doesn't make sense to + // allow anything but the default orientation. + if (DEBUG_ORIENTATION) Slog.v(TAG_WM, + "Forcing UNSPECIFIED orientation in car. Ignoring " + orientation); + return SCREEN_ORIENTATION_UNSPECIFIED; + } + if (orientation != SCREEN_ORIENTATION_UNSET && orientation != SCREEN_ORIENTATION_BEHIND) { if (DEBUG_ORIENTATION) Slog.v(TAG_WM, |