From a247264dc6eb8e9715c67ef831ffc21123dcf237 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 8 Jan 2014 08:59:26 +0000
Subject: [PATCH] Revert "Fix a race condition, take 2."

Conflicts prevent this to be cherry-picked.

This reverts commit dd3d697a6e6713d82020dd63cbf78e4f87664484.

Change-Id: Ib97fae2234633b4bb27d611f48a79060db9ab16f
---
 .../latin/RichInputConnection.java            |  4 ----
 .../latin/inputlogic/InputLogic.java          | 19 +++++--------------
 2 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index 7cf64a3bc4..4d174ddb84 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -685,10 +685,6 @@ public final class RichInputConnection {
                 && !settingsValues.isWordConnector(codePointBeforeCursor)) {
             return true;
         }
-        return isCursorFollowedByWordCharacter(settingsValues);
-    }
-
-    public boolean isCursorFollowedByWordCharacter(final SettingsValues settingsValues) {
         final CharSequence after = getTextAfterCursor(1, 0);
         if (!TextUtils.isEmpty(after) && !settingsValues.isWordSeparator(after.charAt(0))
                 && !settingsValues.isWordConnector(after.charAt(0))) {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 968129a962..e0adacd0cd 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -813,8 +813,7 @@ public final class InputLogic {
                 }
             }
             if (settingsValues.isSuggestionStripVisible()
-                    && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
-                    && !mConnection.isCursorFollowedByWordCharacter(settingsValues)) {
+                    && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
                 restartSuggestionsOnWordTouchedByCursor(settingsValues,
                         deleteCountAtStart - mDeleteCount /* offset */,
                         true /* includeResumedWordInSuggestions */, keyboardSwitcher);
@@ -1115,19 +1114,11 @@ public final class InputLogic {
                 keyboardSwitcher.getKeyboard());
         mWordComposer.setCursorPositionWithinWord(
                 typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
-        // TODO: Change these lines to setComposingRegion(cursorPosition,
+        // TODO: Change these two lines to setComposingRegion(cursorPosition,
         //         cursorPosition + range.getNumberOfCharsInWordAfterCursor());
-        if (0 != offset) {
-            // Backspace was pressed. We are at the end of a word, and we don't know the cursor
-            // position for sure, so use relative methods.
-            mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor, 0);
-            mConnection.setComposingText(typedWord, 1);
-        } else {
-            // This is recorrection. The cursor position is reasonably reliable, and the cursor
-            // may be in the middle of a word so use setComposingRegion.
-            mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor,
-                expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor());
-        }
+        mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor,
+              typedWord.length() - numberOfCharsInWordBeforeCursor);
+        mConnection.setComposingText(typedWord, 1);
         if (suggestions.isEmpty()) {
             // We come here if there weren't any suggestion spans on this word. We will try to
             // compute suggestions for it instead.
-- 
GitLab