am eba508d0: am 932ec21b: Merge "Null check; back behavior" into jb-dev

* commit 'eba508d0697c06c4a889c06ad7728a0cbce78e49':
  Null check; back behavior
diff --git a/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java b/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
index e3ef6cd..553890e 100644
--- a/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
+++ b/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
@@ -31,6 +31,7 @@
 
 import com.android.ex.chips.Queries.Query;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 
@@ -55,7 +56,7 @@
     private Query mQuery;
 
     public static HashMap<String, RecipientEntry> getMatchingRecipients(Context context,
-            String[] inAddresses) {
+            ArrayList<String> inAddresses) {
         return getMatchingRecipients(context, inAddresses, QUERY_TYPE_EMAIL);
     }
 
@@ -69,20 +70,20 @@
      * @return HashMap<String,RecipientEntry>
      */
     public static HashMap<String, RecipientEntry> getMatchingRecipients(Context context,
-            String[] inAddresses, int addressType) {
+            ArrayList<String> inAddresses, int addressType) {
         Queries.Query query;
         if (addressType == QUERY_TYPE_EMAIL) {
             query = Queries.EMAIL;
         } else {
             query = Queries.PHONE;
         }
-        int addressesSize = Math.min(MAX_LOOKUPS, inAddresses.length);
+        int addressesSize = Math.min(MAX_LOOKUPS, inAddresses.size());
         String[] addresses = new String[addressesSize];
         StringBuilder bindString = new StringBuilder();
         // Create the "?" string and set up arguments.
         for (int i = 0; i < addressesSize; i++) {
-            Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(inAddresses[i].toLowerCase());
-            addresses[i] = (tokens.length > 0 ? tokens[0].getAddress() : inAddresses[i]);
+            Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(inAddresses.get(i).toLowerCase());
+            addresses[i] = (tokens.length > 0 ? tokens[0].getAddress() : inAddresses.get(i));
             bindString.append("?");
             if (i < addressesSize - 1) {
                 bindString.append(",");
diff --git a/chips/src/com/android/ex/chips/RecipientEditTextView.java b/chips/src/com/android/ex/chips/RecipientEditTextView.java
index ac3caa8..1377ff0 100644
--- a/chips/src/com/android/ex/chips/RecipientEditTextView.java
+++ b/chips/src/com/android/ex/chips/RecipientEditTextView.java
@@ -995,8 +995,9 @@
      */
     @Override
     public boolean onKeyPreIme(int keyCode, KeyEvent event) {
-        if (keyCode == KeyEvent.KEYCODE_BACK) {
+        if (keyCode == KeyEvent.KEYCODE_BACK && mSelectedChip != null) {
             clearSelectedChip();
+            return true;
         }
         return super.onKeyPreIme(keyCode, event);
     }
@@ -1037,6 +1038,7 @@
                         return true;
                     }
                 }
+                break;
         }
         return super.onKeyUp(keyCode, event);
     }
@@ -2298,12 +2300,12 @@
             if (mRemovedSpans != null) {
                 originalRecipients.addAll(mRemovedSpans);
             }
-            String[] addresses = new String[originalRecipients.size()];
+            ArrayList<String> addresses = new ArrayList<String>();
             RecipientChip chip;
             for (int i = 0; i < originalRecipients.size(); i++) {
                 chip = originalRecipients.get(i);
                 if (chip != null) {
-                    addresses[i] = createAddressText(chip.getEntry());
+                    addresses.add(createAddressText(chip.getEntry()));
                 }
             }
             HashMap<String, RecipientEntry> entries = RecipientAlternatesAdapter
@@ -2363,12 +2365,12 @@
             // chip.
             final ArrayList<RecipientChip> originalRecipients =
                 (ArrayList<RecipientChip>) params[0];
-            String[] addresses = new String[originalRecipients.size()];
+            ArrayList<String> addresses = new ArrayList<String>();
             RecipientChip chip;
             for (int i = 0; i < originalRecipients.size(); i++) {
                 chip = originalRecipients.get(i);
                 if (chip != null) {
-                    addresses[i] = createAddressText(chip.getEntry());
+                    addresses.add(createAddressText(chip.getEntry()));
                 }
             }
             HashMap<String, RecipientEntry> entries = RecipientAlternatesAdapter