Merge changes from topic "cursor-bg-blink-cp" into tm-qpr-dev
* changes:
Add Ability to Check if Cursor is Blinking
Stop cursor from blinking when not visible
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 285a407..fadad99 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -709,7 +709,7 @@
}
getPositionListener().addSubscriber(mCursorAnchorInfoNotifier, true);
- resumeBlink();
+ makeBlink();
}
void onDetachedFromWindow() {
@@ -1685,17 +1685,12 @@
void onWindowFocusChanged(boolean hasWindowFocus) {
if (hasWindowFocus) {
- if (mBlink != null) {
- mBlink.uncancel();
- makeBlink();
- }
+ resumeBlink();
if (mTextView.hasSelection() && !extractedTextModeWillBeStarted()) {
refreshTextActionMode();
}
} else {
- if (mBlink != null) {
- mBlink.cancel();
- }
+ suspendBlink();
if (mInputContentType != null) {
mInputContentType.enterDown = false;
}
@@ -2851,7 +2846,8 @@
* @return True when the TextView isFocused and has a valid zero-length selection (cursor).
*/
private boolean shouldBlink() {
- if (!isCursorVisible() || !mTextView.isFocused()) return false;
+ if (!isCursorVisible() || !mTextView.isFocused()
+ || mTextView.getWindowVisibility() != mTextView.VISIBLE) return false;
final int start = mTextView.getSelectionStart();
if (start < 0) return false;
@@ -2873,6 +2869,17 @@
}
}
+ /**
+ *
+ * @return whether the Blink runnable is blinking or not, if null return false.
+ * @hide
+ */
+ @VisibleForTesting
+ public boolean isBlinking() {
+ if (mBlink == null) return false;
+ return !mBlink.mCancelled;
+ }
+
private class Blink implements Runnable {
private boolean mCancelled;