Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
halo
frameworks_base
Commits
27ad2e95
Commit
27ad2e95
authored
10 years ago
by
Svetoslav
Committed by
Svetoslav Ganov
10 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Accessibility: Ensure fresh accessilbity focused and input focused nodes.
Change-Id: Ia3c84284843a415cdbbc2b6a9b06d9ddffbe0e04
parent
d2ccbd43
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
3 deletions
+29
-3
core/java/android/view/accessibility/AccessibilityCache.java
core/java/android/view/accessibility/AccessibilityCache.java
+29
-3
No files found.
core/java/android/view/accessibility/AccessibilityCache.java
View file @
27ad2e95
...
...
@@ -40,6 +40,9 @@ final class AccessibilityCache {
private
final
Object
mLock
=
new
Object
();
private
long
mAccessibilityFocus
=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
;
private
long
mInputFocus
=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
;
private
final
SparseArray
<
AccessibilityWindowInfo
>
mWindowCache
=
new
SparseArray
<>();
...
...
@@ -73,9 +76,29 @@ final class AccessibilityCache {
synchronized
(
mLock
)
{
final
int
eventType
=
event
.
getEventType
();
switch
(
eventType
)
{
case
AccessibilityEvent
.
TYPE_VIEW_FOCUSED
:
case
AccessibilityEvent
.
TYPE_VIEW_ACCESSIBILITY_FOCUSED
:
case
AccessibilityEvent
.
TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED
:
case
AccessibilityEvent
.
TYPE_VIEW_ACCESSIBILITY_FOCUSED
:
{
if
(
mAccessibilityFocus
!=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
)
{
refreshCachedNodeLocked
(
event
.
getWindowId
(),
mAccessibilityFocus
);
}
mAccessibilityFocus
=
event
.
getSourceNodeId
();
refreshCachedNodeLocked
(
event
.
getWindowId
(),
mAccessibilityFocus
);
}
break
;
case
AccessibilityEvent
.
TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED
:
{
if
(
mAccessibilityFocus
==
event
.
getSourceNodeId
())
{
refreshCachedNodeLocked
(
event
.
getWindowId
(),
mAccessibilityFocus
);
mAccessibilityFocus
=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
;
}
}
break
;
case
AccessibilityEvent
.
TYPE_VIEW_FOCUSED
:
{
if
(
mInputFocus
!=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
)
{
refreshCachedNodeLocked
(
event
.
getWindowId
(),
mInputFocus
);
}
mInputFocus
=
event
.
getSourceNodeId
();
refreshCachedNodeLocked
(
event
.
getWindowId
(),
mInputFocus
);
}
break
;
case
AccessibilityEvent
.
TYPE_VIEW_SELECTED
:
case
AccessibilityEvent
.
TYPE_VIEW_TEXT_CHANGED
:
case
AccessibilityEvent
.
TYPE_VIEW_CLICKED
:
...
...
@@ -268,6 +291,9 @@ final class AccessibilityCache {
final
int
windowId
=
mNodeCache
.
keyAt
(
i
);
clearNodesForWindowLocked
(
windowId
);
}
mAccessibilityFocus
=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
;
mInputFocus
=
AccessibilityNodeInfo
.
UNDEFINED_ITEM_ID
;
}
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment