Merge "Fix the translation not work if the animation is off" into sc-v2-dev
This commit is contained in:
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user