Refactor + small bugfix

postUpdateShiftKeyState used to be called also when
mEnteredText is not null => this is a bugfix.
The rest does not change the logic, as posting a message can
be done anywhere within the function with no impact.

Change-Id: I7888797c0778702d64f96701e35b611a55a6a259
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f41d247..0299df4 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1397,6 +1397,9 @@
     private void handleBackspaceWhileInBatchEdit(final int spaceState, final InputConnection ic) {
         mVoiceProxy.handleBackspace();
 
+        // In many cases, we may have to put the keyboard in auto-shift state again.
+        mHandler.postUpdateShiftKeyState();
+
         if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) {
             // Cancel multi-character input: remove the text we just entered.
             // This is triggered on backspace after a key that inputs multiple characters,
@@ -1433,14 +1436,10 @@
             } else {
                 ic.deleteSurroundingText(1, 0);
             }
-            // If we deleted the last remaining char of a word, we may have to put the keyboard
-            // in auto-shift state again.
-            mHandler.postUpdateShiftKeyState();
             // If we had uncommitted chars then we know it's not time to revert any auto-correct
             // and that spaceState is NONE.
             return;
         }
-        mHandler.postUpdateShiftKeyState();
 
         if (null != mWordSavedForAutoCorrectCancellation) {
             Utils.Stats.onAutoCorrectionCancellation();