Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 131fb1ff authored by Steven Terrell's avatar Steven Terrell Committed by Android (Google) Code Review
Browse files

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
parents c8c9ce73 d2acc476
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -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;