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

Commit b8e31129 authored by Joanne Chung's avatar Joanne Chung
Browse files

Add dispatchRequestTranslation() in WebViewProvider.

This change doesn't introduce a new API, the change is just pushing
down an existing API from View that we are missing to add for the
webview. We should also provide this method to allow webview provider
to provide their implementation if needed.

Bug: 186617107
Test: manual
CTS-Coverage-Bug: 177960696

Change-Id: If75285b3aafdb1f2a3d7c307a90bb783edf029b5
parent 0a35d1d6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14919,6 +14919,7 @@ package android.webkit {
  public static interface WebViewProvider.ViewDelegate {
    method public default void autofill(android.util.SparseArray<android.view.autofill.AutofillValue>);
    method public default void dispatchCreateViewTranslationRequest(@NonNull java.util.Map<android.view.autofill.AutofillId,long[]>, @NonNull int[], @Nullable android.view.translation.TranslationCapability, @NonNull java.util.List<android.view.translation.ViewTranslationRequest>);
    method public boolean dispatchKeyEvent(android.view.KeyEvent);
    method public android.view.View findFocus(android.view.View);
    method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider();
+12 −0
Original line number Diff line number Diff line
@@ -60,11 +60,13 @@ import android.view.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.autofill.AutofillId;
import android.view.autofill.AutofillValue;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inspector.InspectableProperty;
import android.view.textclassifier.TextClassifier;
import android.view.translation.TranslationCapability;
import android.view.translation.TranslationSpec.DataFormat;
import android.view.translation.ViewTranslationRequest;
import android.view.translation.ViewTranslationResponse;
@@ -2868,6 +2870,16 @@ public class WebView extends AbsoluteLayout
                supportedFormats, requestsCollector);
    }

    @Override
    public void dispatchCreateViewTranslationRequest(@NonNull Map<AutofillId, long[]> viewIds,
            @NonNull @DataFormat int[] supportedFormats,
            @Nullable TranslationCapability capability,
            @NonNull List<ViewTranslationRequest> requests) {
        super.dispatchCreateViewTranslationRequest(viewIds, supportedFormats, capability, requests);
        mProvider.getViewDelegate().dispatchCreateViewTranslationRequest(viewIds, supportedFormats,
                capability, requests);
    }

    @Override
    public void onVirtualViewTranslationResponses(
            @NonNull LongSparseArray<ViewTranslationResponse> response) {
+11 −0
Original line number Diff line number Diff line
@@ -45,10 +45,12 @@ import android.view.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.autofill.AutofillId;
import android.view.autofill.AutofillValue;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.textclassifier.TextClassifier;
import android.view.translation.TranslationCapability;
import android.view.translation.TranslationSpec.DataFormat;
import android.view.translation.ViewTranslationRequest;
import android.view.translation.ViewTranslationResponse;
@@ -59,6 +61,7 @@ import android.webkit.WebView.VisualStateCallback;

import java.io.BufferedWriter;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
@@ -377,6 +380,14 @@ public interface WebViewProvider {
                        LongSparseArray<ViewTranslationResponse> response) {
        }

        default void dispatchCreateViewTranslationRequest(
                @NonNull @SuppressWarnings("unused") Map<AutofillId, long[]> viewIds,
                @NonNull @SuppressWarnings("unused") @DataFormat int[] supportedFormats,
                @Nullable @SuppressWarnings("unused") TranslationCapability capability,
                @NonNull @SuppressWarnings("unused") List<ViewTranslationRequest> requests) {

        }

        public AccessibilityNodeProvider getAccessibilityNodeProvider();

        public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info);