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

Commit 150cf1c1 authored by Ben Murdoch's avatar Ben Murdoch
Browse files

Plumb View.getAccessibilityNodeProvider though WebViewProvider.

This is needed to make use of the new Accessibility implementation
in the Chromium WebView. nos for WebView Classic.

Change-Id: I8e26035d15af494e4caa50b4c6c7cb4ac8efeb9e
parent 3f43c4e6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.widget.AbsoluteLayout;
@@ -2051,6 +2052,13 @@ public class WebView extends AbsoluteLayout
    }
    */

    @Override
    public AccessibilityNodeProvider getAccessibilityNodeProvider() {
        AccessibilityNodeProvider provider =
                mProvider.getViewDelegate().getAccessibilityNodeProvider();
        return provider == null ? super.getAccessibilityNodeProvider() : provider;
    }

    @Deprecated
    @Override
    public boolean shouldDelayChildPressedState() {
+6 −0
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import android.view.ViewRootImpl;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.BaseInputConnection;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
@@ -1768,6 +1769,11 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
        return mWebViewPrivate.super_performAccessibilityAction(action, arguments);
    }

    @Override
    public AccessibilityNodeProvider getAccessibilityNodeProvider() {
      return null;
    }

    @Override
    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
        if (!mWebView.isEnabled()) {
+3 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.webkit.WebView.HitTestResult;
@@ -279,6 +280,8 @@ public interface WebViewProvider {
    interface ViewDelegate {
        public boolean shouldDelayChildPressedState();

        public AccessibilityNodeProvider getAccessibilityNodeProvider();

        public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info);

        public void onInitializeAccessibilityEvent(AccessibilityEvent event);