diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 96a23b2a25ec3..d7c3aa4ea137b 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -14919,6 +14919,7 @@ package android.webkit { public static interface WebViewProvider.ViewDelegate { method public default void autofill(android.util.SparseArray); + method public default void dispatchCreateViewTranslationRequest(@NonNull java.util.Map, @NonNull int[], @Nullable android.view.translation.TranslationCapability, @NonNull java.util.List); method public boolean dispatchKeyEvent(android.view.KeyEvent); method public android.view.View findFocus(android.view.View); method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider(); diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index a1d482264f4c0..0bbaac0fa9870 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -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 viewIds, + @NonNull @DataFormat int[] supportedFormats, + @Nullable TranslationCapability capability, + @NonNull List requests) { + super.dispatchCreateViewTranslationRequest(viewIds, supportedFormats, capability, requests); + mProvider.getViewDelegate().dispatchCreateViewTranslationRequest(viewIds, supportedFormats, + capability, requests); + } + @Override public void onVirtualViewTranslationResponses( @NonNull LongSparseArray response) { diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index 8d996ee9f50a9..f9f823b70810c 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -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 response) { } + default void dispatchCreateViewTranslationRequest( + @NonNull @SuppressWarnings("unused") Map viewIds, + @NonNull @SuppressWarnings("unused") @DataFormat int[] supportedFormats, + @Nullable @SuppressWarnings("unused") TranslationCapability capability, + @NonNull @SuppressWarnings("unused") List requests) { + + } + public AccessibilityNodeProvider getAccessibilityNodeProvider(); public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info);