From aff09ea9329e54a7c757025e7fb6bba4c97c78e4 Mon Sep 17 00:00:00 2001 From: kwaky Date: Mon, 27 Jan 2020 16:03:19 -0800 Subject: [PATCH] Add vertical type check to prevent non-Automotive Androids from force displaying system bars. Force displaying system bars can cause app screen compatibility issues in non-Automotive Android. Bug: 148407132 Test: CTS Test + Unit Tests Change-Id: Ia433572650760e3b85954724c63084dca769eaa0 --- .../server/wm/WindowManagerService.java | 6 ++ services/tests/wmtests/AndroidManifest.xml | 1 + .../server/wm/WindowManagerServiceTests.java | 60 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 2c6c756dda3b3..23821adaf0c85 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -5680,6 +5680,12 @@ public class WindowManagerService extends IWindowManager.Stub @Override public void setForceShowSystemBars(boolean show) { + boolean isAutomotive = mContext.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_AUTOMOTIVE); + if (!isAutomotive) { + throw new UnsupportedOperationException("Force showing system bars is only supported" + + "for Automotive use cases."); + } if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Caller does not hold permission " diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml index 8c4544249b5cf..123bb079dbbb8 100644 --- a/services/tests/wmtests/AndroidManifest.xml +++ b/services/tests/wmtests/AndroidManifest.xml @@ -37,6 +37,7 @@ +