am 060bca74: Merge "Accessibility: Handle a missed case when clicking focused views." into lmp-mr1-dev
* commit '060bca7444b8bf34fa95a6a71daf72fa8a85d78e': Accessibility: Handle a missed case when clicking focused views.
This commit is contained in:
@@ -8440,8 +8440,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
// If the event should be handled by accessibility focus first.
|
||||
if (event.isTargetAccessibilityFocus()) {
|
||||
// We don't have focus or no virtual descendant has it, do not handle the event.
|
||||
if (!isAccessibilityFocused() && !(getViewRootImpl() != null && getViewRootImpl()
|
||||
.getAccessibilityFocusedHost() == this)) {
|
||||
if (!isAccessibilityFocusedViewOrHost()) {
|
||||
return false;
|
||||
}
|
||||
// We have focus and got the event, then use normal event dispatch.
|
||||
@@ -8490,6 +8489,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
return result;
|
||||
}
|
||||
|
||||
boolean isAccessibilityFocusedViewOrHost() {
|
||||
return isAccessibilityFocused() || (getViewRootImpl() != null && getViewRootImpl()
|
||||
.getAccessibilityFocusedHost() == this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the touch event to apply security policies.
|
||||
*
|
||||
|
||||
@@ -1934,6 +1934,12 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
// Whether this event should be handled by the accessibility focus first.
|
||||
final boolean targetAccessibilityFocus = ev.isTargetAccessibilityFocus();
|
||||
|
||||
// If the event targets the accessibility focused view and this is it, start
|
||||
// normal event dispatch. Maybe a descendant is what will handle the click.
|
||||
if (targetAccessibilityFocus && isAccessibilityFocusedViewOrHost()) {
|
||||
ev.setTargetAccessibilityFocus(false);
|
||||
}
|
||||
|
||||
boolean handled = false;
|
||||
if (onFilterTouchEventForSecurity(ev)) {
|
||||
final int action = ev.getAction();
|
||||
|
||||
Reference in New Issue
Block a user