Loading core/java/android/text/CharSequenceIterator.java +17 −12 Original line number Diff line number Diff line Loading @@ -16,22 +16,18 @@ package android.text; import android.util.MathUtils; import java.text.CharacterIterator; /** {@hide} */ public class CharSequenceIterator implements CharacterIterator { private final CharSequence mValue; private final int mStart; private final int mEnd; private final int mLength; private int mIndex; public CharSequenceIterator(CharSequence value) { mValue = value; mStart = 0; mEnd = value.length(); mLength = value.length(); mIndex = 0; } Loading @@ -46,7 +42,7 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public char current() { if (mIndex == mEnd) { if (mIndex == mLength) { return DONE; } return mValue.charAt(mIndex); Loading @@ -54,12 +50,12 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public int getBeginIndex() { return mStart; return 0; } /** {@inheritDoc} */ public int getEndIndex() { return mEnd; return mLength; } /** {@inheritDoc} */ Loading @@ -69,27 +65,36 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public char first() { return setIndex(mStart); return setIndex(0); } /** {@inheritDoc} */ public char last() { return setIndex(mEnd - 1); return setIndex(mLength - 1); } /** {@inheritDoc} */ public char next() { if (mIndex == mLength) { return DONE; } return setIndex(mIndex + 1); } /** {@inheritDoc} */ public char previous() { if (mIndex == 0) { return DONE; } return setIndex(mIndex - 1); } /** {@inheritDoc} */ public char setIndex(int index) { mIndex = MathUtils.constrain(index, mStart, mEnd); if ((index < 0) || (index > mLength)) { throw new IllegalArgumentException("Valid range is [" + 0 + "..." + mLength + "]"); } mIndex = index; return current(); } } core/java/android/text/method/ArrowKeyMovementMethod.java +3 −3 Original line number Diff line number Diff line Loading @@ -390,7 +390,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme } private boolean isValidOffset(int offset) { return offset >= 0 && offset < mCurrent.length(); return offset >= 0 && offset <= mCurrent.length(); } private boolean isLetterOrDigit(int offset) { Loading @@ -404,7 +404,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme /** {@inheritDoc} */ public int preceding(int offset) { // always round cursor index into valid string index offset = MathUtils.constrain(offset, 0, mCurrent.length() - 1); offset = MathUtils.constrain(offset, 0, mCurrent.length()); do { offset = mIterator.preceding(offset); Loading @@ -417,7 +417,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme /** {@inheritDoc} */ public int following(int offset) { // always round cursor index into valid string index offset = MathUtils.constrain(offset, 0, mCurrent.length() - 1); offset = MathUtils.constrain(offset, 0, mCurrent.length()); do { offset = mIterator.following(offset); Loading Loading
core/java/android/text/CharSequenceIterator.java +17 −12 Original line number Diff line number Diff line Loading @@ -16,22 +16,18 @@ package android.text; import android.util.MathUtils; import java.text.CharacterIterator; /** {@hide} */ public class CharSequenceIterator implements CharacterIterator { private final CharSequence mValue; private final int mStart; private final int mEnd; private final int mLength; private int mIndex; public CharSequenceIterator(CharSequence value) { mValue = value; mStart = 0; mEnd = value.length(); mLength = value.length(); mIndex = 0; } Loading @@ -46,7 +42,7 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public char current() { if (mIndex == mEnd) { if (mIndex == mLength) { return DONE; } return mValue.charAt(mIndex); Loading @@ -54,12 +50,12 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public int getBeginIndex() { return mStart; return 0; } /** {@inheritDoc} */ public int getEndIndex() { return mEnd; return mLength; } /** {@inheritDoc} */ Loading @@ -69,27 +65,36 @@ public class CharSequenceIterator implements CharacterIterator { /** {@inheritDoc} */ public char first() { return setIndex(mStart); return setIndex(0); } /** {@inheritDoc} */ public char last() { return setIndex(mEnd - 1); return setIndex(mLength - 1); } /** {@inheritDoc} */ public char next() { if (mIndex == mLength) { return DONE; } return setIndex(mIndex + 1); } /** {@inheritDoc} */ public char previous() { if (mIndex == 0) { return DONE; } return setIndex(mIndex - 1); } /** {@inheritDoc} */ public char setIndex(int index) { mIndex = MathUtils.constrain(index, mStart, mEnd); if ((index < 0) || (index > mLength)) { throw new IllegalArgumentException("Valid range is [" + 0 + "..." + mLength + "]"); } mIndex = index; return current(); } }
core/java/android/text/method/ArrowKeyMovementMethod.java +3 −3 Original line number Diff line number Diff line Loading @@ -390,7 +390,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme } private boolean isValidOffset(int offset) { return offset >= 0 && offset < mCurrent.length(); return offset >= 0 && offset <= mCurrent.length(); } private boolean isLetterOrDigit(int offset) { Loading @@ -404,7 +404,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme /** {@inheritDoc} */ public int preceding(int offset) { // always round cursor index into valid string index offset = MathUtils.constrain(offset, 0, mCurrent.length() - 1); offset = MathUtils.constrain(offset, 0, mCurrent.length()); do { offset = mIterator.preceding(offset); Loading @@ -417,7 +417,7 @@ public class ArrowKeyMovementMethod extends BaseMovementMethod implements Moveme /** {@inheritDoc} */ public int following(int offset) { // always round cursor index into valid string index offset = MathUtils.constrain(offset, 0, mCurrent.length() - 1); offset = MathUtils.constrain(offset, 0, mCurrent.length()); do { offset = mIterator.following(offset); Loading