From 8aa74da98d328a70f61569ce2a97945d442871ce Mon Sep 17 00:00:00 2001
From: Ken Wakasa <kwakasa@google.com>
Date: Tue, 29 Jul 2014 15:43:59 +0000
Subject: [PATCH] Revert "[HW7.5] Introduce the @Nonnull annotation"

This reverts commit 60a2cd8ac439bf41bfddc5f5f339feda7c7ff175.

Reverting due to build breakage under the unbundled branch.

Change-Id: Iab2988c53884166f62c95da920ac7a7079a0e5a0
---
 java/Android.mk                                            | 2 +-
 java/src/com/android/inputmethod/event/Combiner.java       | 3 ---
 java/src/com/android/inputmethod/event/CombinerChain.java  | 7 ++++---
 .../src/com/android/inputmethod/event/DeadKeyCombiner.java | 3 ---
 .../com/android/inputmethod/event/MyanmarReordering.java   | 3 ---
 java/src/com/android/inputmethod/latin/WordComposer.java   | 3 ---
 6 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/java/Android.mk b/java/Android.mk
index 9b8b2b448e..b580624d72 100644
--- a/java/Android.mk
+++ b/java/Android.mk
@@ -25,7 +25,7 @@ LOCAL_CERTIFICATE := shared
 
 LOCAL_JNI_SHARED_LIBRARIES := libjni_latinime
 
-LOCAL_STATIC_JAVA_LIBRARIES := android-common inputmethod-common android-support-v4 jsr305
+LOCAL_STATIC_JAVA_LIBRARIES := android-common inputmethod-common android-support-v4
 
 # Do not compress dictionary files to mmap dict data runtime
 LOCAL_AAPT_FLAGS := -0 .dict
diff --git a/java/src/com/android/inputmethod/event/Combiner.java b/java/src/com/android/inputmethod/event/Combiner.java
index fee93f0c61..8b808c6b3a 100644
--- a/java/src/com/android/inputmethod/event/Combiner.java
+++ b/java/src/com/android/inputmethod/event/Combiner.java
@@ -18,8 +18,6 @@ package com.android.inputmethod.event;
 
 import java.util.ArrayList;
 
-import javax.annotation.Nonnull;
-
 /**
  * A generic interface for combiners. Combiners are objects that transform chains of input events
  * into committable strings and manage feedback to show to the user on the combining state.
@@ -35,7 +33,6 @@ public interface Combiner {
      * @param event the event to combine with the existing state.
      * @return the resulting event.
      */
-    @Nonnull
     Event processEvent(ArrayList<Event> previousEvents, Event event);
 
     /**
diff --git a/java/src/com/android/inputmethod/event/CombinerChain.java b/java/src/com/android/inputmethod/event/CombinerChain.java
index f69bf4fd0d..8ddc9e7d91 100644
--- a/java/src/com/android/inputmethod/event/CombinerChain.java
+++ b/java/src/com/android/inputmethod/event/CombinerChain.java
@@ -24,8 +24,6 @@ import com.android.inputmethod.latin.Constants;
 import java.util.ArrayList;
 import java.util.HashMap;
 
-import javax.annotation.Nonnull;
-
 /**
  * This class implements the logic chain between receiving events and generating code points.
  *
@@ -89,7 +87,6 @@ public class CombinerChain {
      * @return the processed event. It may be the same event, or a consumed event, or a completely
      *   new event. However it may never be null.
      */
-    @Nonnull
     public Event processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
         final ArrayList<Event> modifiablePreviousEvents = new ArrayList<>(previousEvents);
         Event event = newEvent;
@@ -97,6 +94,10 @@ public class CombinerChain {
             // A combiner can never return more than one event; it can return several
             // code points, but they should be encapsulated within one event.
             event = combiner.processEvent(modifiablePreviousEvents, event);
+            if (null == event) {
+                // Combiners return null if they eat the event.
+                break;
+            }
         }
         return event;
     }
diff --git a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
index d816247d8f..342f499c92 100644
--- a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
+++ b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
@@ -23,8 +23,6 @@ import com.android.inputmethod.latin.Constants;
 
 import java.util.ArrayList;
 
-import javax.annotation.Nonnull;
-
 /**
  * A combiner that handles dead keys.
  */
@@ -33,7 +31,6 @@ public class DeadKeyCombiner implements Combiner {
     final StringBuilder mDeadSequence = new StringBuilder();
 
     @Override
-    @Nonnull
     public Event processEvent(final ArrayList<Event> previousEvents, final Event event) {
         if (TextUtils.isEmpty(mDeadSequence)) {
             if (event.isDead()) {
diff --git a/java/src/com/android/inputmethod/event/MyanmarReordering.java b/java/src/com/android/inputmethod/event/MyanmarReordering.java
index 7285512f93..80c711f4ac 100644
--- a/java/src/com/android/inputmethod/event/MyanmarReordering.java
+++ b/java/src/com/android/inputmethod/event/MyanmarReordering.java
@@ -21,8 +21,6 @@ import com.android.inputmethod.latin.Constants;
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import javax.annotation.Nonnull;
-
 /**
  * A combiner that reorders input for Myanmar.
  */
@@ -130,7 +128,6 @@ public class MyanmarReordering implements Combiner {
                 : Event.createSoftwareTextEvent(combinedText, Event.NOT_A_KEY_CODE);
     }
 
-    @Nonnull
     @Override
     public Event processEvent(ArrayList<Event> previousEvents, Event newEvent) {
         final int codePoint = newEvent.mCodePoint;
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 75d616e387..171d0bba76 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -25,8 +25,6 @@ import com.android.inputmethod.latin.utils.StringUtils;
 import java.util.ArrayList;
 import java.util.Collections;
 
-import javax.annotation.Nonnull;
-
 /**
  * A place to store the currently composing word with information such as adjacent key codes as well
  */
@@ -181,7 +179,6 @@ public final class WordComposer {
      * @param event the unprocessed event.
      * @return the processed event. Never null, but may be marked as consumed.
      */
-    @Nonnull
     public Event processEvent(final Event event) {
         final Event processedEvent = mCombinerChain.processEvent(mEvents, event);
         mEvents.add(event);
-- 
GitLab