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

Commit 0a8e3c16 authored by Joanne Chung's avatar Joanne Chung Committed by Automerger Merge Worker
Browse files

Merge "Fix the existing translation doesn't update for new translated result."...

Merge "Fix the existing translation doesn't update for new translated result." into sc-qpr1-dev am: 0287b472 am: 2b558427 am: 8b7eb90c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15853776

Change-Id: I85232df3ddb496fcdb7709804e9dc94f75b5193a
parents 2fbbaab3 8b7eb90c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -62,6 +62,13 @@ public class TranslationTransformationMethod implements TransformationMethod2 {
        return mOriginalTranslationMethod;
    }

    /**
     * Returns the {@link TextView}'s {@link ViewTranslationResponse}.
     */
    public ViewTranslationResponse getViewTranslationResponse() {
        return mTranslationResponse;
    }

    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        if (!mAllowLengthChanges) {
+5 −0
Original line number Diff line number Diff line
@@ -41,6 +41,11 @@ public interface ViewTranslationCallback {
     * method will not be called before {@link View#onViewTranslationResponse} or
     * {@link View#onVirtualViewTranslationResponses}.
     *
     * <p> NOTE: It is possible the user changes text that causes a new
     * {@link ViewTranslationResponse} returns to show the new translation. If you cache the
     * {@link ViewTranslationResponse} here, you should remember to keep the cached value up
     * to date.
     *
     * <p> NOTE: For TextView implementation, {@link ContentCaptureSession#notifyViewTextChanged}
     * shouldn't be called with the translated text, simply calling setText() here will trigger the
     * method. You should either override {@code View#onProvideContentCaptureStructure()} to report
+6 −1
Original line number Diff line number Diff line
@@ -70,7 +70,12 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
                    + "onViewTranslationResponse().");
            return false;
        }
        if (mTranslationTransformation == null) {
        // It is possible user changes text and new translation response returns, system should
        // update the translation response to keep the result up to date.
        // Because TextView.setTransformationMethod() will skip the same TransformationMethod
        // instance, we should create a new one to let new translation can work.
        if (mTranslationTransformation == null
                || !response.equals(mTranslationTransformation.getViewTranslationResponse())) {
            TransformationMethod originalTranslationMethod =
                    ((TextView) view).getTransformationMethod();
            mTranslationTransformation = new TranslationTransformationMethod(response,