From 0529a04b6aece3db34b4e7c895c67ad0858c8bd9 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Fri, 3 Sep 2010 14:46:14 +0900
Subject: [PATCH] Followup TBR in I87060049

This change is followup TBR in I87060049cad6f9d6432b6c4a246c15587ae0d837

Change-Id: I02ee33da269162f5e95ce5b985dbf5094ba14c0d
---
 .../inputmethod/latin/KeyDetector.java        | 35 +++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/KeyDetector.java b/java/src/com/android/inputmethod/latin/KeyDetector.java
index e443f272b..76fe1200e 100644
--- a/java/src/com/android/inputmethod/latin/KeyDetector.java
+++ b/java/src/com/android/inputmethod/latin/KeyDetector.java
@@ -24,11 +24,15 @@ import java.util.List;
 
 abstract class KeyDetector {
     protected Keyboard mKeyboard;
+
     private Key[] mKeys;
 
     protected int mCorrectionX;
+
     protected int mCorrectionY;
+
     protected boolean mProximityCorrectOn;
+
     protected int mProximityThresholdSquare;
 
     public Key[] setKeyboard(Keyboard keyboard, float correctionX, float correctionY) {
@@ -54,7 +58,7 @@ abstract class KeyDetector {
     protected Key[] getKeys() {
         if (mKeys == null)
             throw new IllegalStateException("keyboard isn't set");
-        // mKeyboard is guaranteed not null at setKeybaord() method
+        // mKeyboard is guaranteed not to be null at setKeybaord() method if mKeys is not null
         return mKeys;
     }
 
@@ -70,13 +74,40 @@ abstract class KeyDetector {
         mProximityThresholdSquare = threshold * threshold;
     }
 
+    /**
+     * Allocates array that can hold all key indices returned by {@link #getKeyIndexAndNearbyCodes}
+     * method. The maximum size of the array should be computed by {@link #getMaxNearbyKeys}.
+     *
+     * @return Allocates and returns an array that can hold all key indices returned by
+     *         {@link #getKeyIndexAndNearbyCodes} method. All elements in the returned array are
+     *         initialized by {@link com.android.inputmethod.latin.LatinKeyboardView.NOT_A_KEY}
+     *         value.
+     */
     public int[] newCodeArray() {
         int[] codes = new int[getMaxNearbyKeys()];
         Arrays.fill(codes, LatinKeyboardBaseView.NOT_A_KEY);
         return codes;
     }
 
+    /**
+     * Computes maximum size of the array that can contain all nearby key indices returned by
+     * {@link #getKeyIndexAndNearbyCodes}.
+     *
+     * @return Returns maximum size of the array that can contain all nearby key indices returned
+     *         by {@link #getKeyIndexAndNearbyCodes}.
+     */
     abstract protected int getMaxNearbyKeys();
 
+    /**
+     * Finds all possible nearby key indices around a touch event point and returns the nearest key
+     * index. The algorithm to determine the nearby keys depends on the threshold set by
+     * {@link #setProximityThreshold(int)} and the mode set by
+     * {@link #setProximityCorrectionEnabled(boolean)}.
+     *
+     * @param x The x-coordinate of a touch point
+     * @param y The y-coordinate of a touch point
+     * @param allKeys All nearby key indices are returned in this array
+     * @return The nearest key index
+     */
     abstract public int getKeyIndexAndNearbyCodes(int x, int y, int[] allKeys);
-}
\ No newline at end of file
+}