[IL65] Pull up X,Y processing, step 4

This works because getKey{X,Y} is a no-op on
Constants.NOT_A_COORDINATE.

Bug: 8636060
Change-Id: I2f7dd96b6011f094110f7978f8ff24ef2a6e2585
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 5b13e9a..1891dfc 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -142,7 +142,11 @@
         if (code == Constants.CODE_OUTPUT_TEXT) {
             mListener.onTextInput(mCurrentKey.getOutputText());
         } else if (code != Constants.CODE_UNSPECIFIED) {
-            mListener.onCodeInput(code, x, y);
+            if (getKeyboard().hasProximityCharsCorrection(code)) {
+                mListener.onCodeInput(code, x, y);
+            } else {
+                mListener.onCodeInput(code, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
+            }
         }
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 5e02926..0931550 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -346,7 +346,12 @@
             if (code == Constants.CODE_OUTPUT_TEXT) {
                 sListener.onTextInput(key.getOutputText());
             } else if (code != Constants.CODE_UNSPECIFIED) {
-                sListener.onCodeInput(code, x, y);
+                if (mKeyboard.hasProximityCharsCorrection(code)) {
+                    sListener.onCodeInput(code, x, y);
+                } else {
+                    sListener.onCodeInput(code,
+                            Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
+                }
             }
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 0f40e13..aca3619 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1247,21 +1247,14 @@
     // Implementation of {@link KeyboardActionListener}.
     @Override
     public void onCodeInput(final int codePoint, final int x, final int y) {
-        final int keyX, keyY;
-        final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
         // x and y include some padding, but everything down the line (especially native
         // code) needs the coordinates in the keyboard frame.
         // TODO: We should reconsider which coordinate system should be used to represent
         // keyboard event. Also we should pull this up -- LatinIME has no business doing
         // this transformation, it should be done already before calling onCodeInput.
-        if (keyboard != null && keyboard.hasProximityCharsCorrection(codePoint)) {
-            keyX = mainKeyboardView.getKeyX(x);
-            keyY = mainKeyboardView.getKeyY(y);
-        } else {
-            keyX = Constants.NOT_A_COORDINATE;
-            keyY = Constants.NOT_A_COORDINATE;
-        }
+        final int keyX = mainKeyboardView.getKeyX(x);
+        final int keyY = mainKeyboardView.getKeyY(y);
         mInputLogic.onCodeInput(codePoint, keyX, keyY, mHandler, mKeyboardSwitcher,
                 mSubtypeSwitcher);
     }