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

Commit cf49a23b authored by Tima Vaisburd's avatar Tima Vaisburd
Browse files

TextClassifier: add API to WebView

Delegate the actions to WebViewProvider, by default they are no-ops.

Bug: 34780392
Test: Existing tests should be enough
Change-Id: Iefb1045b44a6e8cee5d1cc2c9b194b392d33f36d
parent 881a623e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -48824,6 +48824,7 @@ package android.webkit {
    method public int getRendererRequestedPriority();
    method public deprecated float getScale();
    method public android.webkit.WebSettings getSettings();
    method public android.view.textclassifier.TextClassifier getTextClassifier();
    method public java.lang.String getTitle();
    method public java.lang.String getUrl();
    method public android.webkit.WebChromeClient getWebChromeClient();
@@ -48870,6 +48871,7 @@ package android.webkit {
    method public void setNetworkAvailable(boolean);
    method public deprecated void setPictureListener(android.webkit.WebView.PictureListener);
    method public void setRendererPriorityPolicy(int, boolean);
    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
    method public deprecated void setVerticalScrollbarOverlay(boolean);
    method public void setWebChromeClient(android.webkit.WebChromeClient);
    method public static void setWebContentsDebuggingEnabled(boolean);
+4 −0
Original line number Diff line number Diff line
@@ -52377,6 +52377,7 @@ package android.webkit {
    method public int getRendererRequestedPriority();
    method public deprecated float getScale();
    method public android.webkit.WebSettings getSettings();
    method public android.view.textclassifier.TextClassifier getTextClassifier();
    method public java.lang.String getTitle();
    method public java.lang.String getUrl();
    method public android.webkit.WebChromeClient getWebChromeClient();
@@ -52424,6 +52425,7 @@ package android.webkit {
    method public void setNetworkAvailable(boolean);
    method public deprecated void setPictureListener(android.webkit.WebView.PictureListener);
    method public void setRendererPriorityPolicy(int, boolean);
    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
    method public deprecated void setVerticalScrollbarOverlay(boolean);
    method public void setWebChromeClient(android.webkit.WebChromeClient);
    method public static void setWebContentsDebuggingEnabled(boolean);
@@ -52665,6 +52667,7 @@ package android.webkit {
    method public abstract float getScale();
    method public abstract android.webkit.WebViewProvider.ScrollDelegate getScrollDelegate();
    method public abstract android.webkit.WebSettings getSettings();
    method public default android.view.textclassifier.TextClassifier getTextClassifier();
    method public abstract java.lang.String getTitle();
    method public abstract java.lang.String getTouchIconUrl();
    method public abstract java.lang.String getUrl();
@@ -52717,6 +52720,7 @@ package android.webkit {
    method public abstract void setNetworkAvailable(boolean);
    method public abstract void setPictureListener(android.webkit.WebView.PictureListener);
    method public abstract void setRendererPriorityPolicy(int, boolean);
    method public default void setTextClassifier(android.view.textclassifier.TextClassifier);
    method public abstract void setVerticalScrollbarOverlay(boolean);
    method public abstract void setWebChromeClient(android.webkit.WebChromeClient);
    method public abstract void setWebViewClient(android.webkit.WebViewClient);
+2 −0
Original line number Diff line number Diff line
@@ -49207,6 +49207,7 @@ package android.webkit {
    method public int getRendererRequestedPriority();
    method public deprecated float getScale();
    method public android.webkit.WebSettings getSettings();
    method public android.view.textclassifier.TextClassifier getTextClassifier();
    method public java.lang.String getTitle();
    method public java.lang.String getUrl();
    method public android.webkit.WebChromeClient getWebChromeClient();
@@ -49253,6 +49254,7 @@ package android.webkit {
    method public void setNetworkAvailable(boolean);
    method public deprecated void setPictureListener(android.webkit.WebView.PictureListener);
    method public void setRendererPriorityPolicy(int, boolean);
    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
    method public deprecated void setVerticalScrollbarOverlay(boolean);
    method public void setWebChromeClient(android.webkit.WebChromeClient);
    method public static void setWebContentsDebuggingEnabled(boolean);
+19 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.webkit;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.Widget;
import android.content.Context;
@@ -58,6 +59,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.textclassifier.TextClassifier;
import android.widget.AbsoluteLayout;

import java.io.BufferedWriter;
@@ -2249,6 +2251,23 @@ public class WebView extends AbsoluteLayout
    public boolean getRendererPriorityWaivedWhenNotVisible() {
        return mProvider.getRendererPriorityWaivedWhenNotVisible();
    }

    /**
     * Sets the {@link TextClassifier} for this WebView.
     */
    public void setTextClassifier(@Nullable TextClassifier textClassifier) {
        mProvider.setTextClassifier(textClassifier);
    }

    /**
     * Returns the {@link TextClassifier} used by this WebView.
     * If no TextClassifier has been set, this WebView uses the default set by the system.
     */
    @NonNull
    public TextClassifier getTextClassifier() {
        return mProvider.getTextClassifier();
    }

    //-------------------------------------------------------------------------
    // Interface for WebView providers
    //-------------------------------------------------------------------------
+9 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.webkit;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.content.res.Configuration;
import android.content.Intent;
@@ -41,6 +43,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.textclassifier.TextClassifier;
import android.webkit.WebView.HitTestResult;
import android.webkit.WebView.PictureListener;
import android.webkit.WebView.VisualStateCallback;
@@ -275,6 +278,12 @@ public interface WebViewProvider {

    public boolean getRendererPriorityWaivedWhenNotVisible();

    @SuppressWarnings("unused")
    public default void setTextClassifier(@Nullable TextClassifier textClassifier) {}

    @NonNull
    public default TextClassifier getTextClassifier() { return TextClassifier.NO_OP; }

    //-------------------------------------------------------------------------
    // Provider internal methods
    //-------------------------------------------------------------------------