Rearrange some code so it makes more sense. Thanks, findbugs.
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index c6b01876..adfc74f 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4434,29 +4434,31 @@
     
     boolean reportExtractedText() {
         final InputMethodState ims = mInputMethodState;
-        final boolean contentChanged = ims.mContentChanged;
-        if (ims != null && (contentChanged || ims.mSelectionModeChanged)) {
-            ims.mContentChanged = false;
-            ims.mSelectionModeChanged = false;
-            final ExtractedTextRequest req = mInputMethodState.mExtracting;
-            if (req != null) {
-                InputMethodManager imm = InputMethodManager.peekInstance();
-                if (imm != null) {
-                    if (DEBUG_EXTRACT) Log.v(TAG, "Retrieving extracted start="
-                            + ims.mChangedStart + " end=" + ims.mChangedEnd
-                            + " delta=" + ims.mChangedDelta);
-                    if (ims.mChangedStart < 0 && !contentChanged) {
-                        ims.mChangedStart = EXTRACT_NOTHING;
-                    }
-                    if (extractTextInternal(req, ims.mChangedStart, ims.mChangedEnd,
-                            ims.mChangedDelta, ims.mTmpExtracted)) {
-                        if (DEBUG_EXTRACT) Log.v(TAG, "Reporting extracted start="
-                                + ims.mTmpExtracted.partialStartOffset
-                                + " end=" + ims.mTmpExtracted.partialEndOffset
-                                + ": " + ims.mTmpExtracted.text);
-                        imm.updateExtractedText(this, req.token,
-                                mInputMethodState.mTmpExtracted);
-                        return true;
+        if (ims != null) {
+            final boolean contentChanged = ims.mContentChanged;
+            if (contentChanged || ims.mSelectionModeChanged) {
+                ims.mContentChanged = false;
+                ims.mSelectionModeChanged = false;
+                final ExtractedTextRequest req = mInputMethodState.mExtracting;
+                if (req != null) {
+                    InputMethodManager imm = InputMethodManager.peekInstance();
+                    if (imm != null) {
+                        if (DEBUG_EXTRACT) Log.v(TAG, "Retrieving extracted start="
+                                + ims.mChangedStart + " end=" + ims.mChangedEnd
+                                + " delta=" + ims.mChangedDelta);
+                        if (ims.mChangedStart < 0 && !contentChanged) {
+                            ims.mChangedStart = EXTRACT_NOTHING;
+                        }
+                        if (extractTextInternal(req, ims.mChangedStart, ims.mChangedEnd,
+                                ims.mChangedDelta, ims.mTmpExtracted)) {
+                            if (DEBUG_EXTRACT) Log.v(TAG, "Reporting extracted start="
+                                    + ims.mTmpExtracted.partialStartOffset
+                                    + " end=" + ims.mTmpExtracted.partialEndOffset
+                                    + ": " + ims.mTmpExtracted.text);
+                            imm.updateExtractedText(this, req.token,
+                                    mInputMethodState.mTmpExtracted);
+                            return true;
+                        }
                     }
                 }
             }