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

Commit c9c3c523 authored by Joanne Chung's avatar Joanne Chung Committed by Android (Google) Code Review
Browse files

Merge changes from topic "translation_animation-sc-v2-dev" into sc-v2-dev-plus-aosp

* changes:
  [automerge] Fix the translation not work if the animation is off 2p: 880a5921
  Fix the translation not work if the animation is off
parents 99deafe4 fd025bac
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -101,26 +101,26 @@ public final class UiTranslationManager {
    public static final String LOG_TAG = "UiTranslation";

    /**
     * The state caller request to disable utranslation,, it is no longer need to ui translation.
     * The state the caller requests to enable UI translation.
     *
     * @hide
     */
    public static final int STATE_UI_TRANSLATION_STARTED = 0;
    /**
     * The state caller request to pause ui translation, it will switch back to the original text.
     * The state caller requests to pause UI translation. It will switch back to the original text.
     *
     * @hide
     */
    public static final int STATE_UI_TRANSLATION_PAUSED = 1;
    /**
     * The state caller request to resume the paused ui translation, it will show the translated
     * The state caller requests to resume the paused UI translation. It will show the translated
     * text again if the text had been translated.
     *
     * @hide
     */
    public static final int STATE_UI_TRANSLATION_RESUMED = 2;
    /**
     * The state the caller request to enable ui translation.
     * The state the caller requests to disable UI translation when it no longer needs translation.
     *
     * @hide
     */
+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();