Make Splash-screens touch opaque cross uid
Attempt 2. First attempt broke automated testing that started sending input as soon as the ActivityWindow was created. Since there are a few frames where both the SpalshScreen and the underlaying activity is visible we let touches pass through the SpalshScreen to the underlaying activity. However if the ActivityWindow doesn't exists the touches will be blocked by the ActivityRecordInputSink. This works thanks to the untrusted touches feature in InputDispatcher that blocks touches that are passing through opaque layers if the layers belong to different UIDs. By moving the ActivityRecordInputSink layer to the framework uid and leaving the AcitvityWindow and the splashscreen belonging to the application uid we achive the separtion we want: SpalshScreen are touch opaque cross uid, but are non-touchable within the same uid. Test: atest CtsInputTestCases:android.input.cts.InputShellCommandTest Test: Manually verified that touches will no longer pass through the StartingSurface to the ActivityRecordInputSink Bug: 194480991 Bug: 208659130 Bug: 211748378 Change-Id: I35ee6b40c108607c17dbf65fcd74656aec9c2a87
Loading
Please register or sign in to comment