Make Splash-screens touch opaque

Test: Manually verified that touches will no longer pass through the
StartingSurface to the ActivityRecordInputSink
Bug: 194480991
Bug: 208659130

Change-Id: Ib695718623481b5d376a8b221048c69a73c923a1
This commit is contained in:
Linus Tufvesson
2021-12-13 16:53:50 +00:00
parent 9e699657d8
commit c5b7502174

View File

@@ -269,16 +269,12 @@ public class StartingSurfaceDrawer {
// touchable or focusable by the user. We also add in the ALT_FOCUSABLE_IM
// flag because we do know that the next window will take input
// focus, so we want to get the IME window up on top of us right away.
windowFlags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
windowFlags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
params.flags = windowFlags;
params.token = appToken;
params.packageName = activityInfo.packageName;
params.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
// Setting as trusted overlay to let touches pass through. This is safe because this
// window is controlled by the system.
params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY;
if (!context.getResources().getCompatibilityInfo().supportsScreen()) {
params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_COMPATIBLE_WINDOW;