Refactor keyboard accessibility delegate classes

Bug: 15727335
Change-Id: I1aa79a6f7f8cf14bacec391c016a5d1c553eea24
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
index 3925fc6..7a945e3 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.support.v4.view.AccessibilityDelegateCompat;
 import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
 import android.util.Log;
 import android.view.MotionEvent;
@@ -31,7 +30,6 @@
 import com.android.inputmethod.keyboard.KeyDetector;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardView;
-import com.android.inputmethod.keyboard.PointerTracker;
 
 /**
  * This class represents a delegate that can be registered in a class that extends
@@ -264,33 +262,16 @@
     }
 
     /**
-     * Simulating a touch event by injecting a synthesized touch event into {@link PointerTracker}.
+     * Simulating a touch event by injecting a synthesized touch event into {@link KeyboardView}.
      *
      * @param touchAction The action of the synthesizing touch event.
      * @param hoverEvent The base hover event from that the touch event is synthesized.
      */
     protected void simulateTouchEvent(final int touchAction, final MotionEvent hoverEvent) {
-        final MotionEvent touchEvent = synthesizeTouchEvent(touchAction, hoverEvent);
-        final int actionIndex = touchEvent.getActionIndex();
-        final int pointerId = touchEvent.getPointerId(actionIndex);
-        final PointerTracker tracker = PointerTracker.getPointerTracker(pointerId);
-        tracker.processMotionEvent(touchEvent, mKeyDetector);
-        touchEvent.recycle();
-    }
-
-    /**
-     * Synthesize a touch event from a hover event.
-     *
-     * @param touchAction The action of the synthesizing touch event.
-     * @param hoverEvent The base hover event from that the touch event is synthesized.
-     * @return The synthesized touch event of <code>touchAction</code> that has pointer information
-     * of <code>event</code>.
-     */
-    protected static MotionEvent synthesizeTouchEvent(final int touchAction,
-            final MotionEvent hoverEvent) {
         final MotionEvent touchEvent = MotionEvent.obtain(hoverEvent);
         touchEvent.setAction(touchAction);
-        return touchEvent;
+        mKeyboardView.onTouchEvent(touchEvent);
+        touchEvent.recycle();
     }
 
     /**
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
index 61d066a..328d9ec 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
@@ -68,7 +68,7 @@
     /** The virtual view identifier for the hovering node. */
     private int mHoveringNodeId = UNDEFINED;
 
-    /** The current keyboard view. */
+    /** The keyboard view to provide an accessibility node info. */
     private final KeyboardView mKeyboardView;
 
     /** The current keyboard. */
diff --git a/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java
index dfc8661..941bac1 100644
--- a/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java
@@ -28,9 +28,11 @@
         super(moreKeysKeyboardView, keyDetector);
     }
 
+    // TODO: Remove redundant override method.
     @Override
     protected void simulateTouchEvent(final int touchAction, final MotionEvent hoverEvent) {
-        final MotionEvent touchEvent = synthesizeTouchEvent(touchAction, hoverEvent);
+        final MotionEvent touchEvent = MotionEvent.obtain(hoverEvent);
+        touchEvent.setAction(touchAction);
         mKeyboardView.onTouchEvent(touchEvent);
         touchEvent.recycle();
     }
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
index 8010a3e..0634040 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
@@ -65,9 +65,11 @@
             super(keyboardView, keyDetector);
         }
 
+        // TODO: Remove redundant override method.
         @Override
         protected void simulateTouchEvent(int touchAction, MotionEvent hoverEvent) {
-            final MotionEvent touchEvent = synthesizeTouchEvent(touchAction, hoverEvent);
+            final MotionEvent touchEvent = MotionEvent.obtain(hoverEvent);
+            touchEvent.setAction(touchAction);
             mKeyboardView.onTouchEvent(touchEvent);
             touchEvent.recycle();
         }
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
index 528d500..9f9bff5 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
@@ -51,6 +51,7 @@
         super(context, attrs, defStyle);
     }
 
+    // TODO: Remove redundant override method.
     @Override
     public void setKeyboard(final Keyboard keyboard) {
         super.setKeyboard(keyboard);