Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac0d317c authored by Svetoslav's avatar Svetoslav Committed by Android (Google) Code Review
Browse files

Merge "Update accessibility focused virtual view bounds." into lmp-dev

parents 977c5bec f0c758be
Loading
Loading
Loading
Loading
+27 −0
Original line number Original line Diff line number Diff line
@@ -6111,6 +6111,33 @@ public final class ViewRootImpl implements ViewParent,
                    }
                    }
                }
                }
            } break;
            } break;


            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED: {
                if (mAccessibilityFocusedHost != null && mAccessibilityFocusedVirtualView != null) {
                    // We care only for changes rooted in the focused host.
                    final long eventSourceId = event.getSourceNodeId();
                    final int hostViewId = AccessibilityNodeInfo.getAccessibilityViewId(
                            eventSourceId);
                    if (hostViewId != mAccessibilityFocusedHost.getAccessibilityViewId()) {
                        break;
                    }

                    // We only care about changes that may change the virtual focused view bounds.
                    final int changes = event.getContentChangeTypes();
                    if ((changes & AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE) != 0
                            || changes == AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED) {
                        AccessibilityNodeProvider provider = mAccessibilityFocusedHost
                                .getAccessibilityNodeProvider();
                        if (provider != null) {
                            final int virtualChildId = AccessibilityNodeInfo.getVirtualDescendantId(
                                    mAccessibilityFocusedVirtualView.getSourceNodeId());
                            mAccessibilityFocusedVirtualView = provider.createAccessibilityNodeInfo(
                                    virtualChildId);
                        }
                    }
                }
            } break;
        }
        }
        mAccessibilityManager.sendAccessibilityEvent(event);
        mAccessibilityManager.sendAccessibilityEvent(event);
        return true;
        return true;