summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joanne Chung <joannechung@google.com> 2022-03-18 00:30:44 +0800
committer Joanne Chung <joannechung@google.com> 2022-03-24 14:55:15 +0800
commitfe6fddb4f086f9cf8e1c2bd84782496bd2992f8c (patch)
treea4003d17923db0683dbd9a197d25d2fa622844d6
parent56996833f73650ae7069bd2a16a2b33151c6b2a5 (diff)
Fix the translation not work if the animation is off
The system will show translation after the animation is done but it doesn't work if the animation is off. To fix the issue, we will check the animation status before showing translation. Bug: 215386127 Test: atest testUiTranslationWithoutAnimation Change-Id: Id0d02c422100effcf842209971052f4d6e9b0bd2
-rw-r--r--core/java/android/widget/TextViewTranslationCallback.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/core/java/android/widget/TextViewTranslationCallback.java b/core/java/android/widget/TextViewTranslationCallback.java
index 942be21b1ade..1713d842560b 100644
--- a/core/java/android/widget/TextViewTranslationCallback.java
+++ b/core/java/android/widget/TextViewTranslationCallback.java
@@ -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();