Merge "Remove unused code"
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index b8d04e0..79c7ce0 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -558,11 +558,8 @@
     }
 
     public Drawable getIcon(KeyboardIconsSet iconSet) {
-        return iconSet.getIconDrawable(mIconId);
-    }
-
-    public Drawable getDisabledIcon(KeyboardIconsSet iconSet) {
-        return iconSet.getIconDrawable(mDisabledIconId);
+        final int iconId = mEnabled ? mIconId : mDisabledIconId;
+        return iconSet.getIconDrawable(iconId);
     }
 
     public Drawable getPreviewIcon(KeyboardIconsSet iconSet) {
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
index 41e7ef4..f96f71e 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -119,38 +119,37 @@
             sweetSpotCenterYs = new float[keyCount];
             sweetSpotRadii = new float[keyCount];
             calculateSweetSpotParams = true;
+            int i = 0;
+            for (final Key key : keys) {
+                keyXCoordinates[i] = key.mX;
+                keyYCoordinates[i] = key.mY;
+                keyWidths[i] = key.mWidth;
+                keyHeights[i] = key.mHeight;
+                keyCharCodes[i] = key.mCode;
+                if (calculateSweetSpotParams) {
+                    final Rect hitBox = key.mHitBox;
+                    final int row = hitBox.top / mKeyHeight;
+                    if (row < touchPositionCorrection.mRadii.length) {
+                        final float hitBoxCenterX = (hitBox.left + hitBox.right) * 0.5f;
+                        final float hitBoxCenterY = (hitBox.top + hitBox.bottom) * 0.5f;
+                        final float hitBoxWidth = hitBox.right - hitBox.left;
+                        final float hitBoxHeight = hitBox.bottom - hitBox.top;
+                        final float x = touchPositionCorrection.mXs[row];
+                        final float y = touchPositionCorrection.mYs[row];
+                        final float radius = touchPositionCorrection.mRadii[row];
+                        sweetSpotCenterXs[i] = hitBoxCenterX + x * hitBoxWidth;
+                        sweetSpotCenterYs[i] = hitBoxCenterY + y * hitBoxHeight;
+                        sweetSpotRadii[i] = radius * (float) Math.sqrt(
+                                hitBoxWidth * hitBoxWidth + hitBoxHeight * hitBoxHeight);
+                    }
+                }
+                i++;
+            }
         } else {
             sweetSpotCenterXs = sweetSpotCenterYs = sweetSpotRadii = null;
             calculateSweetSpotParams = false;
         }
 
-        int i = 0;
-        for (final Key key : keys) {
-            keyXCoordinates[i] = key.mX;
-            keyYCoordinates[i] = key.mY;
-            keyWidths[i] = key.mWidth;
-            keyHeights[i] = key.mHeight;
-            keyCharCodes[i] = key.mCode;
-            if (calculateSweetSpotParams) {
-                final Rect hitBox = key.mHitBox;
-                final int row = hitBox.top / mKeyHeight;
-                if (row < touchPositionCorrection.mRadii.length) {
-                    final float hitBoxCenterX = (hitBox.left + hitBox.right) * 0.5f;
-                    final float hitBoxCenterY = (hitBox.top + hitBox.bottom) * 0.5f;
-                    final float hitBoxWidth = hitBox.right - hitBox.left;
-                    final float hitBoxHeight = hitBox.bottom - hitBox.top;
-                    final float x = touchPositionCorrection.mXs[row];
-                    final float y = touchPositionCorrection.mYs[row];
-                    final float radius = touchPositionCorrection.mRadii[row];
-                    sweetSpotCenterXs[i] = hitBoxCenterX + x * hitBoxWidth;
-                    sweetSpotCenterYs[i] = hitBoxCenterY + y * hitBoxHeight;
-                    sweetSpotRadii[i] = radius * (float) Math.sqrt(
-                            hitBoxWidth * hitBoxWidth + hitBoxHeight * hitBoxHeight);
-                }
-            }
-            i++;
-        }
-
         mNativeProximityInfo = setProximityInfoNative(MAX_PROXIMITY_CHARS_SIZE,
                 keyboardWidth, keyboardHeight, mGridWidth, mGridHeight, proximityCharsArray,
                 keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 59fa66d..edc4efd 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1114,12 +1114,12 @@
     // and the composingStateManager about it.
     private void resetEntireInputState() {
         resetComposingState(true /* alsoResetLastComposedWord */);
+        mComposingStateManager.onFinishComposingText();
         updateSuggestions();
         final InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             ic.finishComposingText();
         }
-        mComposingStateManager.onFinishComposingText();
         mVoiceProxy.setVoiceInputHighlighted(false);
     }
 
@@ -1536,8 +1536,8 @@
                 // it entirely and resume suggestions on the previous word, we'd like to still
                 // have touch coordinates for it.
                 resetComposingState(false /* alsoResetLastComposedWord */);
-                clearSuggestions();
                 mComposingStateManager.onFinishComposingText();
+                clearSuggestions();
             }
         }
         if (isComposingWord) {
@@ -1897,12 +1897,11 @@
                 mSuggestionsView.clear();
             }
             mKeyboardSwitcher.updateShiftState();
+            resetComposingState(true /* alsoResetLastComposedWord */);
             final InputConnection ic = getCurrentInputConnection();
             if (ic != null) {
-                ic.beginBatchEdit();
                 final CompletionInfo completionInfo = mApplicationSpecifiedCompletions[index];
                 ic.commitCompletion(completionInfo);
-                ic.endBatchEdit();
             }
             return;
         }