From 1450a8706d13153976021e9a946b32993b156f07 Mon Sep 17 00:00:00 2001 From: Joanne Chung Date: Wed, 28 Apr 2021 16:45:36 +0800 Subject: API feedback: Translation View API improvement. 1. Rename dispatchRequestTranslation(). 2. Provide what should be done in onViewTranslationResponse(). Bug: 186578468 Bug: 186578311 Test: atest CtsTranslationTestCases Test: manual. CTS-Coverage-Bug: 177960696 Change-Id: Id90e7d68a92ec17ec302d7ff05ef67c8bfa6454b --- core/api/current.txt | 2 +- core/java/android/view/View.java | 6 ++++-- core/java/android/view/ViewGroup.java | 10 ++++++---- .../java/android/view/translation/UiTranslationController.java | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index de92fd1af6ff..28e55401e4b0 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -48534,6 +48534,7 @@ package android.view { method public android.view.WindowInsets dispatchApplyWindowInsets(android.view.WindowInsets); method public boolean dispatchCapturedPointerEvent(android.view.MotionEvent); method public void dispatchConfigurationChanged(android.content.res.Configuration); + method public void dispatchCreateViewTranslationRequest(@NonNull java.util.Map, @NonNull int[], @NonNull android.view.translation.TranslationCapability, @NonNull java.util.List); method public void dispatchDisplayHint(int); method public boolean dispatchDragEvent(android.view.DragEvent); method protected void dispatchDraw(android.graphics.Canvas); @@ -48555,7 +48556,6 @@ package android.view { method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent); method public void dispatchProvideAutofillStructure(@NonNull android.view.ViewStructure, int); method public void dispatchProvideStructure(android.view.ViewStructure); - method public void dispatchRequestTranslation(@NonNull java.util.Map, @NonNull int[], @NonNull android.view.translation.TranslationCapability, @NonNull java.util.List); method protected void dispatchRestoreInstanceState(android.util.SparseArray); method protected void dispatchSaveInstanceState(android.util.SparseArray); method public void dispatchScrollCaptureSearch(@NonNull android.graphics.Rect, @NonNull android.graphics.Point, @NonNull java.util.function.Consumer); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index c1c892c98653..5e21a6d783a9 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -30876,7 +30876,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * Called when the content from {@link View#onCreateViewTranslationRequest} had been translated - * by the TranslationService. + * by the TranslationService. The {@link ViewTranslationResponse} should be saved here so that + * the {@link ViewTranslationResponse} can be used to display the translation when the system + * calls {@link ViewTranslationCallback#onShowTranslation}. * *

The default implementation will set the ViewTranslationResponse that can be get from * {@link View#getViewTranslationResponse}.

@@ -30929,7 +30931,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * information, e.g. source spec, target spec. * @param requests fill in with {@link ViewTranslationRequest}s for translation purpose. */ - public void dispatchRequestTranslation(@NonNull Map viewIds, + public void dispatchCreateViewTranslationRequest(@NonNull Map viewIds, @NonNull @DataFormat int[] supportedFormats, @NonNull TranslationCapability capability, @NonNull List requests) { diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index a02281be1228..4647f472f2a2 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -9275,21 +9275,23 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** * {@inheritDoc} * - * The implementation calls {@link #dispatchRequestTranslation} for all the child views. + * The implementation calls {@link #dispatchCreateViewTranslationRequest} for all the child + * views. */ @Override - public void dispatchRequestTranslation(@NonNull Map viewIds, + public void dispatchCreateViewTranslationRequest(@NonNull Map viewIds, @NonNull @DataFormat int[] supportedFormats, @Nullable TranslationCapability capability, @NonNull List requests) { - super.dispatchRequestTranslation(viewIds, supportedFormats, capability, requests); + super.dispatchCreateViewTranslationRequest(viewIds, supportedFormats, capability, requests); final int childCount = getChildCount(); if (childCount == 0) { return; } for (int i = 0; i < childCount; ++i) { final View child = getChildAt(i); - child.dispatchRequestTranslation(viewIds, supportedFormats, capability, requests); + child.dispatchCreateViewTranslationRequest(viewIds, supportedFormats, capability, + requests); } } } diff --git a/core/java/android/view/translation/UiTranslationController.java b/core/java/android/view/translation/UiTranslationController.java index 8a2b629b53cd..e0526f87340a 100644 --- a/core/java/android/view/translation/UiTranslationController.java +++ b/core/java/android/view/translation/UiTranslationController.java @@ -466,8 +466,8 @@ public class UiTranslationController { // traverse the hierarchy to collect ViewTranslationRequests for (int rootNum = 0; rootNum < roots.size(); rootNum++) { View rootView = roots.get(rootNum).getView(); - rootView.dispatchRequestTranslation(viewIds, supportedFormats, capability, - requests); + rootView.dispatchCreateViewTranslationRequest(viewIds, supportedFormats, + capability, requests); } mWorkerHandler.sendMessage(PooledLambda.obtainMessage( UiTranslationController::sendTranslationRequest, -- cgit v1.2.3-59-g8ed1b