diff options
| author | John Reck <jreck@google.com> | 2021-09-22 14:26:21 -0400 |
|---|---|---|
| committer | John Reck <jreck@google.com> | 2021-09-22 14:29:41 -0400 |
| commit | 2a12f6b0e4dc93a8d45c9e2d40c108dbc50d8314 (patch) | |
| tree | 1865de16a8b2ec3bf9a06ef5b9b061e03dcba5aa /core/java/android/widget/TextView.java | |
| parent | c04459992058fc40e4d62734699602a2e9ae2696 (diff) | |
Don't animate TextView marquee if not visible
Test: guess
Bug: ???
Change-Id: I0d978d18ca66a36b24160f71eae0766da0bdd7d4
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 69a5e3904715..b1136e5ae1e6 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -10631,8 +10631,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return; } - if ((mMarquee == null || mMarquee.isStopped()) && (isFocused() || isSelected()) - && getLineCount() == 1 && canMarquee()) { + if ((mMarquee == null || mMarquee.isStopped()) && isAggregatedVisible() + && (isFocused() || isSelected()) && getLineCount() == 1 && canMarquee()) { if (mMarqueeFadeMode == MARQUEE_FADE_SWITCH_SHOW_ELLIPSIS) { mMarqueeFadeMode = MARQUEE_FADE_SWITCH_SHOW_FADE; @@ -11091,6 +11091,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } } + @Override + public void onVisibilityAggregated(boolean isVisible) { + super.onVisibilityAggregated(isVisible); + startStopMarquee(isVisible); + } + /** * Use {@link BaseInputConnection#removeComposingSpans * BaseInputConnection.removeComposingSpans()} to remove any IME composing @@ -13712,7 +13718,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mChoreographer.removeFrameCallback(mTickCallback); final TextView textView = mView.get(); - if (textView != null && (textView.isFocused() || textView.isSelected())) { + if (textView != null && textView.isAggregatedVisible() + && (textView.isFocused() || textView.isSelected())) { long currentMs = mChoreographer.getFrameTime(); long deltaMs = currentMs - mLastAnimationMs; mLastAnimationMs = currentMs; |
