diff --git a/Android.mk b/Android.mk
index dd86146..5c3df78 100644
--- a/Android.mk
+++ b/Android.mk
@@ -17,7 +17,7 @@
 include $(CLEAR_VARS)
 LOCAL_MODULE := libchips
 LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
-LOCAL_SDK_VERSION := 19
+LOCAL_SDK_VERSION := current
 LOCAL_SRC_FILES := \
      $(call all-java-files-under, src) \
      $(call all-logtags-files-under, src)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 02ea564..bfc1073 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,4 +21,6 @@
         android:minSdkVersion="11"
         android:targetSdkVersion="19" />
 
-</manifest>
\ No newline at end of file
+    <application />
+
+</manifest>
diff --git a/res/color/chips_dropdown_subtitle_text.xml b/res/color/chips_dropdown_text.xml
similarity index 82%
rename from res/color/chips_dropdown_subtitle_text.xml
rename to res/color/chips_dropdown_text.xml
index e7b0f3e..7d333bc 100644
--- a/res/color/chips_dropdown_subtitle_text.xml
+++ b/res/color/chips_dropdown_text.xml
@@ -17,7 +17,7 @@
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <item android:state_activated="true" android:color="@android:color/white"/>
-    <item android:color="#757575"/>
+    <item android:state_activated="true" android:color="@color/chips_dropdown_text_activated"/>
+    <item android:color="@color/chips_dropdown_text_default"/>
 
-</selector>
\ No newline at end of file
+</selector>
diff --git a/res/color/chips_dropdown_title_text.xml b/res/color/chips_dropdown_title_text.xml
deleted file mode 100644
index 7c79390..0000000
--- a/res/color/chips_dropdown_title_text.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_activated="true" android:color="@android:color/white"/>
-    <item android:color="#212121"/>
-
-</selector>
\ No newline at end of file
diff --git a/res/layout/chips_autocomplete_recipient_dropdown_item.xml b/res/layout/chips_autocomplete_recipient_dropdown_item.xml
index d15a97b..ec512c2 100644
--- a/res/layout/chips_autocomplete_recipient_dropdown_item.xml
+++ b/res/layout/chips_autocomplete_recipient_dropdown_item.xml
@@ -18,6 +18,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="?android:attr/selectableItemBackground"
     android:minHeight="@dimen/chip_dropdown_height"
     android:orientation="vertical">
 
@@ -28,7 +29,6 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@drawable/chips_dropdown_background"
         style="@style/ChipAutocompleteWrapperStyle">
 
         <LinearLayout style="@style/ChipTextViewLayoutStyle">
diff --git a/res/layout/chips_recipient_dropdown_item.xml b/res/layout/chips_recipient_dropdown_item.xml
index ffb019b..cb5864e 100644
--- a/res/layout/chips_recipient_dropdown_item.xml
+++ b/res/layout/chips_recipient_dropdown_item.xml
@@ -16,8 +16,9 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/chip_dropdown_height"
+    android:layout_height="wrap_content"
     android:background="@drawable/chips_dropdown_background"
+    android:minHeight="@dimen/chip_dropdown_height"
     android:padding="12dp">
 
     <com.android.ex.chips.CircularImageView style="@style/ChipStartIconStyle" />
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 3ccbcba..358a298 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopieer e-posadres"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopieer foonnommer"</string>
-    <string name="done" msgid="2356320650733788862">"Terugkeer"</string>
+    <string name="action_label" msgid="1318401633653605424">"Keer terug"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontakvoorstelle geopen"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Verwyder <xliff:g id="CONTACT">%s</xliff:g> uit ontvangers"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 0537868..4c1e748 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"የኢሜይል አድራሻ ቅዳ"</string>
     <string name="copy_number" msgid="530057841276106843">"የስልክ ቁጥር ቅዳ"</string>
-    <string name="done" msgid="2356320650733788862">"መልስ"</string>
+    <string name="action_label" msgid="1318401633653605424">"ተመለስ"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"የእውቂያ አስተያየት ጥቆማዎች ተከፍቷል"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> ከተቀባዮች አስወግድ"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 3398641..d6477af 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$s</xliff:g>+"</string>
+    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$d</xliff:g>+"</string>
     <string name="copy_email" msgid="7869435992461603532">"نسخ عنوان البريد الإلكتروني"</string>
     <string name="copy_number" msgid="530057841276106843">"نسخ رقم الهاتف"</string>
-    <string name="done" msgid="2356320650733788862">"رجوع"</string>
+    <string name="action_label" msgid="1318401633653605424">"رجوع"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"اقتراحات جهات الاتصال التي تم فتحها"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"إزالة <xliff:g id="CONTACT">%s</xliff:g> من المستلمين"</string>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 06ed49e..b32a73c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Копиране на имейл адреса"</string>
     <string name="copy_number" msgid="530057841276106843">"Копиране на телефонния номер"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Предложенията за контакти са отворени"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Премахване на <xliff:g id="CONTACT">%s</xliff:g> от получателите"</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index e8dde0d..36c8dc0 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>টি"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>টি"</string>
     <string name="copy_email" msgid="7869435992461603532">"ইমেল ঠিকানা অনুলিপি করুন"</string>
     <string name="copy_number" msgid="530057841276106843">"ফোন নম্বর অনুলিপি করুন"</string>
-    <string name="done" msgid="2356320650733788862">"ফেরত যান"</string>
+    <string name="action_label" msgid="1318401633653605424">"ফেরত যান"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"যোগাযোগের পরামর্শগুলি খোলা হয়েছে"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"প্রাপকদের কাছ থেকে <xliff:g id="CONTACT">%s</xliff:g> সরান"</string>
 </resources>
diff --git a/res/values-bn-rWB/strings.xml b/res/values-bn-rWB/strings.xml
index e8dde0d..29918e4 100644
--- a/res/values-bn-rWB/strings.xml
+++ b/res/values-bn-rWB/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>টি"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>টি"</string>
     <string name="copy_email" msgid="7869435992461603532">"ইমেল ঠিকানা অনুলিপি করুন"</string>
     <string name="copy_number" msgid="530057841276106843">"ফোন নম্বর অনুলিপি করুন"</string>
     <string name="done" msgid="2356320650733788862">"ফেরত যান"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 77d2196..94b514c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copia l\'adreça electrònica"</string>
     <string name="copy_number" msgid="530057841276106843">"Copia el número de telèfon"</string>
-    <string name="done" msgid="2356320650733788862">"Retorn"</string>
+    <string name="action_label" msgid="1318401633653605424">"Torna"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"S\'han obert els suggeriments de contactes."</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Suprimeix <xliff:g id="CONTACT">%s</xliff:g> dels destinataris"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 212d734..3417204 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopírovat e-mailovou adresu"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopírovat telefonní číslo"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Otevřené návrhy kontaktů"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Odstranit z příjemců kontakt <xliff:g id="CONTACT">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8196fee..c153640 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiér e-mailadressen"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiér telefonnummeret"</string>
-    <string name="done" msgid="2356320650733788862">"Tilbage"</string>
+    <string name="action_label" msgid="1318401633653605424">"Tilbage"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Forslag til kontaktpersoner åbnet"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Fjern <xliff:g id="CONTACT">%s</xliff:g> fra modtagere"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d4c2fe4..1de58fd 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"E-Mail-Adresse kopieren"</string>
     <string name="copy_number" msgid="530057841276106843">"Telefonnummer kopieren"</string>
-    <string name="done" msgid="2356320650733788862">"Eingabe"</string>
+    <string name="action_label" msgid="1318401633653605424">"Zurück"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Geöffnete Kontaktvorschläge"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> aus der Empfängerliste entfernen"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 51b5ac3..6598401 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Αντιγραφή διεύθυνσης ηλεκτρονικού ταχυδρομείου"</string>
     <string name="copy_number" msgid="530057841276106843">"Αντιγραφή αριθμού τηλεφώνου"</string>
-    <string name="done" msgid="2356320650733788862">"Πλήκτρο Return"</string>
+    <string name="action_label" msgid="1318401633653605424">"Επιστροφή"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Οι προτάσεις επαφών άνοιξαν"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Κατάργηση του χρήστη <xliff:g id="CONTACT">%s</xliff:g> από τους αποδέκτες"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 1ae784b..56aa71c 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copy email address"</string>
     <string name="copy_number" msgid="530057841276106843">"Copy phone number"</string>
-    <string name="done" msgid="2356320650733788862">"Return"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Contact suggestions opened"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Remove <xliff:g id="CONTACT">%s</xliff:g> from recipients"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 1ae784b..56aa71c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copy email address"</string>
     <string name="copy_number" msgid="530057841276106843">"Copy phone number"</string>
-    <string name="done" msgid="2356320650733788862">"Return"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Contact suggestions opened"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Remove <xliff:g id="CONTACT">%s</xliff:g> from recipients"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index c63e6cb..2d11a44 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar la dirección de correo"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar el número de teléfono"</string>
-    <string name="done" msgid="2356320650733788862">"Volver"</string>
+    <string name="action_label" msgid="1318401633653605424">"Volver"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Sugerencias de contacto disponibles"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Eliminar a <xliff:g id="CONTACT">%s</xliff:g> de los destinatarios"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 74478a8..e9c769e 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar dirección de correo electrónico"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar número de teléfono"</string>
-    <string name="done" msgid="2356320650733788862">"Intro"</string>
+    <string name="action_label" msgid="1318401633653605424">"Intro"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Sugerencias de contacto disponibles"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Eliminar a <xliff:g id="CONTACT">%s</xliff:g> de los destinatarios"</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index f32e66d..d44dec7 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopeeri e-posti aadress"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopeeri telefoninumber"</string>
-    <string name="done" msgid="2356320650733788862">"Sisestus"</string>
+    <string name="action_label" msgid="1318401633653605424">"Tagasi"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontakti soovitused on avatud"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Kontakti <xliff:g id="CONTACT">%s</xliff:g> eemaldamine saajate hulgast"</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 7af993d..4cb580e 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiatu helbide elektronikoa"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiatu telefono-zenbakia"</string>
-    <string name="done" msgid="2356320650733788862">"Itzuli"</string>
+    <string name="action_label" msgid="1318401633653605424">"Itzuli"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontaktuen iradokizunak ireki dira"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Kendu <xliff:g id="CONTACT">%s</xliff:g> hartzaileetatik"</string>
 </resources>
diff --git a/res/values-eu-rPV/strings.xml b/res/values-eu-rPV/strings.xml
index 7af993d..39a62d2 100644
--- a/res/values-eu-rPV/strings.xml
+++ b/res/values-eu-rPV/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiatu helbide elektronikoa"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiatu telefono-zenbakia"</string>
     <string name="done" msgid="2356320650733788862">"Itzuli"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index e5b32ba..a39305f 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"کپی آدرس ایمیل"</string>
     <string name="copy_number" msgid="530057841276106843">"کپی شماره تلفن"</string>
-    <string name="done" msgid="2356320650733788862">"بازگشت"</string>
+    <string name="action_label" msgid="1318401633653605424">"بازگشت"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"پیشنهادات مخاطب باز شد"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"برداشتن <xliff:g id="CONTACT">%s</xliff:g> از گیرندگان"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 9893923..6cb7f09 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"yli <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"yli <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopioi sähköpostiosoite"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopioi puhelinnumero"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Avatut yhteystietoehdotukset"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Poista <xliff:g id="CONTACT">%s</xliff:g> vastaanottajista"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 758f5a8..09c7cdb 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copier l\'adresse de courriel"</string>
     <string name="copy_number" msgid="530057841276106843">"Copier le numéro de téléphone"</string>
-    <string name="done" msgid="2356320650733788862">"Renvoyer"</string>
+    <string name="action_label" msgid="1318401633653605424">"Retour"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Suggestions de contacts ouvertes"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Supprimer <xliff:g id="CONTACT">%s</xliff:g> des destinataires"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 3d13b5f..a3096a6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copier l\'adresse e-mail"</string>
     <string name="copy_number" msgid="530057841276106843">"Copier le numéro de téléphone"</string>
-    <string name="done" msgid="2356320650733788862">"Entrée"</string>
+    <string name="action_label" msgid="1318401633653605424">"Entrée"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Suggestions de contacts ouvertes"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Retirer <xliff:g id="CONTACT">%s</xliff:g> des destinataires"</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index df992d2..26d3357 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar enderezo de correo electrónico"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar número de teléfono"</string>
-    <string name="done" msgid="2356320650733788862">"Volver"</string>
+    <string name="action_label" msgid="1318401633653605424">"Volver"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Suxestións de contactos abertas"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Eliminar <xliff:g id="CONTACT">%s</xliff:g> dos destinatarios"</string>
 </resources>
diff --git a/res/values-gl-rGA/strings.xml b/res/values-gl-rGA/strings.xml
index df992d2..d8fea9a 100644
--- a/res/values-gl-rGA/strings.xml
+++ b/res/values-gl-rGA/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar enderezo de correo electrónico"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar número de teléfono"</string>
     <string name="done" msgid="2356320650733788862">"Volver"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 8368c0d..c44a0f4 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ईमेल पते की प्रतिलिपि बनाएं"</string>
     <string name="copy_number" msgid="530057841276106843">"फोन नंबर की प्रतिलिपि बनाएं"</string>
-    <string name="done" msgid="2356320650733788862">"वापस लौटें"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"संपर्क सुझाव खुले हैं"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> को प्राप्‍तकर्ताओं से निकालें"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 65f2c12..25534aa 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiranje e-adrese"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiranje telefonskog broja"</string>
-    <string name="done" msgid="2356320650733788862">"Vrati"</string>
+    <string name="action_label" msgid="1318401633653605424">"Natrag"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Prijedlozi za kontakt otvoreni"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Ukloni kontakt <xliff:g id="CONTACT">%s</xliff:g> iz primatelja"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index a18f811..ea263f0 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"E-mail cím másolása"</string>
     <string name="copy_number" msgid="530057841276106843">"Telefonszám másolása"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Névjegyjavaslatok megnyitva"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> eltávolítása a címzettek közül"</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index ca2695c..9bc9b5c 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Պատճենել էլփոստի հասցեն"</string>
     <string name="copy_number" msgid="530057841276106843">"Պատճենել հեռախոսահամարը"</string>
-    <string name="done" msgid="2356320650733788862">"Վերադառնալ"</string>
+    <string name="action_label" msgid="1318401633653605424">"Վերադառնալ"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Կոնտակտների առաջարկները բերված են"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Հեռացնել <xliff:g id="CONTACT">%s</xliff:g> կոնտակտը ստացողների ցանկից"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 9c1cbe6..9ea1694 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Salin alamat email"</string>
     <string name="copy_number" msgid="530057841276106843">"Salin nomor telepon"</string>
-    <string name="done" msgid="2356320650733788862">"Kembali"</string>
+    <string name="action_label" msgid="1318401633653605424">"Kembali"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Saran kontak dibuka"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Hapus <xliff:g id="CONTACT">%s</xliff:g> dari penerima"</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index a8186cc..78528fc 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Afrita netfang"</string>
     <string name="copy_number" msgid="530057841276106843">"Afrita símanúmer"</string>
-    <string name="done" msgid="2356320650733788862">"Til baka"</string>
+    <string name="action_label" msgid="1318401633653605424">"Venda"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Tillögur um tengiliði opnaðar"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Fjarlægja <xliff:g id="CONTACT">%s</xliff:g> úr viðtakendum"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 3f87ec0..72c93a5 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copia indirizzo email"</string>
     <string name="copy_number" msgid="530057841276106843">"Copia numero di telefono"</string>
-    <string name="done" msgid="2356320650733788862">"Invio"</string>
+    <string name="action_label" msgid="1318401633653605424">"Invio"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Suggerimenti di contatti aperti"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Rimuovi <xliff:g id="CONTACT">%s</xliff:g> dai destinatari"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index d7be75a..2697c1e 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
-    <string name="copy_email" msgid="7869435992461603532">"העתק כתובת דוא\"ל"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="copy_email" msgid="7869435992461603532">"העתק כתובת אימייל"</string>
     <string name="copy_number" msgid="530057841276106843">"העתק מספר טלפון"</string>
-    <string name="done" msgid="2356320650733788862">"חזור"</string>
+    <string name="action_label" msgid="1318401633653605424">"חזור"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"הצעות אנשי קשר פתוחות"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"הסר את <xliff:g id="CONTACT">%s</xliff:g> מהנמענים"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 543eb8a..adf8c2d 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"メールアドレスをコピー"</string>
     <string name="copy_number" msgid="530057841276106843">"電話番号をコピー"</string>
-    <string name="done" msgid="2356320650733788862">"戻る"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"選択できる連絡先候補の数"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"宛先から<xliff:g id="CONTACT">%s</xliff:g>さんを削除します"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 9d24e05..a3222a5 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ელფოსტის მისამართის კოპირება"</string>
     <string name="copy_number" msgid="530057841276106843">"ტელეფონის ნომრის კოპირება"</string>
-    <string name="done" msgid="2356320650733788862">"დაბრუნება"</string>
+    <string name="action_label" msgid="1318401633653605424">"დაბრუნება"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"კონტაქტის შემოთავაზებები გაიხსნა"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> -ის ამოშლა მიმღებთა სიიდან"</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 925eca5..75877c7 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Эл.поштаның көшірмесін жасау"</string>
     <string name="copy_number" msgid="530057841276106843">"Телефон нөмірінің көшірмесін жасау"</string>
-    <string name="done" msgid="2356320650733788862">"Қалпына келтіру"</string>
+    <string name="action_label" msgid="1318401633653605424">"Қайтару"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Контакт ұсыныстары ашық"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> алушылардан жою"</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index e51c667..c9e1fda 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ចម្លង​អាសយដ្ឋាន​អ៊ីមែល"</string>
     <string name="copy_number" msgid="530057841276106843">"ចម្លង​លេខ​ទូរស័ព្ទ"</string>
-    <string name="done" msgid="2356320650733788862">"ត្រឡប់"</string>
+    <string name="action_label" msgid="1318401633653605424">"ថយក្រោយ"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"បាន​បើក​ការ​ផ្ដល់​យោបល់​ទំនាក់ទំនង"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"យក <xliff:g id="CONTACT">%s</xliff:g> ចេញពីអ្នកទទួល"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 7befc86..eb94fcc 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಕಲಿಸಿ"</string>
     <string name="copy_number" msgid="530057841276106843">"ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
-    <string name="done" msgid="2356320650733788862">"ಹಿಂತಿರುಗು"</string>
+    <string name="action_label" msgid="1318401633653605424">"ಹಿಂತಿರುಗು"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"ಸಂಪರ್ಕ ಸಲಹೆಗಳನ್ನು ತೆರೆಯಲಾಗಿದೆ"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"ಸ್ವೀಕೃತದಾರರಿಂದ <xliff:g id="CONTACT">%s</xliff:g> ತೆಗೆದುಹಾಕಿ"</string>
 </resources>
diff --git a/res/values-kn-rKA/strings.xml b/res/values-kn-rKA/strings.xml
index 7befc86..5679fc8 100644
--- a/res/values-kn-rKA/strings.xml
+++ b/res/values-kn-rKA/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಕಲಿಸಿ"</string>
     <string name="copy_number" msgid="530057841276106843">"ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
     <string name="done" msgid="2356320650733788862">"ಹಿಂತಿರುಗು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index f7884bd..1f4b116 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$s</xliff:g>명 이상"</string>
+    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$d</xliff:g>명 이상"</string>
     <string name="copy_email" msgid="7869435992461603532">"이메일 주소 복사"</string>
     <string name="copy_number" msgid="530057841276106843">"전화번호 복사"</string>
-    <string name="done" msgid="2356320650733788862">"입력"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"추천 연락처 열림"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"수신자에서 <xliff:g id="CONTACT">%s</xliff:g> 삭제"</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 5d5434c..c4f3131 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Эмейл даректи көчүрүү"</string>
     <string name="copy_number" msgid="530057841276106843">"Телефон номурун көчүрүү"</string>
-    <string name="done" msgid="2356320650733788862">"Кайтуу"</string>
+    <string name="action_label" msgid="1318401633653605424">"Кайтуу"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Байланыш сунуштары ачылды"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Алуучулардан <xliff:g id="CONTACT">%s</xliff:g> дегенди алып салуу"</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 44912af..bded022 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ສຳເນົາທີ່ຢູ່ອີເມວ"</string>
     <string name="copy_number" msgid="530057841276106843">"ສຳເນົາເບີໂທລະສັບ"</string>
-    <string name="done" msgid="2356320650733788862">"ກັບຄືນ"</string>
+    <string name="action_label" msgid="1318401633653605424">"ກັບຄືນ"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"ການ​ແນະ​ນຳ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່ຖືກ​ເປີດ​ແລ້ວ"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"ເອົາ <xliff:g id="CONTACT">%s</xliff:g> ອອກ​ໄປ​ຈາກ​ຜູ້​ຮັບ"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index e85eba3..828c73a 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopijuoti el. pašto adresą"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopijuoti telefono numerį"</string>
-    <string name="done" msgid="2356320650733788862">"Grįžti"</string>
+    <string name="action_label" msgid="1318401633653605424">"Grįžti"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontaktų pasiūlymai atidaryti"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Pašalinti <xliff:g id="CONTACT">%s</xliff:g> iš gavėjų"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index f06e4fc..006b021 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"Vairāk nekā <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"Vairāk nekā <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopēt e-pasta adresi"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopēt tālruņa numuru"</string>
-    <string name="done" msgid="2356320650733788862">"Iev. taust."</string>
+    <string name="action_label" msgid="1318401633653605424">"Atgriezties"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontaktpersonu iestatījumi ir atvērti."</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Noņemt kontaktpersonu <xliff:g id="CONTACT">%s</xliff:g> no adresātu saraksta"</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 25e067a..bdb0c85 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Копирај адреса на е-пошта"</string>
     <string name="copy_number" msgid="530057841276106843">"Копирај телефонски број"</string>
-    <string name="done" msgid="2356320650733788862">"Врати"</string>
+    <string name="action_label" msgid="1318401633653605424">"Врати"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Предлозите за контактот се отворени"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Отстранете го контактот <xliff:g id="CONTACT">%s</xliff:g> од примачи"</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 3bd6d8d..1113fc0 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$s</xliff:g> എണ്ണം കൂടി"</string>
+    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$d</xliff:g> എണ്ണം കൂടി"</string>
     <string name="copy_email" msgid="7869435992461603532">"ഇമെയിൽ വിലാസം പകർത്തുക"</string>
     <string name="copy_number" msgid="530057841276106843">"ഫോൺ നമ്പർ പകർത്തുക"</string>
-    <string name="done" msgid="2356320650733788862">"മടങ്ങുക"</string>
+    <string name="action_label" msgid="1318401633653605424">"മടങ്ങുക"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"കോൺടാക്‌റ്റ് നിർദ്ദേശങ്ങൾ ലഭ്യമാണ്"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"സ്വീകർത്താക്കളിൽ നിന്ന് <xliff:g id="CONTACT">%s</xliff:g> നീക്കംചെയ്യുക"</string>
 </resources>
diff --git a/res/values-ml-rKL/strings.xml b/res/values-ml-rKL/strings.xml
index 3bd6d8d..40a9df2 100644
--- a/res/values-ml-rKL/strings.xml
+++ b/res/values-ml-rKL/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$s</xliff:g> എണ്ണം കൂടി"</string>
+    <string name="more_string" msgid="8495478259330621990">"<xliff:g id="COUNT">%1$d</xliff:g> എണ്ണം കൂടി"</string>
     <string name="copy_email" msgid="7869435992461603532">"ഇമെയിൽ വിലാസം പകർത്തുക"</string>
     <string name="copy_number" msgid="530057841276106843">"ഫോൺ നമ്പർ പകർത്തുക"</string>
     <string name="done" msgid="2356320650733788862">"മടങ്ങുക"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 89923c3..b13103d 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Имэйл хаяг хуулах"</string>
     <string name="copy_number" msgid="530057841276106843">"Утасны дугаар хуулах"</string>
-    <string name="done" msgid="2356320650733788862">"Оруулах"</string>
+    <string name="action_label" msgid="1318401633653605424">"Оруулах"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Харилцагчийн санал болголт нээгдсэн"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Хүлээн авагчдын мэдээллээс <xliff:g id="CONTACT">%s</xliff:g>-г хасах"</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index f7090f5..d0d6534 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ईमेल पत्ता कॉपी करा"</string>
     <string name="copy_number" msgid="530057841276106843">"फोन नंबर कॉपी करा"</string>
-    <string name="done" msgid="2356320650733788862">"परत"</string>
+    <string name="action_label" msgid="1318401633653605424">"परत"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"संपर्क सूचना उघडल्या"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"प्राप्तकर्त्यांमधून <xliff:g id="CONTACT">%s</xliff:g> काढा"</string>
 </resources>
diff --git a/res/values-mr-rMH/strings.xml b/res/values-mr-rMH/strings.xml
index f7090f5..861d8c1 100644
--- a/res/values-mr-rMH/strings.xml
+++ b/res/values-mr-rMH/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ईमेल पत्ता कॉपी करा"</string>
     <string name="copy_number" msgid="530057841276106843">"फोन नंबर कॉपी करा"</string>
     <string name="done" msgid="2356320650733788862">"परत"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 76320f9..c0bca51 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Salin alamat e-mel"</string>
     <string name="copy_number" msgid="530057841276106843">"Salin nombor telefon"</string>
-    <string name="done" msgid="2356320650733788862">"Kembali"</string>
+    <string name="action_label" msgid="1318401633653605424">"Kembali"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Cadangan kenalan dibuka"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Alih keluar <xliff:g id="CONTACT">%s</xliff:g> daripada penerima"</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index bae3e6b..9499ed8 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"အီးမေးလ်လိပ်စာ ကူးထည့်ရန်"</string>
     <string name="copy_number" msgid="530057841276106843">"ဖုန်းနံပါတ် ကူးထည့်ရန်"</string>
-    <string name="done" msgid="2356320650733788862">"ရယူရန်"</string>
+    <string name="action_label" msgid="1318401633653605424">"နောက်ပြန်ရန်"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"အဆက်အသွယ် အကြံပေးချက်များ ဖွင့်ထား"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"လက်ခံသူများ မှ<xliff:g id="CONTACT">%s</xliff:g> အားဖယ်ရှားရန်"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index a71348e..0a6dda8 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiér e-postadressen"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiér telefonnummeret"</string>
-    <string name="done" msgid="2356320650733788862">"Gå tilbake"</string>
+    <string name="action_label" msgid="1318401633653605424">"Gå tilbake"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontaktforslag er åpnet"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Fjern <xliff:g id="CONTACT">%s</xliff:g> fra mottakere"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 4710484..422b839 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"इमेल ठेगानाको प्रतिलिपि बनाउनुहोस्"</string>
     <string name="copy_number" msgid="530057841276106843">"फोन नम्बरको प्रतिलिपि गर्नुहोस्"</string>
-    <string name="done" msgid="2356320650733788862">"फिर्ता हुनुहोस्"</string>
+    <string name="action_label" msgid="1318401633653605424">"फर्कनुहोस्"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"सम्पर्क सुझाव खोलियो"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"प्राप्तकर्ताहरूबाट <xliff:g id="CONTACT">%s</xliff:g> हटाउनुहोस्"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c4289c6..414b77e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"E-mailadres kopiëren"</string>
     <string name="copy_number" msgid="530057841276106843">"Telefoonnummer kopiëren"</string>
-    <string name="done" msgid="2356320650733788862">"Return"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Contactsuggesties geopend"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> verwijderen uit ontvangers"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 8746e48..d6da202 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiuj adres e-mail"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiuj numer telefonu"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Otwarto sugerowane kontakty"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Usuń kontakt <xliff:g id="CONTACT">%s</xliff:g> z listy odbiorców"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index fc991b1..3b5893d 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar endereço de email"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar número de telefone"</string>
-    <string name="done" msgid="2356320650733788862">"Voltar"</string>
+    <string name="action_label" msgid="1318401633653605424">"Voltar"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Sugestões de contactos abertas"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Remover <xliff:g id="CONTACT">%s</xliff:g> dos destinatários"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 58a23e3..4c52a95 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiar endereço de e-mail"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiar número de telefone"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Sugestões de contato ativadas"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Remover <xliff:g id="CONTACT">%s</xliff:g> dos destinatários"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 6bd8a36..11e1d80 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Copiaţi adresa de e-mail"</string>
     <string name="copy_number" msgid="530057841276106843">"Copiaţi numărul de telefon"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Sugestii de persoane de contact disponibile"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Eliminați <xliff:g id="CONTACT">%s</xliff:g> din destinatari"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 0d6a2d7..d865965 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"ещё <xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"ещё <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Скопировать адрес эл. почты"</string>
     <string name="copy_number" msgid="530057841276106843">"Скопировать номер телефона"</string>
-    <string name="done" msgid="2356320650733788862">"Назад"</string>
+    <string name="action_label" msgid="1318401633653605424">"Ввод"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Количество рекомендуемых контактов."</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Удалить контакт <xliff:g id="CONTACT">%s</xliff:g> из списка получателей"</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 313405f..bcf269b 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ඊ-තැපැල් ලිපිනය පිටපත් කරන්න"</string>
     <string name="copy_number" msgid="530057841276106843">"දුරකථන අංකය පිටපත් කරන්න"</string>
-    <string name="done" msgid="2356320650733788862">"ආපසු එවන්න"</string>
+    <string name="action_label" msgid="1318401633653605424">"ආපසු එවන්න"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"සම්බන්ධතා යෝජනා විවෘත කරන"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"ලබන්නන් වෙතින් <xliff:g id="CONTACT">%s</xliff:g> ඉවත් කරන්න"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 155da99..5574fe1 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopírovať e-mailovú adresu"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopírovať telefónne číslo"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Ponuka Návrhy kontaktov je otvorená"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Odstrániť kontakt <xliff:g id="CONTACT">%s</xliff:g> z príjemcov"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index e9877dd..a0c29cb 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiranje e-poštnega naslova"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiranje telefonske številke"</string>
-    <string name="done" msgid="2356320650733788862">"Vračalka"</string>
+    <string name="action_label" msgid="1318401633653605424">"Vračalka"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Predlogi za stike so odprti"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Odstranitev stika <xliff:g id="CONTACT">%s</xliff:g> s seznama prejemnikov"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index fd86a2e..5bfdc31 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Копирај имејл адресу"</string>
     <string name="copy_number" msgid="530057841276106843">"Копирај број телефона"</string>
-    <string name="done" msgid="2356320650733788862">"Врати"</string>
+    <string name="action_label" msgid="1318401633653605424">"Return"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Предлози за контакте су отворени"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Уклоните <xliff:g id="CONTACT">%s</xliff:g> из прималаца"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a2a9f40..4f94ceb 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopiera e-postadress"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopiera telefonnummer"</string>
-    <string name="done" msgid="2356320650733788862">"Retur"</string>
+    <string name="action_label" msgid="1318401633653605424">"Retur"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kontaktförslag har öppnats"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Ta bort <xliff:g id="CONTACT">%s</xliff:g> från mottagarlistan"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index edea133..e23620a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Nakili anwani ya barua pepe"</string>
     <string name="copy_number" msgid="530057841276106843">"Nakili namba ya simu"</string>
-    <string name="done" msgid="2356320650733788862">"Inayofuata"</string>
+    <string name="action_label" msgid="1318401633653605424">"Rudi"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Mapendekezo ya anwani yamefunguliwa"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Ondoa <xliff:g id="CONTACT">%s</xliff:g> miongoni mwa wapokeaji"</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 5573731..89a77e9 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"மின்னஞ்சல் முகவரியை நகலெடு"</string>
     <string name="copy_number" msgid="530057841276106843">"மொபைல் எண்ணை நகலெடு"</string>
-    <string name="done" msgid="2356320650733788862">"திரும்பு"</string>
+    <string name="action_label" msgid="1318401633653605424">"திரும்பு"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"திறந்துள்ள தொடர்புப் பரிந்துரைகள்"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"பெறுநர்களிலிருந்து <xliff:g id="CONTACT">%s</xliff:g>ஐ அகற்றும்"</string>
 </resources>
diff --git a/res/values-ta-rTN/strings.xml b/res/values-ta-rTN/strings.xml
index 5573731..67819a5 100644
--- a/res/values-ta-rTN/strings.xml
+++ b/res/values-ta-rTN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"மின்னஞ்சல் முகவரியை நகலெடு"</string>
     <string name="copy_number" msgid="530057841276106843">"மொபைல் எண்ணை நகலெடு"</string>
     <string name="done" msgid="2356320650733788862">"திரும்பு"</string>
diff --git a/res/values-te-rAP/strings.xml b/res/values-te-rAP/strings.xml
index 8b02426..82a3272 100644
--- a/res/values-te-rAP/strings.xml
+++ b/res/values-te-rAP/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ఇమెయిల్ చిరునామాను కాపీ చేయండి"</string>
     <string name="copy_number" msgid="530057841276106843">"ఫోన్ నంబర్‌ను కాపీ చేయండి"</string>
     <string name="done" msgid="2356320650733788862">"తిరిగి వెళ్లు"</string>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 8b02426..05812cc 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ఇమెయిల్ చిరునామాను కాపీ చేయండి"</string>
     <string name="copy_number" msgid="530057841276106843">"ఫోన్ నంబర్‌ను కాపీ చేయండి"</string>
-    <string name="done" msgid="2356320650733788862">"తిరిగి వెళ్లు"</string>
+    <string name="action_label" msgid="1318401633653605424">"తిరిగివెళ్లు"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"పరిచయ సూచనలు తెరవబడ్డాయి"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"స్వీకర్తల నుండి <xliff:g id="CONTACT">%s</xliff:g>ని తీసివేయండి"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index fffafd0..da61e2a 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"คัดลอกที่อยู่อีเมล"</string>
     <string name="copy_number" msgid="530057841276106843">"คัดลอกหมายเลขโทรศัพท์"</string>
-    <string name="done" msgid="2356320650733788862">"ส่งคืน"</string>
+    <string name="action_label" msgid="1318401633653605424">"เสร็จสิ้น"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"คำแนะนำเกี่ยวกับข้อมูลติดต่อที่เปิดอยู่"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"นำ <xliff:g id="CONTACT">%s</xliff:g> ออกจากผู้รับ"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index db846ca..025a5d6 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopyahin ang email address"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopyahin ang numero ng telepono"</string>
-    <string name="done" msgid="2356320650733788862">"Bumalik"</string>
+    <string name="action_label" msgid="1318401633653605424">"Bumalik"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Nakabukas ang mga suhestyon sa contact"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Alisin si <xliff:g id="CONTACT">%s</xliff:g> sa mga tatanggap"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 1e099a4..a8c8f8e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"E-posta adresini kopyala"</string>
     <string name="copy_number" msgid="530057841276106843">"Telefon numarasını kopyala"</string>
-    <string name="done" msgid="2356320650733788862">"Enter"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Kişi önerileri açıldı"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> adlı kişiyi alıcılardan kaldır"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 820183e..8e34f7e 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Копіювати електронну адресу"</string>
     <string name="copy_number" msgid="530057841276106843">"Копіювати номер телефону"</string>
-    <string name="done" msgid="2356320650733788862">"Return"</string>
+    <string name="action_label" msgid="1318401633653605424">"Назад"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Пропозиції контактів увімкнено"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Видалити отримувача: <xliff:g id="CONTACT">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index e36ec06..886377c 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"‎+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"‎+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"ای میل پتہ کاپی کریں"</string>
     <string name="copy_number" msgid="530057841276106843">"فون نمبر کاپی کریں"</string>
-    <string name="done" msgid="2356320650733788862">"واپس جائیں"</string>
+    <string name="action_label" msgid="1318401633653605424">"واپس جائیں"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"رابطہ کی تجاویز کھلی ہوئی ہیں"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> کو وصول کنندگان سے ہٹائیں"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 01e8833..910562f 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g> ta"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g> ta"</string>
     <string name="copy_email" msgid="7869435992461603532">"E-pochta manzilidan nusxa olish"</string>
     <string name="copy_number" msgid="530057841276106843">"Telefon raqamidan nusxa olish"</string>
-    <string name="done" msgid="2356320650733788862">"Qaytish"</string>
+    <string name="action_label" msgid="1318401633653605424">"Enter"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Taklif qilingan kontaktlar ochildi"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"<xliff:g id="CONTACT">%s</xliff:g> qabul qiluvchilar ro‘yxatidan olib tashlansin"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index f42d837..134bcb4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Sao chép địa chỉ email"</string>
     <string name="copy_number" msgid="530057841276106843">"Sao chép số điện thoại"</string>
-    <string name="done" msgid="2356320650733788862">"Quay lại"</string>
+    <string name="action_label" msgid="1318401633653605424">"Quay lại"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Đã mở đề xuất liên hệ"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Xóa <xliff:g id="CONTACT">%s</xliff:g> khỏi người nhận"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2283f75..4785214 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"复制电子邮件地址"</string>
     <string name="copy_number" msgid="530057841276106843">"复制电话号码"</string>
-    <string name="done" msgid="2356320650733788862">"上一步"</string>
+    <string name="action_label" msgid="1318401633653605424">"回车"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"联系人推荐已打开"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"从收件人列表中移除<xliff:g id="CONTACT">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 31a122a..aaf4cf1 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g> 人"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g> 人"</string>
     <string name="copy_email" msgid="7869435992461603532">"複製電郵地址"</string>
     <string name="copy_number" msgid="530057841276106843">"複製電話號碼"</string>
-    <string name="done" msgid="2356320650733788862">"Return 鍵"</string>
+    <string name="action_label" msgid="1318401633653605424">"返回"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"已開啟聯絡人建議"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"從收件人中移除<xliff:g id="CONTACT">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 62d71cf..69e5518 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g> 人"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g> 人"</string>
     <string name="copy_email" msgid="7869435992461603532">"複製電子郵件地址"</string>
     <string name="copy_number" msgid="530057841276106843">"複製電話號碼"</string>
-    <string name="done" msgid="2356320650733788862">"返回"</string>
+    <string name="action_label" msgid="1318401633653605424">"返回"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"已開啟聯絡人建議"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"從收件者名單中移除<xliff:g id="CONTACT">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9ae03ed..5528b00 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -16,8 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="more_string" msgid="8495478259330621990">"+<xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="copy_email" msgid="7869435992461603532">"Kopisha ikheli le-imeyli"</string>
     <string name="copy_number" msgid="530057841276106843">"Kopisha inombolo yefoni"</string>
-    <string name="done" msgid="2356320650733788862">"Buyela"</string>
+    <string name="action_label" msgid="1318401633653605424">"Buyela"</string>
+    <string name="accessbility_suggestion_dropdown_opened" msgid="3231589819168382515">"Iziphakamiso zoxhumana nabo zivuliwe"</string>
+    <string name="dropdown_delete_button_desc" msgid="8506791557733906887">"Susa u-<xliff:g id="CONTACT">%s</xliff:g> kusukela kubamukeli"</string>
 </resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index d3500aa..8cc5470 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -20,7 +20,6 @@
             <enum name="start" value="1" />
         </attr>
         <attr name="chipBackground" format="reference" />
-        <attr name="chipBackgroundPressed" format="reference" />
         <attr name="chipDelete" format="reference" />
         <attr name="chipFontSize" format="reference" />
         <attr name="chipHeight" format="reference" />
@@ -31,5 +30,9 @@
             <enum name="bottom" value = "0"/>
             <enum name="baseline" value = "1"/>
         </attr>
+        <attr name="unselectedChipBackgroundColor" format="color" />
+        <attr name="selectedChipBackgroundColor" format="color" />
+        <attr name="unselectedChipTextColor" format="color" />
+        <attr name="selectedChipTextColor" format="color" />
     </declare-styleable>
 </resources>
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 5bdfd0f..5130a32 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -26,4 +26,8 @@
     <color name="chip_background_selected">#4285f4</color>
     <color name="chip_background_invalid">#db4437</color>
 
-</resources>
\ No newline at end of file
+    <color name="chips_dropdown_text_default">#212121</color>
+    <color name="chips_dropdown_text_activated">@android:color/white</color>
+    <color name="chips_dropdown_text_highlighted">#757575</color>
+
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d1c9c7f..ecff60f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -15,15 +15,15 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Text displayed when the recipientedittextview is not focused. Displays the total number of recipients since the field is shrunk to just display a portion -->
-    <string name="more_string">\u002B<xliff:g id="count">%1$s</xliff:g></string>
-
-    <!-- Text displayed when the user long presses on a chip to copy the recipients email address.
-         [CHAR LIMIT=200] -->
+    <string name="more_string">\u002B<xliff:g id="count">%1$d</xliff:g></string>
+    <!-- Text displayed when the user long presses on a chip to copy the recipients email address [CHAR LIMIT=200] -->
     <string name="copy_email">Copy email address</string>
-    <!-- Text displayed when the user long presses on a chip to copy the recipient's phone number.
-         [CHAR LIMIT=200] -->
+    <!-- Text displayed when the user long presses on a chip to copy the recipient's phone number [CHAR LIMIT=200] -->
     <string name="copy_number">Copy phone number</string>
-    <!-- Text displayed in the enter key slot when the recipientedittextview has focus.
-         [CHAR LIMIT=12] -->
+    <!-- Text displayed in the enter key slot when the recipientedittextview has focus [CHAR LIMIT=12] -->
     <string name="action_label">Return</string>
+    <!-- Announce the number of possible recipient entries that the user can select from for accessibility purposes [CHAR LIMIT=200] -->
+    <string name="accessbility_suggestion_dropdown_opened">Contact suggestions opened</string>
+    <!-- Description for the delete button that removes the selected contact from the recipients [CHAR LIMIT=100] -->
+    <string name="dropdown_delete_button_desc">Remove <xliff:g id="contact">%s</xliff:g> from recipients</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 2e7d6b4..8cb48e0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -13,15 +13,14 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:tools="http://schemas.android.com/tools"
-           xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+<resources xmlns:tools="http://schemas.android.com/tools">
     <style name="RecipientEditTextViewBase" parent="@android:attr/autoCompleteTextViewStyle">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
         <item name="android:background">@null</item>
         <item name="android:inputType">textEmailAddress|textMultiLine</item>
         <item name="android:minHeight">@dimen/chip_height</item>
-        <item name="android:popupBackground">@null</item>
+        <item name="android:popupBackground">@android:color/white</item>
         <item name="android:textAlignment" tools:ignore="NewApi">viewStart</item>
         <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
         <item name="android:textDirection" tools:ignore="NewApi">locale</item>
@@ -60,7 +59,7 @@
         <item name="android:ellipsize">middle</item>
         <item name="android:singleLine">true</item>
         <item name="android:textAlignment">viewStart</item>
-        <item name="android:textColor">@color/chips_dropdown_title_text</item>
+        <item name="android:textColor">@color/chips_dropdown_text</item>
         <item name="android:textSize">16sp</item>
     </style>
 
@@ -71,7 +70,7 @@
         <item name="android:ellipsize">middle</item>
         <item name="android:singleLine">true</item>
         <item name="android:textAlignment">viewStart</item>
-        <item name="android:textColor">@color/chips_dropdown_subtitle_text</item>
+        <item name="android:textColor">@color/chips_dropdown_text</item>
         <item name="android:textSize">14sp</item>
     </style>
 
diff --git a/sample/res/values-iw/strings.xml b/sample/res/values-iw/strings.xml
index 7ead2ae..c295c34 100644
--- a/sample/res/values-iw/strings.xml
+++ b/sample/res/values-iw/strings.xml
@@ -16,6 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="email_addresses" msgid="5320415175940315400">"כתובות דוא\"ל"</string>
+    <string name="email_addresses" msgid="5320415175940315400">"כתובות אימייל"</string>
     <string name="phone_numbers" msgid="7836326833170390688">"מספרי טלפון"</string>
 </resources>
diff --git a/src/com/android/ex/chips/BaseRecipientAdapter.java b/src/com/android/ex/chips/BaseRecipientAdapter.java
index 24f7a3e..070f7ad 100644
--- a/src/com/android/ex/chips/BaseRecipientAdapter.java
+++ b/src/com/android/ex/chips/BaseRecipientAdapter.java
@@ -256,7 +256,7 @@
                     results.values = new DefaultFilterResult(
                             entries, entryMap, nonAggregatedEntries,
                             existingDestinations, paramsList);
-                    results.count = 1;
+                    results.count = entries.size();
                 }
             } finally {
                 if (defaultDirectoryCursor != null) {
@@ -281,12 +281,9 @@
                 mNonAggregatedEntries = defaultFilterResult.nonAggregatedEntries;
                 mExistingDestinations = defaultFilterResult.existingDestinations;
 
-                // If there are no local results, in the new result set, cache off what had been
-                // shown to the user for use until the first directory result is returned
-                if (defaultFilterResult.entries.size() == 0 &&
-                        defaultFilterResult.paramsList != null) {
-                    cacheCurrentEntries();
-                }
+                cacheCurrentEntriesIfNeeded(defaultFilterResult.entries.size(),
+                        defaultFilterResult.paramsList == null ? 0 :
+                                defaultFilterResult.paramsList.size());
 
                 updateEntries(defaultFilterResult.entries);
 
@@ -324,10 +321,17 @@
                         + existingDestinations.size()
                         + ", remaining limit: " + limit + ") ");
             }
-            final Cursor directoryCursor = mContentResolver.query(
-                    DirectoryListQuery.URI, DirectoryListQuery.PROJECTION,
-                    null, null, null);
-            return setupOtherDirectories(mContext, directoryCursor, mAccount);
+            Cursor directoryCursor = null;
+            try {
+                directoryCursor = mContentResolver.query(
+                        DirectoryListQuery.URI, DirectoryListQuery.PROJECTION,
+                        null, null, null);
+                return setupOtherDirectories(mContext, directoryCursor, mAccount);
+            } finally {
+                if (directoryCursor != null) {
+                    directoryCursor.close();
+                }
+            }
         } else {
             // We don't need to search other directories.
             return null;
@@ -385,7 +389,7 @@
                 }
                 if (!tempEntries.isEmpty()) {
                     results.values = tempEntries;
-                    results.count = 1;
+                    results.count = tempEntries.size();
                 }
             }
 
@@ -818,6 +822,19 @@
         notifyDataSetChanged();
     }
 
+    /**
+     * If there are no local results and we are searching alternate results,
+     * in the new result set, cache off what had been shown to the user for use until
+     * the first directory result is returned
+     * @param newEntryCount number of newly loaded entries
+     * @param paramListCount number of alternate filters it will search (including the current one).
+     */
+    protected void cacheCurrentEntriesIfNeeded(int newEntryCount, int paramListCount) {
+        if (newEntryCount == 0 && paramListCount > 1) {
+            cacheCurrentEntries();
+        }
+    }
+
     protected void cacheCurrentEntries() {
         mTempEntries = mEntries;
     }
diff --git a/src/com/android/ex/chips/DropdownChipLayouter.java b/src/com/android/ex/chips/DropdownChipLayouter.java
index f88ea7d..170008f 100644
--- a/src/com/android/ex/chips/DropdownChipLayouter.java
+++ b/src/com/android/ex/chips/DropdownChipLayouter.java
@@ -1,6 +1,7 @@
 package com.android.ex.chips;
 
 import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.StateListDrawable;
@@ -8,11 +9,17 @@
 import android.support.annotation.DrawableRes;
 import android.support.annotation.IdRes;
 import android.support.annotation.LayoutRes;
+import android.support.annotation.Nullable;
+import android.support.v4.view.MarginLayoutParamsCompat;
+import android.text.SpannableStringBuilder;
+import android.text.Spanned;
 import android.text.TextUtils;
+import android.text.style.ForegroundColorSpan;
 import android.text.util.Rfc822Tokenizer;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewGroup.MarginLayoutParams;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -40,10 +47,13 @@
     private final Context mContext;
     private ChipDeleteListener mDeleteListener;
     private Query mQuery;
+    private int mAutocompleteDividerMarginStart;
 
     public DropdownChipLayouter(LayoutInflater inflater, Context context) {
         mInflater = inflater;
         mContext = context;
+        mAutocompleteDividerMarginStart =
+                context.getResources().getDimensionPixelOffset(R.dimen.chip_wrapper_start_padding);
     }
 
     public void setQuery(Query query) {
@@ -54,6 +64,9 @@
         mDeleteListener = listener;
     }
 
+    public void setAutocompleteDividerMarginStart(int autocompleteDividerMarginStart) {
+        mAutocompleteDividerMarginStart = autocompleteDividerMarginStart;
+    }
 
     /**
      * Layouts and binds recipient information to the view. If convertView is null, inflates a new
@@ -75,13 +88,17 @@
 
     /**
      * See {@link #bindView(View, ViewGroup, RecipientEntry, int, AdapterType, String)}
-     * @param deleteDrawable
+     * @param deleteDrawable a {@link android.graphics.drawable.StateListDrawable} representing
+     *     the delete icon. android.R.attr.state_activated should map to the delete icon, and the
+     *     default state can map to a drawable of your choice (or null for no drawable).
      */
     public View bindView(View convertView, ViewGroup parent, RecipientEntry entry, int position,
             AdapterType type, String constraint, StateListDrawable deleteDrawable) {
         // Default to show all the information
-        String displayName = entry.getDisplayName();
-        String destination = entry.getDestination();
+        CharSequence[] styledResults =
+                getStyledResults(constraint, entry.getDisplayName(), entry.getDestination());
+        CharSequence displayName = styledResults[0];
+        CharSequence destination = styledResults[1];
         boolean showImage = true;
         CharSequence destinationType = getDestinationType(entry);
 
@@ -110,6 +127,14 @@
                 // For BASE_RECIPIENT set all top dividers except for the first one to be GONE.
                 if (viewHolder.topDivider != null) {
                     viewHolder.topDivider.setVisibility(position == 0 ? View.VISIBLE : View.GONE);
+                    MarginLayoutParamsCompat.setMarginStart(
+                            (MarginLayoutParams) viewHolder.topDivider.getLayoutParams(),
+                            mAutocompleteDividerMarginStart);
+                }
+                if (viewHolder.bottomDivider != null) {
+                    MarginLayoutParamsCompat.setMarginStart(
+                            (MarginLayoutParams) viewHolder.bottomDivider.getLayoutParams(),
+                            mAutocompleteDividerMarginStart);
                 }
                 break;
             case RECIPIENT_ALTERNATES:
@@ -128,7 +153,7 @@
         bindTextToView(destination, viewHolder.destinationView);
         bindTextToView(destinationType, viewHolder.destinationTypeView);
         bindIconToView(showImage, entry, viewHolder.imageView, type);
-        bindDrawableToDeleteView(deleteDrawable, viewHolder.deleteView);
+        bindDrawableToDeleteView(deleteDrawable, entry.getDisplayName(), viewHolder.deleteView);
 
         return itemView;
     }
@@ -214,24 +239,28 @@
         }
     }
 
-    protected void bindDrawableToDeleteView(final StateListDrawable drawable, ImageView view) {
+    protected void bindDrawableToDeleteView(final StateListDrawable drawable, String recipient,
+            ImageView view) {
         if (view == null) {
             return;
         }
         if (drawable == null) {
             view.setVisibility(View.GONE);
-        }
-
-        view.setImageDrawable(drawable);
-        if (mDeleteListener != null) {
-            view.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    if (drawable.getCurrent() != null) {
-                        mDeleteListener.onChipDelete();
+        } else {
+            final Resources res = mContext.getResources();
+            view.setImageDrawable(drawable);
+            view.setContentDescription(
+                    res.getString(R.string.dropdown_delete_button_desc, recipient));
+            if (mDeleteListener != null) {
+                view.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        if (drawable.getCurrent() != null) {
+                            mDeleteListener.onChipDelete();
+                        }
                     }
-                }
-            });
+                });
+            }
         }
     }
 
@@ -324,6 +353,64 @@
     protected @IdRes int getDeleteResId() { return android.R.id.icon1; }
 
     /**
+     * Given a constraint and results, tries to find the constraint in those results, one at a time.
+     * A foreground font color style will be applied to the section that matches the constraint. As
+     * soon as a match has been found, no further matches are attempted.
+     *
+     * @param constraint A string that we will attempt to find within the results.
+     * @param results Strings that may contain the constraint. The order given is the order used to
+     *     search for the constraint.
+     *
+     * @return An array of CharSequences, the length determined by the length of results. Each
+     *     CharSequence will either be a styled SpannableString or just the input String.
+     */
+    protected CharSequence[] getStyledResults(@Nullable String constraint, String... results) {
+        if (isAllWhitespace(constraint)) {
+            return results;
+        }
+
+        CharSequence[] styledResults = new CharSequence[results.length];
+        boolean foundMatch = false;
+        for (int i = 0; i < results.length; i++) {
+            String result = results[i];
+            if (result == null) {
+                continue;
+            }
+
+            if (!foundMatch) {
+                int index = result.toLowerCase().indexOf(constraint.toLowerCase());
+                if (index != -1) {
+                    SpannableStringBuilder styled = SpannableStringBuilder.valueOf(result);
+                    ForegroundColorSpan highlightSpan =
+                            new ForegroundColorSpan(mContext.getResources().getColor(
+                                    R.color.chips_dropdown_text_highlighted));
+                    styled.setSpan(highlightSpan,
+                            index, index + constraint.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    styledResults[i] = styled;
+                    foundMatch = true;
+                    continue;
+                }
+            }
+            styledResults[i] = result;
+        }
+        return styledResults;
+    }
+
+    private static boolean isAllWhitespace(@Nullable String string) {
+        if (TextUtils.isEmpty(string)) {
+            return true;
+        }
+
+        for (int i = 0; i < string.length(); ++i) {
+            if (!Character.isWhitespace(string.charAt(i))) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
      * A holder class the view. Uses the getters in DropdownChipLayouter to find the id of the
      * corresponding views.
      */
@@ -334,6 +421,7 @@
         public final ImageView imageView;
         public final ImageView deleteView;
         public final View topDivider;
+        public final View bottomDivider;
 
         public ViewHolder(View view) {
             displayNameView = (TextView) view.findViewById(getDisplayNameResId());
@@ -342,6 +430,7 @@
             imageView = (ImageView) view.findViewById(getPhotoResId());
             deleteView = (ImageView) view.findViewById(getDeleteResId());
             topDivider = view.findViewById(R.id.chip_autocomplete_top_divider);
+            bottomDivider = view.findViewById(R.id.chip_autocomplete_bottom_divider);
         }
     }
 }
diff --git a/src/com/android/ex/chips/RecipientEditTextView.java b/src/com/android/ex/chips/RecipientEditTextView.java
index 1780c6e..4584e58 100644
--- a/src/com/android/ex/chips/RecipientEditTextView.java
+++ b/src/com/android/ex/chips/RecipientEditTextView.java
@@ -17,6 +17,7 @@
 
 package com.android.ex.chips;
 
+import android.annotation.TargetApi;
 import android.app.Dialog;
 import android.content.ClipData;
 import android.content.ClipDescription;
@@ -47,6 +48,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.Parcelable;
+import android.support.annotation.NonNull;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.Layout;
@@ -62,7 +64,6 @@
 import android.text.util.Rfc822Tokenizer;
 import android.util.AttributeSet;
 import android.util.Log;
-import android.util.TypedValue;
 import android.view.ActionMode;
 import android.view.ActionMode.Callback;
 import android.view.DragEvent;
@@ -75,6 +76,8 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewParent;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
 import android.widget.AdapterView;
@@ -85,6 +88,7 @@
 import android.widget.ListPopupWindow;
 import android.widget.ListView;
 import android.widget.MultiAutoCompleteTextView;
+import android.widget.PopupWindow;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
@@ -137,14 +141,19 @@
 
     private static final int MAX_CHIPS_PARSED = 50;
 
-    private static int sSelectedTextColor = -1;
-    private static int sExcessTopPadding = -1;
+    private int mSelectedChipTextColor;
+    private int mUnselectedChipTextColor;
+    private int mSelectedChipBackgroundColor;
+    private int mUnselectedChipBackgroundColor;
+
+    // Work variables to avoid re-allocation on every typed character.
+    private final Rect mRect = new Rect();
+    private final int[] mCoords = new int[2];
 
     // Resources for displaying chips.
     private Drawable mChipBackground = null;
     private Drawable mChipDelete = null;
     private Drawable mInvalidChipBackground;
-    private Drawable mChipBackgroundPressed;
 
     // Possible attr overrides
     private float mChipHeight;
@@ -155,7 +164,6 @@
     private final int mTextHeight;
     private boolean mDisableDelete;
     private int mMaxLines;
-    private int mActionBarHeight;
 
     /**
      * Enumerator for avatar position. See attr.xml for more details.
@@ -173,6 +181,7 @@
     private TextWatcher mTextWatcher;
     private DropdownChipLayouter mDropdownChipLayouter;
 
+    private View mDropdownAnchor = this;
     private ListPopupWindow mAlternatesPopup;
     private ListPopupWindow mAddressPopup;
     private View mAlternatePopupAnchor;
@@ -183,14 +192,16 @@
     private ReplacementDrawableSpan mMoreChip;
     private TextView mMoreItem;
 
+    private int mCurrentSuggestionCount;
+
     // VisibleForTesting
     final ArrayList<String> mPendingChips = new ArrayList<String>();
 
-
     private int mPendingChipsCount = 0;
     private int mCheckedItem;
     private boolean mNoChips = false;
     private boolean mShouldShrink = true;
+    private boolean mRequiresShrinkWhenNotGone = false;
 
     // VisibleForTesting
     ArrayList<DrawableRecipientChip> mTemporaryRecipients;
@@ -256,13 +267,10 @@
         super(context, attrs);
         setChipDimensions(context, attrs);
         mTextHeight = calculateTextHeight();
-        if (sSelectedTextColor == -1) {
-            sSelectedTextColor = context.getResources().getColor(android.R.color.white);
-        }
         mAlternatesPopup = new ListPopupWindow(context);
-        mAlternatesPopup.setBackgroundDrawable(null);
+        setupPopupWindow(mAlternatesPopup);
         mAddressPopup = new ListPopupWindow(context);
-        mAddressPopup.setBackgroundDrawable(null);
+        setupPopupWindow(mAddressPopup);
         mCopyDialog = new Dialog(context);
         mAlternatesListener = new OnItemClickListener() {
             @Override
@@ -298,19 +306,27 @@
         setDropdownChipLayouter(new DropdownChipLayouter(LayoutInflater.from(context), context));
     }
 
+    private void setupPopupWindow(ListPopupWindow popup) {
+        popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                clearSelectedChip();
+            }
+        });
+    }
+
     private int calculateTextHeight() {
-        final Rect textBounds = new Rect();
         final TextPaint paint = getPaint();
 
-        textBounds.setEmpty();
+        mRect.setEmpty();
         // First measure the bounds of a sample text.
         final String textHeightSample = "a";
-        paint.getTextBounds(textHeightSample, 0, textHeightSample.length(), textBounds);
+        paint.getTextBounds(textHeightSample, 0, textHeightSample.length(), mRect);
 
-        textBounds.left = 0;
-        textBounds.right = 0;
+        mRect.left = 0;
+        mRect.right = 0;
 
-        return textBounds.height();
+        return mRect.height();
     }
 
     public void setDropdownChipLayouter(DropdownChipLayouter dropdownChipLayouter) {
@@ -332,6 +348,19 @@
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
         mAttachedToWindow = true;
+
+        final int anchorId = getDropDownAnchor();
+        if (anchorId != View.NO_ID) {
+            mDropdownAnchor = getRootView().findViewById(anchorId);
+        }
+    }
+
+    @Override
+    public void setDropDownAnchor(int anchorId) {
+        super.setDropDownAnchor(anchorId);
+        if (anchorId != View.NO_ID) {
+          mDropdownAnchor = getRootView().findViewById(anchorId);
+        }
     }
 
     @Override
@@ -351,7 +380,7 @@
     }
 
     @Override
-    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
+    public InputConnection onCreateInputConnection(@NonNull EditorInfo outAttrs) {
         InputConnection connection = super.onCreateInputConnection(outAttrs);
         int imeActions = outAttrs.imeOptions&EditorInfo.IME_MASK_ACTION;
         if ((imeActions&EditorInfo.IME_ACTION_DONE) != 0) {
@@ -365,7 +394,11 @@
         }
 
         outAttrs.actionId = EditorInfo.IME_ACTION_DONE;
-        outAttrs.actionLabel = getContext().getString(R.string.action_label);
+
+        // Custom action labels are discouraged in L; a checkmark icon is shown in place of the
+        // custom text in this case.
+        outAttrs.actionLabel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? null :
+            getContext().getString(R.string.action_label);
         return connection;
     }
 
@@ -384,7 +417,7 @@
     public List<RecipientEntry> getSelectedRecipients() {
         DrawableRecipientChip[] chips =
                 getText().getSpans(0, getText().length(), DrawableRecipientChip.class);
-        List<RecipientEntry> results = new ArrayList();
+        List<RecipientEntry> results = new ArrayList<RecipientEntry>();
         if (chips == null) {
             return results;
         }
@@ -400,8 +433,9 @@
     public void onSelectionChanged(int start, int end) {
         // When selection changes, see if it is inside the chips area.
         // If so, move the cursor back after the chips again.
+        // Only exception is when we change the selection due to a selected chip.
         DrawableRecipientChip last = getLastChip();
-        if (last != null && start < getSpannable().getSpanEnd(last)) {
+        if (mSelectedChip == null && last != null && start < getSpannable().getSpanEnd(last)) {
             // Grab the last chip and set the cursor to after it.
             setSelection(Math.min(getSpannable().getSpanEnd(last) + 1, getText().length()));
         }
@@ -470,15 +504,8 @@
         }
     }
 
-    private int getExcessTopPadding() {
-        if (sExcessTopPadding == -1) {
-            sExcessTopPadding = (int) (mChipHeight + mLineSpacingExtra);
-        }
-        return sExcessTopPadding;
-    }
-
     @Override
-    public <T extends ListAdapter & Filterable> void setAdapter(T adapter) {
+    public <T extends ListAdapter & Filterable> void setAdapter(@NonNull T adapter) {
         super.setAdapter(adapter);
         BaseRecipientAdapter baseAdapter = (BaseRecipientAdapter) adapter;
         baseAdapter.registerUpdateObserver(new BaseRecipientAdapter.EntriesUpdatedObserver() {
@@ -488,22 +515,56 @@
                 // that the user can see as many results as possible.
                 if (entries != null && entries.size() > 0) {
                     scrollBottomIntoView();
+                    // Here the current suggestion count is still the old one since we update
+                    // the count at the bottom of this function.
+                    if (mCurrentSuggestionCount == 0) {
+                        // Announce the new number of possible choices for accessibility.
+                        announceForAccessibilityCompat(getContext().getString(
+                                R.string.accessbility_suggestion_dropdown_opened));
+                    }
                 }
+
+                // Set the dropdown height to be the remaining height from the anchor to the bottom.
+                mDropdownAnchor.getLocationInWindow(mCoords);
+                getWindowVisibleDisplayFrame(mRect);
+                setDropDownHeight(mRect.bottom - mCoords[1] - mDropdownAnchor.getHeight() -
+                    getDropDownVerticalOffset());
+
+                mCurrentSuggestionCount = entries == null ? 0 : entries.size();
             }
         });
         baseAdapter.setDropdownChipLayouter(mDropdownChipLayouter);
     }
 
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
+    private void announceForAccessibilityCompat(String text) {
+        final AccessibilityManager accessibilityManager =
+                (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
+        final boolean isAccessibilityOn = accessibilityManager.isEnabled();
+
+        if (isAccessibilityOn && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+            final ViewParent parent = getParent();
+            if (parent != null) {
+                AccessibilityEvent event = AccessibilityEvent.obtain(
+                        AccessibilityEvent.TYPE_ANNOUNCEMENT);
+                onInitializeAccessibilityEvent(event);
+                event.getText().add(text);
+                event.setContentDescription(null);
+                parent.requestSendAccessibilityEvent(this, event);
+            }
+        }
+    }
+
     protected void scrollBottomIntoView() {
         if (mScrollView != null && mShouldShrink) {
-            int[] location = new int[2];
-            getLocationOnScreen(location);
-            int height = getHeight();
-            int currentPos = location[1] + height;
+            getLocationInWindow(mCoords);
             // Desired position shows at least 1 line of chips below the action
             // bar. We add excess padding to make sure this is always below other
             // content.
-            int desiredPos = (int) mChipHeight + mActionBarHeight + getExcessTopPadding();
+            final int height = getHeight();
+            final int currentPos = mCoords[1] + height;
+            mScrollView.getLocationInWindow(mCoords);
+            final int desiredPos = mCoords[1] + height / getLineCount();
             if (currentPos > desiredPos) {
                 mScrollView.scrollBy(0, currentPos - desiredPos);
             }
@@ -529,13 +590,20 @@
             clearSelectedChip();
         } else {
             if (getWidth() <= 0) {
-                // We don't have the width yet which means the view hasn't been drawn yet
-                // and there is no reason to attempt to commit chips yet.
-                // This focus lost must be the result of an orientation change
-                // or an initial rendering.
-                // Re-post the shrink for later.
                 mHandler.removeCallbacks(mDelayedShrink);
-                mHandler.post(mDelayedShrink);
+
+                if (getVisibility() == GONE) {
+                    // We aren't going to have a width any time soon, so defer
+                    // this until we're not GONE.
+                    mRequiresShrinkWhenNotGone = true;
+                } else {
+                    // We don't have the width yet which means the view hasn't been drawn yet
+                    // and there is no reason to attempt to commit chips yet.
+                    // This focus lost must be the result of an orientation change
+                    // or an initial rendering.
+                    // Re-post the shrink for later.
+                    mHandler.post(mDelayedShrink);
+                }
                 return;
             }
             // Reset any pending chips as they would have been handled
@@ -601,26 +669,8 @@
      * @param contact The recipient entry to pull data from.
      * @param paint The paint to use to draw the bitmap.
      */
-    private Bitmap createSelectedChip(RecipientEntry contact, TextPaint paint) {
-        paint.setColor(sSelectedTextColor);
-        final ChipBitmapContainer bitmapContainer = createChipBitmap(contact, paint,
-                mChipBackgroundPressed, getResources().getColor(R.color.chip_background_selected));
-
-        if (bitmapContainer.loadIcon) {
-            loadAvatarIcon(contact, bitmapContainer);
-        }
-
-        return bitmapContainer.bitmap;
-    }
-
-    /**
-     * Creates a bitmap of the given contact on a selected chip.
-     *
-     * @param contact The recipient entry to pull data from.
-     * @param paint The paint to use to draw the bitmap.
-     */
-    private Bitmap createUnselectedChip(RecipientEntry contact, TextPaint paint) {
-        paint.setColor(getContext().getResources().getColor(android.R.color.black));
+    private Bitmap createChipBitmap(RecipientEntry contact, TextPaint paint) {
+        paint.setColor(getDefaultChipTextColor(contact));
         ChipBitmapContainer bitmapContainer = createChipBitmap(contact, paint,
                 getChipBackground(contact), getDefaultChipBackgroundColor(contact));
 
@@ -713,8 +763,8 @@
      * the layout direction is LTR or RTL.
      */
     private boolean shouldPositionAvatarOnRight() {
-        final boolean isRtl = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 ?
-                getLayoutDirection() == LAYOUT_DIRECTION_RTL : false;
+        final boolean isRtl = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 &&
+                getLayoutDirection() == LAYOUT_DIRECTION_RTL;
         final boolean assignedPosition = mAvatarPosition == AVATAR_POSITION_END;
         // If in Rtl mode, the position should be flipped.
         return isRtl ? !assignedPosition : assignedPosition;
@@ -796,9 +846,14 @@
         return contact.isValid() ? mChipBackground : mInvalidChipBackground;
     }
 
+    private int getDefaultChipTextColor(RecipientEntry contact) {
+        return contact.isValid() ? mUnselectedChipTextColor :
+                getResources().getColor(android.R.color.black);
+    }
+
     private int getDefaultChipBackgroundColor(RecipientEntry contact) {
-        return getResources().getColor(contact.isValid() ? R.color.chip_background :
-                R.color.chip_background_invalid);
+        return contact.isValid() ? mUnselectedChipBackgroundColor :
+                getResources().getColor(R.color.chip_background_invalid);
     }
 
     /**
@@ -837,23 +892,18 @@
         mWorkPaint.setStyle(Style.STROKE);
         mWorkPaint.setStrokeWidth(borderWidth);
         mWorkPaint.setAntiAlias(true);
-        canvas.drawCircle(dst.centerX(), dst.centerY(), dst.width() / 2f - borderWidth / 2, mWorkPaint);
+        canvas.drawCircle(dst.centerX(), dst.centerY(), dst.width() / 2f - borderWidth / 2,
+                mWorkPaint);
 
         mWorkPaint.reset();
     }
 
-    private DrawableRecipientChip constructChipSpan(RecipientEntry contact, boolean pressed) {
+    private DrawableRecipientChip constructChipSpan(RecipientEntry contact) {
         TextPaint paint = getPaint();
         float defaultSize = paint.getTextSize();
         int defaultColor = paint.getColor();
 
-        Bitmap tmpBitmap;
-        if (pressed) {
-            tmpBitmap = createSelectedChip(contact, paint);
-
-        } else {
-            tmpBitmap = createUnselectedChip(contact, paint);
-        }
+        Bitmap tmpBitmap = createChipBitmap(contact, paint);
 
         // Pass the full text, un-ellipsized, to the chip.
         Drawable result = new BitmapDrawable(getResources(), tmpBitmap);
@@ -905,8 +955,6 @@
         Resources r = getContext().getResources();
 
         mChipBackground = a.getDrawable(R.styleable.RecipientEditTextView_chipBackground);
-        mChipBackgroundPressed = a
-                .getDrawable(R.styleable.RecipientEditTextView_chipBackgroundPressed);
         mInvalidChipBackground = a
                 .getDrawable(R.styleable.RecipientEditTextView_invalidChipBackground);
         mChipDelete = a.getDrawable(R.styleable.RecipientEditTextView_chipDelete);
@@ -948,12 +996,22 @@
 
         mMaxLines = r.getInteger(R.integer.chips_max_lines);
         mLineSpacingExtra = r.getDimensionPixelOffset(R.dimen.line_spacing_extra);
-        TypedValue tv = new TypedValue();
-        if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
-            mActionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources()
-                    .getDisplayMetrics());
-        }
 
+        mUnselectedChipTextColor = a.getColor(
+                R.styleable.RecipientEditTextView_unselectedChipTextColor,
+                r.getColor(android.R.color.black));
+
+        mSelectedChipTextColor = a.getColor(
+                R.styleable.RecipientEditTextView_selectedChipTextColor,
+                r.getColor(android.R.color.white));
+
+        mUnselectedChipBackgroundColor = a.getColor(
+                R.styleable.RecipientEditTextView_unselectedChipBackgroundColor,
+                r.getColor(R.color.chip_background));
+
+        mSelectedChipBackgroundColor = a.getColor(
+                R.styleable.RecipientEditTextView_selectedChipBackgroundColor,
+                r.getColor(R.color.chip_background_selected));
         a.recycle();
     }
 
@@ -1161,8 +1219,7 @@
             DrawableRecipientChip chip = null;
             try {
                 if (!mNoChips) {
-                    chip = visible ?
-                            constructChipSpan(entry, false) : new InvisibleRecipientChip(entry);
+                    chip = visible ? constructChipSpan(entry) : new InvisibleRecipientChip(entry);
                 }
             } catch (NullPointerException e) {
                 Log.e(TAG, e.getMessage(), e);
@@ -1200,12 +1257,11 @@
             return RecipientEntry.constructFakePhoneEntry(token, true);
         }
         Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(token);
-        String display = null;
         boolean isValid = isValid(token);
         if (isValid && tokens != null && tokens.length > 0) {
             // If we can get a name from tokenizing, then generate an entry from
             // this.
-            display = tokens[0].getName();
+            String display = tokens[0].getName();
             if (!TextUtils.isEmpty(display)) {
                 return RecipientEntry.constructGeneratedEntry(display, tokens[0].getAddress(),
                         isValid);
@@ -1286,7 +1342,7 @@
      * Dismiss any selected chips when the back key is pressed.
      */
     @Override
-    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
+    public boolean onKeyPreIme(int keyCode, @NonNull KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && mSelectedChip != null) {
             clearSelectedChip();
             return true;
@@ -1303,7 +1359,7 @@
      * a commit key, then create a chip from the text they have entered.
      */
     @Override
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
+    public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
         switch (keyCode) {
             case KeyEvent.KEYCODE_TAB:
                 if (event.hasNoModifiers()) {
@@ -1399,11 +1455,11 @@
             }
             String text = editable.toString().substring(start, tokenEnd).trim();
             clearComposingText();
-            if (text != null && text.length() > 0 && !text.equals(" ")) {
+            if (text.length() > 0 && !text.equals(" ")) {
                 RecipientEntry entry = createTokenizedEntry(text);
                 if (entry != null) {
                     QwertyKeyListener.markAsReplaced(editable, start, end, "");
-                    CharSequence chipText = createChip(entry, false);
+                    CharSequence chipText = createChip(entry);
                     if (chipText != null && start > -1 && end > -1) {
                         editable.replace(start, end, chipText);
                     }
@@ -1465,10 +1521,7 @@
         }
         DrawableRecipientChip[] chips =
                 getSpannable().getSpans(start, end, DrawableRecipientChip.class);
-        if ((chips == null || chips.length == 0)) {
-            return false;
-        }
-        return true;
+        return chips != null && chips.length > 0;
     }
 
     private void handleEdit(int start, int end) {
@@ -1485,7 +1538,7 @@
         if (!TextUtils.isEmpty(text)) {
             RecipientEntry entry = RecipientEntry.constructFakeEntry(text, isValid(text));
             QwertyKeyListener.markAsReplaced(editable, start, end, "");
-            CharSequence chipText = createChip(entry, false);
+            CharSequence chipText = createChip(entry);
             int selEnd = getSelectionEnd();
             if (chipText != null && start > -1 && selEnd > -1) {
                 editable.replace(start, selEnd, chipText);
@@ -1499,7 +1552,7 @@
      * to the selected chip.
      */
     @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
+    public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) {
         if (mSelectedChip != null && keyCode == KeyEvent.KEYCODE_DEL) {
             if (mAlternatesPopup != null && mAlternatesPopup.isShowing()) {
                 mAlternatesPopup.dismiss();
@@ -1548,7 +1601,7 @@
      * and makes sure that the range is not already a Chip.
      */
     @Override
-    protected void performFiltering(CharSequence text, int keyCode) {
+    protected void performFiltering(@NonNull CharSequence text, int keyCode) {
         boolean isCompletedToken = isCompletedToken(text);
         if (enoughToFilter() && !isCompletedToken) {
             int end = getSelectionEnd();
@@ -1584,12 +1637,17 @@
         return false;
     }
 
-    private void clearSelectedChip() {
+    /**
+     * Clears the selected chip if there is one (and dismissing any popups related to the selected
+     * chip in the process).
+     */
+    public void clearSelectedChip() {
         if (mSelectedChip != null) {
             unselectChip(mSelectedChip);
             mSelectedChip = null;
         }
         setCursorVisible(true);
+        setSelection(getText().length());
     }
 
     /**
@@ -1601,7 +1659,7 @@
      * If it isn't, then select that chip.
      */
     @Override
-    public boolean onTouchEvent(MotionEvent event) {
+    public boolean onTouchEvent(@NonNull MotionEvent event) {
         if (!isFocused()) {
             // Ignore any chip taps until this view is focused.
             return super.onTouchEvent(event);
@@ -1618,17 +1676,14 @@
             int offset = putOffsetInRange(x, y);
             DrawableRecipientChip currentChip = findChip(offset);
             if (currentChip != null) {
-                if (action == MotionEvent.ACTION_UP) {
-                    if (mSelectedChip != null && mSelectedChip != currentChip) {
-                        clearSelectedChip();
-                        mSelectedChip = selectChip(currentChip);
-                    } else if (mSelectedChip == null) {
-                        setSelection(getText().length());
-                        commitDefault();
-                        mSelectedChip = selectChip(currentChip);
-                    } else {
-                        onClick(mSelectedChip);
-                    }
+                if (mSelectedChip != null && mSelectedChip != currentChip) {
+                    clearSelectedChip();
+                    selectChip(currentChip);
+                } else if (mSelectedChip == null) {
+                    commitDefault();
+                    selectChip(currentChip);
+                } else {
+                    onClick(mSelectedChip);
                 }
                 chipWasSelected = true;
                 handled = true;
@@ -1642,12 +1697,6 @@
         return handled;
     }
 
-    private void scrollLineIntoView(int line) {
-        if (mScrollView != null) {
-            mScrollView.smoothScrollBy(0, calculateOffsetFromBottom(line));
-        }
-    }
-
     private void showAlternates(final DrawableRecipientChip currentChip,
             final ListPopupWindow alternatesPopup) {
         new AsyncTask<Void, Void, ListAdapter>() {
@@ -1769,11 +1818,11 @@
     }
 
     private DrawableRecipientChip findChip(int offset) {
-        DrawableRecipientChip[] chips =
-                getSpannable().getSpans(0, getText().length(), DrawableRecipientChip.class);
+        final Spannable span = getSpannable();
+        final DrawableRecipientChip[] chips =
+                span.getSpans(0, span.length(), DrawableRecipientChip.class);
         // Find the chip that contains this offset.
-        for (int i = 0; i < chips.length; i++) {
-            DrawableRecipientChip chip = chips[i];
+        for (DrawableRecipientChip chip : chips) {
             int start = getChipStart(chip);
             int end = getChipEnd(chip);
             if (offset >= start && offset <= end) {
@@ -1829,7 +1878,7 @@
         }
     }
 
-    private CharSequence createChip(RecipientEntry entry, boolean pressed) {
+    private CharSequence createChip(RecipientEntry entry) {
         final String displayText = createAddressText(entry);
         if (TextUtils.isEmpty(displayText)) {
             return null;
@@ -1839,7 +1888,7 @@
         final SpannableString  chipText = new SpannableString(displayText);
         if (!mNoChips) {
             try {
-                DrawableRecipientChip chip = constructChipSpan(entry, pressed);
+                DrawableRecipientChip chip = constructChipSpan(entry);
                 chipText.setSpan(chip, 0, textLength,
                         Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                 chip.setOriginalText(chipText.toString());
@@ -1887,7 +1936,7 @@
 
         Editable editable = getText();
         QwertyKeyListener.markAsReplaced(editable, start, end, "");
-        CharSequence chip = createChip(entry, false);
+        CharSequence chip = createChip(entry);
         if (chip != null && start >= 0 && end >= 0) {
             editable.replace(start, end, chip);
         }
@@ -2006,7 +2055,6 @@
             start = end; // move to the next token and get its end.
         }
         // Now, count total addresses.
-        start = 0;
         int tokenCount = countTokens(text);
         MoreImageSpan moreSpan = createMoreSpan(tokenCount - CHIP_LIMIT);
         SpannableString chipText = new SpannableString(text.subSequence(end, text.length()));
@@ -2142,14 +2190,11 @@
      * selecting the chip will take the contents of the chip and place it at
      * the end of the RecipientEditTextView for inline editing. If the
      * RecipientChip is a complete contact, then selecting the chip
-     * will change the background color of the chip, show the delete icon,
-     * and a popup window with the address in use highlighted and any other
+     * will show a popup window with the address in use highlighted and any other
      * alternate addresses for the contact.
      * @param currentChip Chip to select.
-     * @return A RecipientChip in the selected state or null if the chip
-     * just contained an email address.
      */
-    private DrawableRecipientChip selectChip(DrawableRecipientChip currentChip) {
+    private void selectChip(DrawableRecipientChip currentChip) {
         if (shouldShowEditableText(currentChip)) {
             CharSequence text = currentChip.getValue();
             Editable editable = getText();
@@ -2157,48 +2202,32 @@
             int spanStart = spannable.getSpanStart(currentChip);
             int spanEnd = spannable.getSpanEnd(currentChip);
             spannable.removeSpan(currentChip);
+            // Don't need leading space if it's the only chip
+            if (spanEnd - spanStart == editable.length() - 1) {
+                spanEnd++;
+            }
             editable.delete(spanStart, spanEnd);
             setCursorVisible(true);
             setSelection(editable.length());
             editable.append(text);
-            return constructChipSpan(
-                    RecipientEntry.constructFakeEntry((String) text, isValid(text.toString())),
-                    true);
+            mSelectedChip = constructChipSpan(
+                    RecipientEntry.constructFakeEntry((String) text, isValid(text.toString())));
         } else {
-            int start = getChipStart(currentChip);
-            int end = getChipEnd(currentChip);
-            getSpannable().removeSpan(currentChip);
-            DrawableRecipientChip newChip;
             final boolean showAddress =
                     currentChip.getContactId() == RecipientEntry.GENERATED_CONTACT ||
                     getAdapter().forceShowAddress();
-            try {
-                if (showAddress && mNoChips) {
-                    return null;
-                }
-                newChip = constructChipSpan(currentChip.getEntry(), true);
-            } catch (NullPointerException e) {
-                Log.e(TAG, e.getMessage(), e);
-                return null;
+            if (showAddress && mNoChips) {
+                return;
             }
-            Editable editable = getText();
-            QwertyKeyListener.markAsReplaced(editable, start, end, "");
-            if (start == -1 || end == -1) {
-                Log.d(TAG, "The chip being selected no longer exists but should.");
-            } else {
-                editable.setSpan(newChip, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-            }
-            newChip.setSelected(true);
-            if (shouldShowEditableText(newChip)) {
-                scrollLineIntoView(getLayout().getLineForOffset(getChipStart(newChip)));
-            }
-            if (showAddress) {
-                showAddress(newChip, mAddressPopup);
-            } else {
-                showAlternates(newChip, mAlternatesPopup);
-            }
+            mSelectedChip = currentChip;
+            setSelection(getText().getSpanEnd(mSelectedChip));
             setCursorVisible(false);
-            return newChip;
+
+            if (showAddress) {
+                showAddress(currentChip, mAddressPopup);
+            } else {
+                showAlternates(currentChip, mAlternatesPopup);
+            }
         }
     }
 
@@ -2252,7 +2281,7 @@
             editable.removeSpan(chip);
             try {
                 if (!mNoChips) {
-                    editable.setSpan(constructChipSpan(chip.getEntry(), false),
+                    editable.setSpan(constructChipSpan(chip.getEntry()),
                             start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                 }
             } catch (NullPointerException e) {
@@ -2271,8 +2300,17 @@
         if (mSelectedChip != null) {
             removeChip(mSelectedChip);
         }
-        mAddressPopup.dismiss();
-        mAlternatesPopup.dismiss();
+        dismissPopups();
+    }
+
+    private void dismissPopups() {
+        if (mAlternatesPopup != null && mAlternatesPopup.isShowing()) {
+            mAlternatesPopup.dismiss();
+        }
+        if (mAddressPopup != null && mAddressPopup.isShowing()) {
+            mAddressPopup.dismiss();
+        }
+        setSelection(getText().length());
     }
 
     /**
@@ -2317,7 +2355,7 @@
         int end = getChipEnd(chip);
         getSpannable().removeSpan(chip);
         Editable editable = getText();
-        CharSequence chipText = createChip(entry, false);
+        CharSequence chipText = createChip(entry);
         if (chipText != null) {
             if (start == -1 || end == -1) {
                 Log.e(TAG, "The chip to replace does not exist but should.");
@@ -2447,16 +2485,16 @@
                         DrawableRecipientChip.class);
                 if (repl.length > 0) {
                     // There is a chip there! Just remove it.
+                    DrawableRecipientChip toDelete = repl[0];
                     Editable editable = getText();
                     // Add the separator token.
-                    int tokenStart = mTokenizer.findTokenStart(editable, selStart);
-                    int tokenEnd = mTokenizer.findTokenEnd(editable, tokenStart);
-                    tokenEnd = tokenEnd + 1;
-                    if (tokenEnd > editable.length()) {
-                        tokenEnd = editable.length();
+                    int deleteStart = editable.getSpanStart(toDelete);
+                    int deleteEnd = editable.getSpanEnd(toDelete) + 1;
+                    if (deleteEnd > editable.length()) {
+                        deleteEnd = editable.length();
                     }
-                    editable.delete(tokenStart, tokenEnd);
-                    getSpannable().removeSpan(repl[0]);
+                    editable.removeSpan(toDelete);
+                    editable.delete(deleteStart, deleteEnd);
                 }
             } else if (count > before) {
                 if (mSelectedChip != null
@@ -2636,7 +2674,7 @@
                 if (mNoChips) {
                     return null;
                 }
-                return constructChipSpan(entry, false);
+                return constructChipSpan(entry);
             } catch (NullPointerException e) {
                 Log.e(TAG, e.getMessage(), e);
                 return null;
@@ -2650,9 +2688,7 @@
             final List<DrawableRecipientChip> originalRecipients =
                     new ArrayList<DrawableRecipientChip>();
             final DrawableRecipientChip[] existingChips = getSortedRecipients();
-            for (int i = 0; i < existingChips.length; i++) {
-                originalRecipients.add(existingChips[i]);
-            }
+            Collections.addAll(originalRecipients, existingChips);
             if (mRemovedSpans != null) {
                 originalRecipients.addAll(mRemovedSpans);
             }
@@ -2683,16 +2719,12 @@
             final ArrayList<DrawableRecipientChip> recipients =
                     new ArrayList<DrawableRecipientChip>();
             DrawableRecipientChip[] existingChips = getSortedRecipients();
-            for (int i = 0; i < existingChips.length; i++) {
-                recipients.add(existingChips[i]);
-            }
+            Collections.addAll(recipients, existingChips);
             if (mRemovedSpans != null) {
                 recipients.addAll(mRemovedSpans);
             }
             ArrayList<String> addresses = new ArrayList<String>();
-            DrawableRecipientChip chip;
-            for (int i = 0; i < recipients.size(); i++) {
-                chip = recipients.get(i);
+            for (DrawableRecipientChip chip : recipients) {
                 if (chip != null) {
                     addresses.add(createAddressText(chip.getEntry()));
                 }
@@ -2817,9 +2849,7 @@
             // chip.
             final ArrayList<DrawableRecipientChip> originalRecipients = params[0];
             ArrayList<String> addresses = new ArrayList<String>();
-            DrawableRecipientChip chip;
-            for (int i = 0; i < originalRecipients.size(); i++) {
-                chip = originalRecipients.get(i);
+            for (DrawableRecipientChip chip : originalRecipients) {
                 if (chip != null) {
                     addresses.add(createAddressText(chip.getEntry()));
                 }
@@ -2907,8 +2937,7 @@
     private int supportGetOffsetForPosition(float x, float y) {
         if (getLayout() == null) return -1;
         final int line = supportGetLineAtCoordinate(y);
-        final int offset = supportGetOffsetAtCoordinate(line, x);
-        return offset;
+        return supportGetOffsetAtCoordinate(line, x);
     }
 
     private float supportConvertToLocalHorizontalCoordinate(float x) {
@@ -2961,7 +2990,7 @@
      * Handles drag event.
      */
     @Override
-    public boolean onDragEvent(DragEvent event) {
+    public boolean onDragEvent(@NonNull DragEvent event) {
         switch (event.getAction()) {
             case DragEvent.ACTION_DRAG_STARTED:
                 // Only handle plain text drag and drop.
@@ -2987,14 +3016,15 @@
         }
 
         @Override
-        public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
+        public void onProvideShadowMetrics(@NonNull Point shadowSize,
+                @NonNull Point shadowTouchPoint) {
             Rect rect = mChip.getBounds();
             shadowSize.set(rect.width(), rect.height());
             shadowTouchPoint.set(rect.centerX(), rect.centerY());
         }
 
         @Override
-        public void onDrawShadow(Canvas canvas) {
+        public void onDrawShadow(@NonNull Canvas canvas) {
             mChip.draw(canvas);
         }
     }
@@ -3082,7 +3112,7 @@
             chipInsertionPoint = editable.getSpanEnd(last) + 1;
         }
 
-        final CharSequence chip = createChip(entry, false);
+        final CharSequence chip = createChip(entry);
         if (chip != null) {
             editable.insert(chipInsertionPoint, chip);
         }
@@ -3108,6 +3138,16 @@
         mAlternatePopupAnchor = v;
     }
 
+    @Override
+    public void setVisibility(int visibility) {
+        super.setVisibility(visibility);
+
+        if (visibility != GONE && mRequiresShrinkWhenNotGone) {
+            mRequiresShrinkWhenNotGone = false;
+            mHandler.post(mDelayedShrink);
+        }
+    }
+
     private static class ChipBitmapContainer {
         Bitmap bitmap;
         // information used for positioning the loaded icon
diff --git a/src/com/android/ex/chips/recipientchip/ReplacementDrawableSpan.java b/src/com/android/ex/chips/recipientchip/ReplacementDrawableSpan.java
index f99b25b..5ef445d 100644
--- a/src/com/android/ex/chips/recipientchip/ReplacementDrawableSpan.java
+++ b/src/com/android/ex/chips/recipientchip/ReplacementDrawableSpan.java
@@ -11,8 +11,9 @@
  * without changing the default text size or layout.
  */
 public class ReplacementDrawableSpan extends ReplacementSpan {
+    protected static final Paint sWorkPaint = new Paint();
+
     protected Drawable mDrawable;
-    private final Paint mWorkPaint = new Paint();
     private float mExtraMargin;
 
     public ReplacementDrawableSpan(Drawable drawable) {
@@ -25,9 +26,9 @@
     }
 
     private void setupFontMetrics(Paint.FontMetricsInt fm, Paint paint) {
-        mWorkPaint.set(paint);
+        sWorkPaint.set(paint);
         if (fm != null) {
-            mWorkPaint.getFontMetricsInt(fm);
+            sWorkPaint.getFontMetricsInt(fm);
 
             final Rect bounds = getBounds();
             final int textHeight = fm.descent - fm.ascent;
