Improve window content change events merging from multiple views
Since event throttled is merged into ViewRootImpl [1], even when events
from different nodes are merged, it looks like an event from a single
node.
Such an event should be marked as CHANGE_TYPE_SUBTREE.
Especially, without this change, there's a corner case where
AccessibilityCache is not able to invalidate node correctly. This case
is covered by a new CTS added together with this change.
This also updates a logic to change the event source to important parent
node, which was added in [2]. This should not be applied when there's
only a single node that is dispatching events, thus this change moves it
just before an event is actually dispatched.
[1] I1e1ecf1afc399e4103da82e6ed1779abfd3ec955
[2] I3c3c66151b6cd4773de4eadd417709e9a61a7cf2
Bug: 277305460
Test: CtsAccessibilityTestCases CtsAccessibilityServiceTestCases
Change-Id: Ic71f22ed6f6f54f49810dc83dc85dcd492dfc104
3 files changed