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
This commit is contained in:
Steven Terrell
2022-09-16 02:46:30 +00:00
committed by Android (Google) Code Review

View File

@@ -709,7 +709,7 @@ public class Editor {
}
getPositionListener().addSubscriber(mCursorAnchorInfoNotifier, true);
resumeBlink();
makeBlink();
}
void onDetachedFromWindow() {
@@ -1685,17 +1685,12 @@ public class Editor {
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 @@ public class Editor {
* @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 @@ public class Editor {
}
}
/**
*
* @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;