diff options
| author | Seigo Nonaka <nona@google.com> | 2018-09-17 14:09:25 -0700 |
|---|---|---|
| committer | Seigo Nonaka <nona@google.com> | 2018-09-18 15:06:19 -0700 |
| commit | fa95b83df78467a2ebf0026bd511f61de1f117a9 (patch) | |
| tree | 8d7c7bc6ca8e8019bbef9e6f730d08b79d05aae0 /core/java/android/text/SpannableStringBuilder.java | |
| parent | 93890b2e2e872d32ab5c53bd301f2a3ef4f48736 (diff) | |
Unhide getTextRunCursor APIs
This API is necessary for identifying the cursor locations.
Bug: 112327179
Test: atest android.graphics.cts.PaintTest
Change-Id: Ief6770bd622a296ae356094fe3ce58e9c4371088
Diffstat (limited to 'core/java/android/text/SpannableStringBuilder.java')
| -rw-r--r-- | core/java/android/text/SpannableStringBuilder.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index 9d841e86c9fa..c5fabaf2d840 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -1551,7 +1551,7 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable * * @param contextStart the start index of the context * @param contextEnd the (non-inclusive) end index of the context - * @param dir either DIRECTION_RTL or DIRECTION_LTR + * @param dir 1 if the run is RTL, otherwise 0 * @param offset the cursor position to move from * @param cursorOpt how to move the cursor, one of CURSOR_AFTER, * CURSOR_AT_OR_AFTER, CURSOR_BEFORE, @@ -1563,21 +1563,28 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable @Deprecated public int getTextRunCursor(int contextStart, int contextEnd, int dir, int offset, int cursorOpt, Paint p) { + return getTextRunCursor(contextStart, contextEnd, dir == 1, offset, cursorOpt, p); + } + + /** @hide */ + @Override + public int getTextRunCursor(int contextStart, int contextEnd, boolean isRtl, int offset, + int cursorOpt, Paint p) { int ret; int contextLen = contextEnd - contextStart; if (contextEnd <= mGapStart) { ret = p.getTextRunCursor(mText, contextStart, contextLen, - dir, offset, cursorOpt); + isRtl, offset, cursorOpt); } else if (contextStart >= mGapStart) { ret = p.getTextRunCursor(mText, contextStart + mGapLength, contextLen, - dir, offset + mGapLength, cursorOpt) - mGapLength; + isRtl, offset + mGapLength, cursorOpt) - mGapLength; } else { char[] buf = TextUtils.obtain(contextLen); getChars(contextStart, contextEnd, buf, 0); ret = p.getTextRunCursor(buf, 0, contextLen, - dir, offset - contextStart, cursorOpt) + contextStart; + isRtl, offset - contextStart, cursorOpt) + contextStart; TextUtils.recycle(buf); } |
