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

Commit 6ca4cdb8 authored by Joanne Chung's avatar Joanne Chung Committed by Automerger Merge Worker
Browse files

Merge "Fix the translation not work if the animation is off" into tm-dev am: 8121a43e

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

Change-Id: I5e83348915e8e12525d8ade4312da116785aebb8
parents 70c9d697 8121a43e
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
                    originalTranslationMethod);
        }
        final TransformationMethod transformation = mTranslationTransformation;
        runWithAnimation(
        runChangeTextWithAnimationIfNeeded(
                (TextView) view,
                () -> {
                    mIsShowingTranslation = true;
@@ -122,7 +122,7 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
        if (mTranslationTransformation != null) {
            final TransformationMethod transformation =
                    mTranslationTransformation.getOriginalTransformationMethod();
            runWithAnimation(
            runChangeTextWithAnimationIfNeeded(
                    (TextView) view,
                    () -> {
                        mIsShowingTranslation = false;
@@ -232,10 +232,16 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
     * Applies a simple text alpha animation when toggling between original and translated text. The
     * text is fully faded out, then swapped to the new text, then the fading is reversed.
     *
     * @param runnable the operation to run on the view after the text is faded out, to change to
     * displaying the original or translated text.
     * @param changeTextRunnable the operation to run on the view after the text is faded out, to
     * change to displaying the original or translated text.
     */
    private void runWithAnimation(TextView view, Runnable runnable) {
    private void runChangeTextWithAnimationIfNeeded(TextView view, Runnable changeTextRunnable) {
        boolean areAnimatorsEnabled = ValueAnimator.areAnimatorsEnabled();
        if (!areAnimatorsEnabled) {
            // The animation is disabled, just change display text
            changeTextRunnable.run();
            return;
        }
        if (mAnimator != null) {
            mAnimator.end();
            // Note: mAnimator is now null; do not use again here.
@@ -269,7 +275,7 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {

            @Override
            public void onAnimationRepeat(Animator animation) {
                runnable.run();
                changeTextRunnable.run();
            }
        });
        mAnimator.start();