diff options
| author | Joanne Chung <joannechung@google.com> | 2021-04-09 12:17:19 +0800 |
|---|---|---|
| committer | Joanne Chung <joannechung@google.com> | 2021-04-20 11:14:22 +0800 |
| commit | f6a52811a1a30784b99c3caeec3225062092219d (patch) | |
| tree | dffc7a7419c9054f373e54e4bff66cb9d5325a32 /core/java/android/widget/TextView.java | |
| parent | 62d25e0eb9a18a1ace9c746ca95a449d0ee9023e (diff) | |
API feedback: Translation View API refinement.
Bug: 178046780
Test: manual
Test: atest android.translation.cts.UiTranslationManagerTest
CTS-Coverage-Bug: 177960696
Change-Id: I557ca4b3b4e7324af12e81dd8b5ac8a04a17b6b8
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 1953a7687cb9..07a9a5fad6e2 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -13870,7 +13870,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** - * Returns a {@link ViewTranslationRequest} which represents the content to be translated. + * Collects a {@link ViewTranslationRequest} which represents the content to be translated in + * the view. * * <p>NOTE: When overriding the method, it should not translate the password. If the subclass * uses {@link TransformationMethod} to display the translated result, it's also not recommend @@ -13880,15 +13881,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * android.view.translation.TranslationSpec#DATA_FORMAT_TEXT}. * @return the {@link ViewTranslationRequest} which contains the information to be translated. */ - @Nullable @Override - public ViewTranslationRequest onCreateTranslationRequest(@NonNull int[] supportedFormats) { + public void onCreateViewTranslationRequest(@NonNull int[] supportedFormats, + @NonNull Consumer<ViewTranslationRequest> requestsCollector) { if (supportedFormats == null || supportedFormats.length == 0) { // TODO(b/182433547): remove before S release if (UiTranslationController.DEBUG) { Log.w(LOG_TAG, "Do not provide the support translation formats."); } - return null; + return; } ViewTranslationRequest.Builder requestBuilder = new ViewTranslationRequest.Builder(getAutofillId()); @@ -13899,7 +13900,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (UiTranslationController.DEBUG) { Log.w(LOG_TAG, "Cannot create translation request for the empty text."); } - return null; + return; } boolean isPassword = isAnyPasswordInputType() || hasPasswordTransformationMethod(); // TODO(b/177214256): support selectable text translation. @@ -13914,14 +13915,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener Log.w(LOG_TAG, "Cannot create translation request. editable = " + isTextEditable() + ", isPassword = " + isPassword + ", selectable = " + isTextSelectable()); + return; } - return null; } // TODO(b/176488462): apply the view's important for translation requestBuilder.setValue(ViewTranslationRequest.ID_TEXT, TranslationRequestValue.forText(mText)); } - return requestBuilder.build(); + requestsCollector.accept(requestBuilder.build()); } /** @@ -13932,6 +13933,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * * @return a {@link ViewTranslationCallback} that is used to control how to display the * translated information or {@code null} if this View doesn't support translation. + * + * @hide */ @Nullable @Override @@ -13948,15 +13951,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener /** * - * Called when the content from {@link #onCreateTranslationRequest} had been translated by the - * TranslationService. The default implementation will replace the current + * Called when the content from {@link #onCreateViewTranslationRequest} had been translated by + * the TranslationService. The default implementation will replace the current * {@link TransformationMethod} to transform the original text to the translated text display. * * @param response a {@link ViewTranslationResponse} that contains the translated information * which can be shown in the view. */ @Override - public void onTranslationResponse(@NonNull ViewTranslationResponse response) { + public void onViewTranslationResponse(@NonNull ViewTranslationResponse response) { + // set ViewTranslationResponse + super.onViewTranslationResponse(response); // TODO(b/183467275): Use the overridden ViewTranslationCallback instead of our default // implementation if the view has overridden getViewTranslationCallback. TextViewTranslationCallback callback = |
