From a8d80ec01202633709d161fb01df0126602d4eb6 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Tue, 1 Jul 2014 13:57:52 +0900
Subject: [PATCH] [HW9] Pull the processed event further.

The 'processedEvent' variables will ultimately disappear entirely.

Change-Id: If44c68c1116faa9ca23e4ffeabe320704431ab3c
---
 .../latin/inputlogic/InputLogic.java          | 20 +++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index f2a6f3b2e4..82a7660e13 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -428,7 +428,8 @@ public final class InputLogic {
             // A special key, like delete, shift, emoji, or the settings key.
             switch (event.mKeyCode) {
             case Constants.CODE_DELETE:
-                handleBackspace(inputTransaction, currentKeyboardScriptId);
+                final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+                handleBackspace(inputTransaction, currentKeyboardScriptId, processedEvent);
                 // Backspace is a functional key, but it affects the contents of the editor.
                 inputTransaction.setDidAffectContents();
                 break;
@@ -681,13 +682,14 @@ public final class InputLogic {
     private boolean handleNonSpecialCharacter(final InputTransaction inputTransaction,
             // TODO: remove this argument
             final LatinIME.UIHandler handler) {
-        final int codePoint = inputTransaction.mEvent.mCodePoint;
+        final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+        final int codePoint = processedEvent.mCodePoint;
         mSpaceState = SpaceState.NONE;
         final boolean didAutoCorrect;
         if (inputTransaction.mSettingsValues.isWordSeparator(codePoint)
                 || Character.getType(codePoint) == Character.OTHER_SYMBOL) {
             didAutoCorrect = handleSeparator(inputTransaction,
-                    inputTransaction.mEvent.isSuggestionStripPress(), handler);
+                    processedEvent.isSuggestionStripPress(), handler);
         } else {
             didAutoCorrect = false;
             if (SpaceState.PHANTOM == inputTransaction.mSpaceState) {
@@ -700,7 +702,7 @@ public final class InputLogic {
                     commitTyped(inputTransaction.mSettingsValues, LastComposedWord.NOT_A_SEPARATOR);
                 }
             }
-            handleNonSeparator(inputTransaction.mSettingsValues, inputTransaction);
+            handleNonSeparator(inputTransaction.mSettingsValues, inputTransaction, processedEvent);
         }
         return didAutoCorrect;
     }
@@ -711,8 +713,9 @@ public final class InputLogic {
      * @param inputTransaction The transaction in progress.
      */
     private void handleNonSeparator(final SettingsValues settingsValues,
-            final InputTransaction inputTransaction) {
-        final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+            final InputTransaction inputTransaction,
+            // TODO: remove this arg, put it into the input transaction
+            final Event processedEvent) {
         final int codePoint = processedEvent.mCodePoint;
         // TODO: refactor this method to stop flipping isComposingWord around all the time, and
         // make it shorter (possibly cut into several pieces). Also factor handleNonSpecialCharacter
@@ -902,8 +905,9 @@ public final class InputLogic {
      */
     private void handleBackspace(final InputTransaction inputTransaction,
             // TODO: remove this argument, put it into settingsValues
-            final int currentKeyboardScriptId) {
-        final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+            final int currentKeyboardScriptId,
+            // TODO: remove this argument, put it into the transaction
+            final Event processedEvent) {
         mSpaceState = SpaceState.NONE;
         mDeleteCount++;
 
-- 
GitLab