From d7f514abbe0bee01003ef694a67abfaa30667b4d Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Mon, 26 Oct 2020 09:08:49 -0700 Subject: [PATCH 1/2] Prevent non-system overlays from showing over CDM UI Since CDM grants privileges, it should have the same overlay policy as permission UI Test: use an app wit ha visible overlay to ensure the overlay disappears when CDM is shown Fixes: 171221090 Change-Id: I004843edf5a156dc07fb961edf80272f5cb50163 (cherry picked from commit ea4ce4d48eb22e05f03b36e281149f1e944674fa) Merged-In: I004843edf5a156dc07fb961edf80272f5cb50163 --- .../android/companiondevicemanager/DeviceChooserActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java index 16ef59f201f17..7bc9993751d40 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java @@ -17,6 +17,7 @@ package com.android.companiondevicemanager; import static android.companion.BluetoothDeviceFilterUtils.getDeviceMacAddress; +import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import android.app.Activity; import android.companion.CompanionDeviceManager; @@ -56,6 +57,8 @@ public class DeviceChooserActivity extends Activity { Log.e(LOG_TAG, "About to show UI, but no devices to show"); } + getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); + if (getService().mRequest.isSingleDevice()) { setContentView(R.layout.device_confirmation); final DeviceFilterPair selectedDevice = getService().mDevicesFound.get(0); From f717d7195fa8654a7c9e4e28bbe473f8513eef64 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Fri, 4 Dec 2020 16:01:46 -0800 Subject: [PATCH 2/2] Allow CDM to hide overlays Since CDM has sensitive user consent UIs, it should be able to hide non-system overlays Test: use a 3p overlay app with a visible overlay to ensure overlay disappears when CDM is shown Bug: 171221090 Change-Id: I78673b7b95f4c3cb31fab180201eb17c9123bddf Merged-In: I78673b7b95f4c3cb31fab180201eb17c9123bddf --- packages/CompanionDeviceManager/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/CompanionDeviceManager/AndroidManifest.xml b/packages/CompanionDeviceManager/AndroidManifest.xml index ea9b52cbf3d51..e4e5b9fa781a2 100644 --- a/packages/CompanionDeviceManager/AndroidManifest.xml +++ b/packages/CompanionDeviceManager/AndroidManifest.xml @@ -31,6 +31,7 @@ +