Fix a small bug with rotation.

Bug: 2349475
Change-Id: Id4aa5ce56b1a545e4cb88ca1b01cf24642deade2
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index deaf6cd..8417867 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -643,7 +643,16 @@
         final SettingsValues settingsValues = mSettings.getCurrent();
         if (settingsValues.mDisplayOrientation != conf.orientation) {
             mHandler.startOrientationChanging();
-            mInputLogic.finishInput();
+            // If !isComposingWord, #commitTyped() is a no-op, but still, it's better to avoid
+            // the useless IPC of {begin,end}BatchEdit.
+            if (mInputLogic.mWordComposer.isComposingWord()) {
+                mInputLogic.mConnection.beginBatchEdit();
+                // If we had a composition in progress, we need to commit the word so that the
+                // suggestionsSpan will be added. This will allow resuming on the same suggestions
+                // after rotation is finished.
+                mInputLogic.commitTyped(mSettings.getCurrent(), LastComposedWord.NOT_A_SEPARATOR);
+                mInputLogic.mConnection.endBatchEdit();
+            }
         }
         PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf,
                 mDictionaryFacilitator);