Close batch edit

This does the same thing as Ie30e1aff but differently

Bug: 6512086
Change-Id: I47ae990510d3f657abd45ad5f0e325d93dec83c0
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 261755f..bdefaee 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1834,10 +1834,15 @@
     @Override
     public void pickSuggestionManually(final int index, final CharSequence suggestion,
             int x, int y) {
-        final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
         final InputConnection ic = getCurrentInputConnection();
-        if (ic != null) ic.beginBatchEdit();
+        if (null != ic) ic.beginBatchEdit();
+        pickSuggestionManuallyWhileInBatchEdit(index, suggestion, x, y, ic);
+        if (null != ic) ic.endBatchEdit();
+    }
 
+    public void pickSuggestionManuallyWhileInBatchEdit(final int index,
+        final CharSequence suggestion, final int x, final int y, final InputConnection ic) {
+        final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
         // If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
         if (suggestion.length() == 1 && isShowingPunctuationList()) {
             // Word separators are suggested before the user inputs something.
@@ -1933,7 +1938,6 @@
                 mHandler.postUpdateSuggestions();
             }
         }
-        if (null != ic) ic.endBatchEdit();
     }
 
     /**