In a car, ignore the orientation the app requests, and force the app to

run in the car's native orientation.

Test: Ran an app that forced portrait orientation
Bug: 25267450
Change-Id: Id66dcfd9fac1435ede0822017c2276db89d46627
(cherry picked from commit 17179cc8e9b99218296c91bf3d2c0eb90d7a636b)
This commit is contained in:
Dean Harding
2017-10-06 09:19:01 -07:00
parent df2a7f9f9d
commit 3e5a152ed3

View File

@@ -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,