From 4399849dea9f3cc1c8b1828739a0dd7bedc1f730 Mon Sep 17 00:00:00 2001
From: Ken Wakasa <kwakasa@google.com>
Date: Wed, 30 Jul 2014 00:55:49 +0000
Subject: [PATCH] Revert "[HW6] Split processing and applying the event."

This reverts commit 1db3d860ca0d7380c5a6a3a0f95751565f23043b.

Reverting due to a few critical bugs and unit test failures.

Change-Id: I5e2d02300320438ef9c29577ec5b0860ea91d822
---
 .../inputmethod/event/CombinerChain.java      | 12 ++---------
 .../inputmethod/latin/WordComposer.java       | 20 +++++--------------
 .../latin/inputlogic/InputLogic.java          |  6 ++----
 3 files changed, 9 insertions(+), 29 deletions(-)

diff --git a/java/src/com/android/inputmethod/event/CombinerChain.java b/java/src/com/android/inputmethod/event/CombinerChain.java
index 8c6b3d949f..61bc11b398 100644
--- a/java/src/com/android/inputmethod/event/CombinerChain.java
+++ b/java/src/com/android/inputmethod/event/CombinerChain.java
@@ -81,11 +81,11 @@ public class CombinerChain {
     }
 
     /**
-     * Process an event through the combining chain, and return a processed event to apply.
+     * Pass a new event through the whole chain.
      * @param previousEvents the list of previous events in this composition
      * @param newEvent the new event to process
      */
-    public Event processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
+    public void processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
         final ArrayList<Event> modifiablePreviousEvents = new ArrayList<>(previousEvents);
         Event event = newEvent;
         for (final Combiner combiner : mCombiners) {
@@ -97,14 +97,6 @@ public class CombinerChain {
                 break;
             }
         }
-        return event;
-    }
-
-    /**
-     * Apply a processed event.
-     * @param event the event to be applied
-     */
-    public void applyProcessedEvent(final Event event) {
         if (null != event) {
             // TODO: figure out the generic way of doing this
             if (Constants.CODE_DELETE == event.mKeyCode) {
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index df79584707..cdd7822441 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -175,30 +175,20 @@ public final class WordComposer {
     }
 
     /**
-     * Process an event and return an event, and return a processed event to apply.
-     * @param event the unprocessed event.
-     * @return the processed event.
-     */
-    public Event processEvent(final Event event) {
-        final Event processedEvent = mCombinerChain.processEvent(mEvents, event);
-        mEvents.add(event);
-        return processedEvent;
-    }
-
-    /**
-     * Apply a processed input event.
+     * Process an input event.
      *
      * All input events should be supported, including software/hardware events, characters as well
      * as deletions, multiple inputs and gestures.
      *
-     * @param event the event to apply.
+     * @param event the event to process.
      */
-    public void applyProcessedEvent(final Event event) {
+    public void processEvent(final Event event) {
         final int primaryCode = event.mCodePoint;
         final int keyX = event.mX;
         final int keyY = event.mY;
         final int newIndex = size();
-        mCombinerChain.applyProcessedEvent(event);
+        mCombinerChain.processEvent(mEvents, event);
+        mEvents.add(event);
         refreshTypedWordCache();
         mCursorPositionWithinWord = mCodePointSize;
         // We may have deleted the last one.
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index bb2d304a60..74d8799199 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -762,8 +762,7 @@ public final class InputLogic {
             resetComposingState(false /* alsoResetLastComposedWord */);
         }
         if (isComposingWord) {
-            final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
-            mWordComposer.applyProcessedEvent(processedEvent);
+            mWordComposer.processEvent(inputTransaction.mEvent);
             // If it's the first letter, make note of auto-caps state
             if (mWordComposer.isSingleLetter()) {
                 mWordComposer.setCapitalizedModeAtStartComposingTime(inputTransaction.mShiftState);
@@ -934,8 +933,7 @@ public final class InputLogic {
                     mDictionaryFacilitator.removeWordFromPersonalizedDicts(rejectedSuggestion);
                 }
             } else {
-                final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
-                mWordComposer.applyProcessedEvent(processedEvent);
+                mWordComposer.processEvent(inputTransaction.mEvent);
             }
             if (mWordComposer.isComposingWord()) {
                 mConnection.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
-- 
GitLab