diff options
| author | Keisuke Kuroyanagi <ksk@google.com> | 2016-02-29 12:53:58 -0800 |
|---|---|---|
| committer | Keisuke Kuroyanagi <ksk@google.com> | 2016-03-08 04:58:46 +0000 |
| commit | af4caa60064d95aeffc7ab81095a269893f5f2a1 (patch) | |
| tree | 2e58f3467bcaa7fd85b5e0b4a3c2d61f87881b5f /core/java/android/widget/TextView.java | |
| parent | d319450307fcbd1f3dd99bf647c2c0281eb18e34 (diff) | |
Call View#setHasTransientState in TextView#spanChange.
setHasTransientState(true) and setHasTransientState(false) have to
be coupled, but they were not always coupled in TextView. e.g. when
we fire PROCESS_TEXT intent.
With this CL, TextView calls setHasTransientState() always when
selection is created or cleared to make sure 2 setHasTransientState
calls are always coupled.
Bug: 27409041
Change-Id: Ib454b0fbbc2c2f8d19818f154f415c4a5d7e2d7e
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 6feefb4e673b..dd55cd835b39 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8285,6 +8285,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (newSelEnd < 0) { newSelEnd = Selection.getSelectionEnd(buf); } + + if (newSelStart == newSelEnd && hasTransientState()) { + setHasTransientState(false); + } else if (newSelStart != newSelEnd && !hasTransientState()) { + setHasTransientState(true); + } + if (mEditor != null) { mEditor.refreshTextActionMode(); } |
