From 545c4d44389f189f7dda68f8e0f54d3b90ad98a6 Mon Sep 17 00:00:00 2001 From: Gilles Debunne Date: Tue, 29 Nov 2011 10:37:15 -0800 Subject: Rationalize blinking cursor test. Moved full test into shouldBlink() to make the condition consistent. Change-Id: Id8abf38e180e1a00eb132476f102361f0feb56da --- core/java/android/widget/TextView.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index db9629ac45fa..31ca32d94c40 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -1202,14 +1202,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener imm.hideSoftInputFromWindow(getWindowToken(), 0); } } + super.setEnabled(enabled); - prepareCursorControllers(); + if (enabled) { // Make sure IME is updated with current editor info. InputMethodManager imm = InputMethodManager.peekInstance(); if (imm != null) imm.restartInput(this); } + prepareCursorControllers(); + // start or stop the cursor blinking as appropriate makeBlink(); } @@ -8575,7 +8578,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @return True when the TextView isFocused and has a valid zero-length selection (cursor). */ private boolean shouldBlink() { - if (!isFocused()) return false; + if (!isCursorVisible() || !isFocused()) return false; final int start = getSelectionStart(); if (start < 0) return false; @@ -8587,13 +8590,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void makeBlink() { - if (isCursorVisible()) { - if (shouldBlink()) { - mShowCursor = SystemClock.uptimeMillis(); - if (mBlink == null) mBlink = new Blink(this); - mBlink.removeCallbacks(mBlink); - mBlink.postAtTime(mBlink, mShowCursor + BLINK); - } + if (shouldBlink()) { + mShowCursor = SystemClock.uptimeMillis(); + if (mBlink == null) mBlink = new Blink(this); + mBlink.removeCallbacks(mBlink); + mBlink.postAtTime(mBlink, mShowCursor + BLINK); } else { if (mBlink != null) mBlink.removeCallbacks(mBlink); } -- cgit v1.2.3-59-g8ed1b