OSDN Git Service

Fix a11y cache correctness bug
authorPhil Weaver <pweaver@google.com>
Tue, 17 Jul 2018 19:28:24 +0000 (12:28 -0700)
committerPhil Weaver <pweaver@google.com>
Thu, 20 Sep 2018 23:46:25 +0000 (23:46 +0000)
commit2f69c16c3dd0ea9522deebd9141ccc189b4a118e
treedac9338de36dede11b386aa070779b61c5ed155d
parent82b0d17b393783c5259bf183a7ded118d28e50cc
Fix a11y cache correctness bug

If two views change, their common ancestor can send
a subtree_changed event. But the cache is dropping
events that come from views that it hasn't cached.

Now clearing the cache entirely when a node not in
the cache sends a subtree changed event, since we
don't know which nodes are descendents and which
may have changed.

I'm not thrilled with this change, since it may
degrade performance, but I want to fix the correctness
problem quickly.

Bug: 111554539
Test: atest AccessibilityCacheTest
Change-Id: Ib32d3622cddd7001663943eff71e823d21f5e500
(cherry picked from commit a4002c8daf272f550787d94bed8e81749a891e66)
core/java/android/view/accessibility/AccessibilityCache.java
core/tests/coretests/src/android/view/accessibility/AccessibilityCacheTest.java