Loading core/java/android/widget/Editor.java +19 −2 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ public class Editor { boolean mDiscardNextActionUp; boolean mIgnoreActionUpEvent; long mShowCursor; private long mShowCursor; private boolean mRenderCursorRegardlessTiming; private Blink mBlink; boolean mCursorVisible = true; Loading Loading @@ -681,11 +682,22 @@ public class Editor { } } boolean isCursorVisible() { private boolean isCursorVisible() { // The default value is true, even when there is no associated Editor return mCursorVisible && mTextView.isTextEditable(); } boolean shouldRenderCursor() { if (!isCursorVisible()) { return false; } if (mRenderCursorRegardlessTiming) { return true; } final long showCursorDelta = SystemClock.uptimeMillis() - mShowCursor; return showCursorDelta % (2 * BLINK) < BLINK; } void prepareCursorControllers() { boolean windowSupportsHandles = false; Loading Loading @@ -4666,13 +4678,18 @@ public class Editor { + mTextView.getLayout().getLineBottom(lineNumber)) / 2.0f + mTextView.getTotalPaddingTop() - mTextView.getScrollY(); // Make the cursor visible and stop blinking. mRenderCursorRegardlessTiming = true; mTextView.invalidateCursorPath(); suspendBlink(); mMagnifier.show(xPosInView, yPosInView); } protected final void dismissMagnifier() { if (mMagnifier != null) { mMagnifier.dismiss(); mRenderCursorRegardlessTiming = false; resumeBlink(); } } Loading core/java/android/widget/TextView.java +1 −3 Original line number Diff line number Diff line Loading @@ -6994,9 +6994,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener final int selEnd = getSelectionEnd(); if (mMovement != null && (isFocused() || isPressed()) && selStart >= 0) { if (selStart == selEnd) { if (mEditor != null && mEditor.isCursorVisible() && (SystemClock.uptimeMillis() - mEditor.mShowCursor) % (2 * Editor.BLINK) < Editor.BLINK) { if (mEditor != null && mEditor.shouldRenderCursor()) { if (mHighlightPathBogus) { if (mHighlightPath == null) mHighlightPath = new Path(); mHighlightPath.reset(); Loading Loading
core/java/android/widget/Editor.java +19 −2 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ public class Editor { boolean mDiscardNextActionUp; boolean mIgnoreActionUpEvent; long mShowCursor; private long mShowCursor; private boolean mRenderCursorRegardlessTiming; private Blink mBlink; boolean mCursorVisible = true; Loading Loading @@ -681,11 +682,22 @@ public class Editor { } } boolean isCursorVisible() { private boolean isCursorVisible() { // The default value is true, even when there is no associated Editor return mCursorVisible && mTextView.isTextEditable(); } boolean shouldRenderCursor() { if (!isCursorVisible()) { return false; } if (mRenderCursorRegardlessTiming) { return true; } final long showCursorDelta = SystemClock.uptimeMillis() - mShowCursor; return showCursorDelta % (2 * BLINK) < BLINK; } void prepareCursorControllers() { boolean windowSupportsHandles = false; Loading Loading @@ -4666,13 +4678,18 @@ public class Editor { + mTextView.getLayout().getLineBottom(lineNumber)) / 2.0f + mTextView.getTotalPaddingTop() - mTextView.getScrollY(); // Make the cursor visible and stop blinking. mRenderCursorRegardlessTiming = true; mTextView.invalidateCursorPath(); suspendBlink(); mMagnifier.show(xPosInView, yPosInView); } protected final void dismissMagnifier() { if (mMagnifier != null) { mMagnifier.dismiss(); mRenderCursorRegardlessTiming = false; resumeBlink(); } } Loading
core/java/android/widget/TextView.java +1 −3 Original line number Diff line number Diff line Loading @@ -6994,9 +6994,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener final int selEnd = getSelectionEnd(); if (mMovement != null && (isFocused() || isPressed()) && selStart >= 0) { if (selStart == selEnd) { if (mEditor != null && mEditor.isCursorVisible() && (SystemClock.uptimeMillis() - mEditor.mShowCursor) % (2 * Editor.BLINK) < Editor.BLINK) { if (mEditor != null && mEditor.shouldRenderCursor()) { if (mHighlightPathBogus) { if (mHighlightPath == null) mHighlightPath = new Path(); mHighlightPath.reset(); Loading