From c1e79b45a2fa49cd31eed7437942ba9796495164 Mon Sep 17 00:00:00 2001 From: Gilles Debunne Date: Fri, 24 Feb 2012 17:29:31 -0800 Subject: Fix NPE on Activity start in TextView Bug 6065279 The selection can be created programatically, and mEditor may be null when it happens. Make sure mEditor is created to display the selection highlight. Change-Id: Idd66a5fd4ad327f9b390b539574e6878c794ba4a --- core/java/android/widget/TextView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'core/java/android/widget/TextView.java') diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index a4087d5..a4b79bc 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -2980,8 +2980,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener "/" + ss.selEnd + " out of range for " + restored + "text " + mText); } else { - Selection.setSelection((Spannable) mText, ss.selStart, - ss.selEnd); + Selection.setSelection((Spannable) mText, ss.selStart, ss.selEnd); if (ss.frozenWithFocus) { createEditorIfNeeded("restore instance with focus"); @@ -6983,6 +6982,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener */ protected void onSelectionChanged(int selStart, int selEnd) { sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED); + // mEditor may be null if selection is created programatically. + createEditorIfNeeded("onSelectionChanged"); + // Invalidate even when selection range is empty, to remove previous highlight getEditor().mTextDisplayListIsValid = false; } -- cgit v1.1