summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2011-05-31 10:41:58 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-05-31 10:41:58 -0700
commitda188fbe4b4d7b91e1440afe5a1279d0fd7a91eb (patch)
tree2e19772575ee8fad529077db606c8c759c11f258 /core/java/android
parentfe6dfd504bfa31d95382d80cc7acc5b1add01b34 (diff)
parentd4bb0b01c6caccbaef1baec377a59c10790da35c (diff)
downloadframeworks_base-da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb.zip
frameworks_base-da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb.tar.gz
frameworks_base-da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb.tar.bz2
Merge "Fix for bug 4499752 - Detect nulled layouts in HandleViews"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/text/method/WordIterator.java3
-rw-r--r--core/java/android/widget/TextView.java7
2 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/text/method/WordIterator.java b/core/java/android/text/method/WordIterator.java
index b250414..af524ee 100644
--- a/core/java/android/text/method/WordIterator.java
+++ b/core/java/android/text/method/WordIterator.java
@@ -213,7 +213,8 @@ public class WordIterator implements Selection.PositionIterator {
private void checkOffsetIsValid(int offset) {
if (offset < 0 || offset > mCurrent.length()) {
- final String message = "Valid range is [0, " + mCurrent.length() + "]";
+ final String message = "Invalid offset: " + offset +
+ ". Valid range is [0, " + mCurrent.length() + "]";
throw new IllegalArgumentException(message);
}
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index a73a6cf..9ec3a26 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -9163,6 +9163,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
public abstract void updatePosition(float x, float y);
protected void positionAtCursorOffset(int offset) {
+ // A HandleView relies on the layout, which may be nulled by external methods.
+ if (mLayout == null) {
+ // Will update controllers' state, hiding them and stopping selection mode if needed
+ prepareCursorControllers();
+ return;
+ }
+
addPositionToTouchUpFilter(offset);
final int line = mLayout.getLineForOffset(offset);
final int lineBottom = mLayout.getLineBottom(line);