From ab96d4bb3b77c450e42d03ac7660a3569c80533f Mon Sep 17 00:00:00 2001 From: Linus Tufvesson Date: Wed, 5 Jan 2022 13:29:32 +0000 Subject: [PATCH] ENABLE_TOUCH_OPAQUE_ACTIVITIES to default enabled Use mActivityRecord.getSurfaceControl() to set the correct bounds when activity is moved between tasks Test: atest CtsWindowManagerDeviceTestCases:WindowUntrustedTouchTest Test: atest CtsInputTestCases:android.input.cts.InputShellCommandTest Test: Manually verifed with sample app that touches are blocked from passing through activities by default Bug: 194480991 Change-Id: I7b709ebfd3e854a4e814f534b605a4c0c6466d2b --- .../com/android/server/wm/ActivityRecordInputSink.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityRecordInputSink.java b/services/core/java/com/android/server/wm/ActivityRecordInputSink.java index 16813485b988f..4b3078ae7c004 100644 --- a/services/core/java/com/android/server/wm/ActivityRecordInputSink.java +++ b/services/core/java/com/android/server/wm/ActivityRecordInputSink.java @@ -22,7 +22,7 @@ import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; -import android.compat.annotation.Disabled; +import android.compat.annotation.Overridable; import android.os.IBinder; import android.os.InputConstants; import android.os.Looper; @@ -47,7 +47,7 @@ class ActivityRecordInputSink { * Feature flag for making Activities consume all touches within their task bounds. */ @ChangeId - @Disabled + @Overridable static final long ENABLE_TOUCH_OPAQUE_ACTIVITIES = 194480991L; private static final String TAG = "ActivityRecordInputSink"; @@ -116,8 +116,7 @@ class ActivityRecordInputSink { private InputWindowHandle createInputWindowHandle() { InputWindowHandle inputWindowHandle = new InputWindowHandle(null, mActivityRecord.getDisplayId()); - inputWindowHandle.replaceTouchableRegionWithCrop( - mActivityRecord.getParentSurfaceControl()); + inputWindowHandle.replaceTouchableRegionWithCrop(mActivityRecord.getSurfaceControl()); inputWindowHandle.name = mName; inputWindowHandle.ownerUid = Process.myUid(); inputWindowHandle.ownerPid = Process.myPid();