diff --git a/Android.mk b/Android.mk
index a03d671..c42434f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -12,7 +12,7 @@
 endif
 
 src_dirs := src src-bind $(phone_common_dir)/src
-res_dirs := res res-aosp res-icons $(phone_common_dir)/res
+res_dirs := res res-aosp res-bind res-icons $(phone_common_dir)/res
 asset_dirs := assets
 
 LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 461fafe..78060a8 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.contacts"
-    android:versionCode="10606"
-    android:versionName="1.6.6">
+    android:versionCode="10605"
+    android:versionName="1.6.5">
 
     <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
 
diff --git a/res-bind/layout/navigation_view.xml b/res-bind/layout/navigation_view.xml
new file mode 100644
index 0000000..d553768
--- /dev/null
+++ b/res-bind/layout/navigation_view.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<android.support.design.widget.NavigationView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/nav_view"
+    android:theme="@style/NavigationDrawerMenuItemTextAppearance"
+    android:layout_width="wrap_content"
+    android:layout_height="match_parent"
+    android:layout_gravity="start"
+    android:fitsSystemWindows="true"
+    android:background="@android:color/white"
+    app:itemBackground="@drawable/drawer_item_background"
+    app:headerLayout="@layout/nav_header_main"
+    app:menu="@menu/activity_main_drawer"/>
diff --git a/res/layout/contacts_drawer_activity.xml b/res/layout/contacts_drawer_activity.xml
index e560494..904a46b 100644
--- a/res/layout/contacts_drawer_activity.xml
+++ b/res/layout/contacts_drawer_activity.xml
@@ -17,7 +17,6 @@
 
 <android.support.v4.widget.DrawerLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
@@ -26,40 +25,9 @@
     tools:openDrawer="start">
 
     <!-- To prevent hamburger menu from getting the initial focus. -->
-    <View
-        android:focusable="true"
-        android:focusableInTouchMode="true"
-        android:layout_width="1px"
-        android:layout_height="1px" >
-        <requestFocus/>
-    </View>
+    <include layout="@layout/dummy_view_for_initial_focus"/>
 
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/fragment_container"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
+    <include layout="@layout/contacts_main_content"/>
 
-        <include
-            layout="@layout/people_activity_toolbar"
-            android:id="@+id/toolbar_parent" />
-
-        <FrameLayout
-            android:id="@+id/content_frame"
-            android:layout_width="match_parent"
-            android:layout_height="fill_parent"
-            android:background="?android:attr/windowBackground" />
-    </LinearLayout>
-
-    <android.support.design.widget.NavigationView
-        android:id="@+id/nav_view"
-        android:theme="@style/NavigationDrawerMenuItemTextAppearance"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_gravity="start"
-        android:fitsSystemWindows="true"
-        app:itemBackground="@drawable/drawer_item_background"
-        app:headerLayout="@layout/nav_header_main"
-        app:menu="@menu/activity_main_drawer"/>
-
+    <include layout="@layout/navigation_view"/>
 </android.support.v4.widget.DrawerLayout>
\ No newline at end of file
diff --git a/res/layout/contacts_main_content.xml b/res/layout/contacts_main_content.xml
new file mode 100644
index 0000000..748bdbb
--- /dev/null
+++ b/res/layout/contacts_main_content.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2016 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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fragment_container"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        layout="@layout/people_activity_toolbar"
+        android:id="@+id/toolbar_parent" />
+
+    <FrameLayout
+        android:id="@+id/content_frame"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="?android:attr/windowBackground" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dummy_view_for_initial_focus.xml b/res/layout/dummy_view_for_initial_focus.xml
new file mode 100644
index 0000000..3876e98
--- /dev/null
+++ b/res/layout/dummy_view_for_initial_focus.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+
+<View
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:layout_width="1px"
+    android:layout_height="1px" >
+    <requestFocus/>
+</View>
\ No newline at end of file
diff --git a/res/layout/multi_select_send_button.xml b/res/layout/multi_select_send_button.xml
new file mode 100644
index 0000000..50a4d45
--- /dev/null
+++ b/res/layout/multi_select_send_button.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<Button xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/buttonBarButtonStyle"
+    android:id="@+id/multi_select_send_button"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:text="@string/send_to_selection"
+    android:textColor="@color/action_bar_button_text_color"
+    android:textSize="14sp">
+</Button>
diff --git a/res/menu/group_member_picker.xml b/res/menu/group_member_picker.xml
index 9e623f6..2dd1990 100644
--- a/res/menu/group_member_picker.xml
+++ b/res/menu/group_member_picker.xml
@@ -19,7 +19,7 @@
 
     <item
         android:id="@+id/menu_select"
-        android:title="@string/menu_selectForGroup" />
+        android:title="@string/menu_selectForGroup"
         contacts:showAsAction="never" />
 
 </menu>
diff --git a/res/menu/items_multi_select.xml b/res/menu/items_multi_select.xml
new file mode 100644
index 0000000..5bb39d4
--- /dev/null
+++ b/res/menu/items_multi_select.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+    <item
+        app:actionLayout="@layout/multi_select_send_button"
+        app:showAsAction="always"
+        android:id="@+id/menu_send"
+        android:title="@string/send_to_selection" />
+</menu>
\ No newline at end of file
diff --git a/res/menu/view_group.xml b/res/menu/view_group.xml
index 24eb0b5..1bbdd86 100644
--- a/res/menu/view_group.xml
+++ b/res/menu/view_group.xml
@@ -29,6 +29,14 @@
         android:title="@string/menu_editGroup" />
 
     <item
+        android:id="@+id/menu_multi_send_email"
+        android:title="@string/menu_sendEmailOption" />
+
+    <item
+        android:id="@+id/menu_multi_send_message"
+        android:title="@string/menu_sendMessageOption" />
+
+    <item
         android:id="@+id/menu_rename_group"
         android:title="@string/menu_renameGroup"/>
 
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index a951785..b3451a6 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Van eerste"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Rekeninge"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Verstekrekening vir nuwe kontakte"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinkroniseer kontakmetadata [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinkroniseer kontakmetadata"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"My inligting"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Stel jou profiel op"</string>
     <string name="setting_about" msgid="7014388749752042863">"Meer oor Kontakte"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM-kontak ingevoer</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kon nie SIM-kontakte invoer nie"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Kon nie aanmeld nie"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Kies kontakte om in te voer"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Kanselleer invoer"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index ea4a467..76b4f88 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"የአያት ስም መጀመሪያ"</string>
     <string name="settings_accounts" msgid="350219740670774576">"መለያዎች"</string>
     <string name="default_editor_account" msgid="699591683362420991">"ለአዲስ እውቂያዎች ነባሪ መለያ"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"የእውቂያ ዲበ-ውሂብን አሥምር [የሙከራ ስሪት]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"የእውቂያ ዲበ-ውሂብን አሥምር"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"የእኔ መረጃ"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"መገለጫዎን ያዘጋጁ"</string>
     <string name="setting_about" msgid="7014388749752042863">"ስለ ዕውቂያዎች"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> የሲም እውቂያዎች መጥተዋል</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"የሲም እውቂያዎችን ማምጣት አልተሳካም"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"መግባት አልተሳካም"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ለማምጣት ዕውቂያዎችን ምረጥ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ማምጣት ይቅር"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index da74069..6f1b061 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -582,6 +582,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"اسم العائلة /الاسم الأول"</string>
     <string name="settings_accounts" msgid="350219740670774576">"الحسابات"</string>
     <string name="default_editor_account" msgid="699591683362420991">"الحساب الافتراضي لجهات الاتصال الجديدة"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"‏مزامنة البيانات الوصفية لجهات الاتصال [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"مزامنة البيانات الوصفية لجهات الاتصال"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"معلوماتي"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"إعداد الملف الشخصي"</string>
     <string name="setting_about" msgid="7014388749752042863">"حول جهات الاتصال"</string>
@@ -659,6 +661,7 @@
       <item quantity="one">‏تم استيراد جهة اتصال واحدة من شريحة SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏فشل استيراد جهات الاتصال من شريحة SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"أخفق تسجيل الدخول"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"حدد جهات اتصال لاستيرادها"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"إلغاء الاستيراد"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index fcca5a2..38d55cb 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Soyad ilk yazılsın"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Hesablar"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Yeni kontaktlar üçün defolt hesab"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinxronizasiya kontakt metadatası [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinxronizasiya kontakt metadatası"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Məlumatlarım"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Profilinizi quraşdırın"</string>
     <string name="setting_about" msgid="7014388749752042863">"Kontaktlar Haqqında"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM kontakt</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM kontaktları import etmək olmadı"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Hesaba daxil olmaq olmadı"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"İmport üçün kontaktlar seçin"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"İmportu ləğv edin"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 96eb027..c35d909 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Първо фамилното име"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Профили"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Стандартен профил за новите контакти"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Синхронизиране на метаданните за контактите [ЗА СОБСТВЕНА УПОТРЕБА]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Синхронизиране на метаданните за контактите"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Моята информация"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Настройте потребителския си профил"</string>
     <string name="setting_about" msgid="7014388749752042863">"Всичко за Контакти"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 контакт в SIM картата бе импортиран</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Импортирането на контактите в SIM картата не бе успешно"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Влизането в профила не бе възможно"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Избиране на контакти за импортиране"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Анулиране на импортирането"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 5a8d0b5..393e2a4 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"প্রথমে উপাধি"</string>
     <string name="settings_accounts" msgid="350219740670774576">"অ্যাকাউন্টগুলি"</string>
     <string name="default_editor_account" msgid="699591683362420991">"নতুন পরিচিতিগুলির জন্য ডিফল্ট অ্যাকাউন্ট"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"পরিচিতির মেটাডাটা সিঙ্ক করুন [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"পরিচিতির মেটাডাটা সিঙ্ক করুন"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"আমার তথ্য"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"আপনার প্রোফাইল সেট আপ করুন"</string>
     <string name="setting_about" msgid="7014388749752042863">"পরিচিতি সম্পর্কিত"</string>
@@ -607,6 +609,7 @@
       <item quantity="other">SIM কার্ডে থাকা <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি আমদানি করা হয়েছে</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM কার্ডে থাকা পরিচিতিগুলি আমদানি করা গেল না"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"সাইন ইন করা গেল না"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"আমদানি করতে পরিচিতিগুলি নির্বাচন করুন"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"আমদানি বাতিল করুন"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c5a0a0b..d72bbea 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primer els cognoms"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Compte predeterminat per als contactes nous"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronitza les metadades dels contactes [PROVA INTERNA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronitza les metadades dels contactes"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"La meva informació"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configura el teu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Informació sobre Contactes"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">S\'ha importat 1 contacte de la SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"No s\'han pogut importar els contactes de la SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"No s\'ha pogut iniciar la sessió"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Selecciona contactes per importar-los"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancel·la la importació"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index e5a637c..cfeaff8 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nejprve příjmení"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Účty"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Výchozí účet pro nové kontakty"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synchronizovat metadata kontaktů [INTERNÍ TESTOVÁNÍ]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synchronizovat metadata kontaktů"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Moje údaje"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Nastavit váš profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"O aplikaci Kontakty"</string>
@@ -633,6 +635,7 @@
       <item quantity="one">Byl importován 1 kontakt ze SIM karty</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontakty ze SIM karty se nepodařilo importovat"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Přihlášení se nezdařilo"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Vyberte kontakty na import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Zrušit import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index a69ab3c..06cb761 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Efternavn først"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Konti"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Standardkonto til nye kontaktpersoner"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synkroniser metadata for kontaktpersoner [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synkroniser metadata for kontaktpersoner"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mine oplysninger"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Opsæt din profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Om Kontaktpersoner"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktpersoner på SIM-kortet blev importeret</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontaktpersonerne på SIM-kortet kan ikke importeres"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Der kan ikke logges ind"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Vælg kontakter, der skal importeres"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Annuller import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b2f9432..ee85f64 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nachname zuerst"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Konten"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Standardkonto für neue Kontakte"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Kontaktmetadaten synchronisieren [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Kontaktmetadaten synchronisieren"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Meine Daten"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Profil einrichten"</string>
     <string name="setting_about" msgid="7014388749752042863">"Über \"Kontakte\""</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM-Kontakt importiert</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Fehler beim Importieren von SIM-Kontakten"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Fehler bei der Anmeldung"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Kontakte für Import auswählen"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Import abbrechen"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 54627d1..52ee7d9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Πρώτα το επώνυμο"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Λογαριασμοί"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Προεπιλεγμένος λογαριασμός για νέες επαφές"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Συγχρονισμός μεταδεδομένων επαφής [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Συγχρονισμός μεταδεδομένων επαφής"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Τα στοιχεία μου"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Ρυθμίστε το προφίλ σας"</string>
     <string name="setting_about" msgid="7014388749752042863">"Σχετικά με τις Επαφές"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Έγινε εισαγωγή 1 επαφής από τη SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Απέτυχε η εισαγωγή των επαφών από τη SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Αποτυχία σύνδεσης"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Επιλέξτε επαφές για εισαγωγή"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Ακύρωση εισαγωγής"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 6f41759..b42b92f 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sync contact metadata [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sync contact metadata"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
     <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Select contacts to import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancel import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6f41759..b42b92f 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sync contact metadata [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sync contact metadata"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
     <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Select contacts to import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancel import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 6f41759..b42b92f 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sync contact metadata [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sync contact metadata"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
     <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Select contacts to import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancel import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index a907ad8..bcc1871 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apellido primero"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Cuentas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Cuenta predeterminada para los contactos nuevos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadatos de contactos [PRUEBA INTERNA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadatos de contactos"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mi información"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configura tu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Acerca de Contactos"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Se importó 1 contacto de la SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"No se pudieron importar los contactos de la SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"No se pudo acceder"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Seleccionar contactos para importar"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importación"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index c8392fa..0653e6e 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apellido primero"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Cuentas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Cuenta predeterminada para nuevos contactos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadatos de contactos [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadatos de contactos"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mi información"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configura tu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Información sobre Contactos"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Se ha importado 1 contacto de la SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"No se han podido importar los contactos de la SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"No se ha podido iniciar sesión"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Seleccionar contactos para importar"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importación"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index d7edfaf..cf1a1c8 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Perekonnanimi enne"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Kontod"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Vaikekonto uute kontaktide jaoks"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sünkrooni kontakti metaandmed [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sünkrooni kontakti metaandmed"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Minu teave"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Seadistage oma profiil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Teave rakenduse Kontaktid kohta"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM-kaardi kontakt imporditi</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-kaardi kontaktide importimine ebaõnnestus"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Sisselogimine ebaõnnestus"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Valige imporditavad kontaktid"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Impordi tühistamine"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 87bc95e..1ce2af8 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Abizena lehenengo"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Kontuak"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Kontaktu berriak gordetzeko kontu lehenetsia"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinkronizatu kontaktuen metadatuak [PROBAKO BERTSIOA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinkronizatu kontaktuen metadatuak"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Nire informazioa"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Konfiguratu profila"</string>
     <string name="setting_about" msgid="7014388749752042863">"Kontaktuak zerbitzuari buruz"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">SIM txarteleko 1 kontaktu inportatu da</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ezin izan dira inportatu SIM txarteleko kontaktuak"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Ezin izan da hasi saioa"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Hautatu inportatu beharreko kontaktuak"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Utzi inportazioa bertan behera"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 351df0d..277724f 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ابتدا نام خانوادگی"</string>
     <string name="settings_accounts" msgid="350219740670774576">"حساب‌ها"</string>
     <string name="default_editor_account" msgid="699591683362420991">"حساب پیش‌فرض برای مخاطبین جدید"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"همگام‌سازی فراداده مخاطب [آزمایشی]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"همگام‌سازی فراداده مخاطب"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"اطلاعات من"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"تنظیم نمایه"</string>
     <string name="setting_about" msgid="7014388749752042863">"درباره مخاطبین"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب سیم کارت وارد شد</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"مخاطبین سیم کارت وارد نشدند"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"وارد سیستم نشدید"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"انتخاب مخاطبین برای وارد کردن"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"لغو وارد کردن"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index ad213e7..1ab9bc9 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Sukunimi ensin"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Tilit"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Uusien yhteystietojen oletustili"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synkronoi yhteystietojen sisällönkuvaustiedot [TESTIVERSIO]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synkronoi yhteystietojen sisällönkuvaustiedot"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Omat tiedot"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Luo profiili"</string>
     <string name="setting_about" msgid="7014388749752042863">"Tietoja yhteystiedoista"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Yksi SIM-yhteystieto tuotiin.</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-yhteystietojen tuonti epäonnistui."</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Kirjautuminen epäonnistui"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Valitse tuotavat yhteystiedot"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Peruuta tuonti"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index b045a0c..59f2bbc 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nom de famille en premier"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Compte par défaut pour les nouveaux contacts"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synchroniser les métadonnées des contacts [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synchroniser les métadonnées des contacts"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mon profil"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurer votre profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"À propos de Contacts"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts importés de la carte SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Échec de l\'importation des contacts de la carte SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Échec de la connexion"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Sélectionner les contacts à importer"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Annuler l\'importation"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e872827..8f86b0a 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nom en premier"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Compte par défaut pour les nouveaux contacts"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synchroniser les métadonnées des contacts [VERSION DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synchroniser les métadonnées des contacts"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mes infos"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurer votre profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"À propos de Contacts"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts importés depuis la carte SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Impossible d\'importer les contacts de la carte SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Connexion impossible"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Sélectionner les contacts à importer"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Annuler l\'importation"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 162a57e..54dba30 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro os apelidos"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Conta predeterminada para novos contactos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadatos de contacto [VERSIÓN DE PROBA INTERNA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadatos de contacto"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"A miña información"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurar perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Acerca de Contactos"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Importouse 1 contacto da SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Produciuse un erro ao importar contactos da SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Produciuse un erro ao iniciar sesión"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Seleccionar contactos para importar"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importación"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index b1be589..d11e0a9 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"છેલ્લું નામ પહેલા"</string>
     <string name="settings_accounts" msgid="350219740670774576">"એકાઉન્ટ્સ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"નવા સંપર્કો માટે ડિફોલ્ટ એકાઉન્ટ"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"સંપર્ક મેટાડેટાને સમન્વયિત કરો [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"સંપર્ક મેટાડેટાને સમન્વયિત કરો"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"મારી માહિતી"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"તમારી પ્રોફાઇલ સેટ કરો"</string>
     <string name="setting_about" msgid="7014388749752042863">"સંપર્કો વિશે"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM સંપર્કો આયાત કર્યાં</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM સંપર્કો આયાત કરવામાં નિષ્ફળ થયાં"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"સાઇન ઇન કરવામાં નિષ્ફળ થયાં"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"આયાત કરવા માટે સંપર્કો પસંદ કરો"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"આયાત કરવાનું રદ કરો"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 56ba2e3..77eb9f5 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"उपनाम पहले"</string>
     <string name="settings_accounts" msgid="350219740670774576">"खाते"</string>
     <string name="default_editor_account" msgid="699591683362420991">"नए संपर्कों के लिए डिफ़ॉल्ट खाता"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"संपर्क मेटाडेटा समन्वयित करें [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"संपर्क मेटाडेटा समन्वयित करें"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"मेरी जानकारी"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"अपनी प्रोफ़ाइल सेट करें"</string>
     <string name="setting_about" msgid="7014388749752042863">"संपर्क के बारे में"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात किए गए</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"सिम संपर्कों को आयात करने में विफल रहा"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"प्रवेश करने में विफल रहे"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"आयात करने के लिए संपर्कों को चुनें"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"आयात रद्द करें"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 4dd07b7..e03cac5 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -549,6 +549,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprije prezime"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Zadani račun za nove kontakte"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinkronizacija metapodataka kontakta [INTERNA PROBNA VERZIJA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinkronizacija metapodataka kontakta"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Postavite svoj profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"O kontaktima"</string>
@@ -620,6 +622,7 @@
       <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM-a</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspio"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Prijava nije uspjela"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Odabir kontakata za uvoz"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Otkazivanje uvoza"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e00454c..41cc4c9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Családnév elöl"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Fiókok"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Alapértelmezett fiók az új névjegyek számára"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Névjegyek metaadatainak szinkronizálása [DOGFOOD-ALKALMAZÁS]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Névjegyek metaadatainak szinkronizálása"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Saját adatok"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Profil beállítása"</string>
     <string name="setting_about" msgid="7014388749752042863">"A névjegyekről"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM-névjegy importálva</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nem sikerült importálni a SIM-névjegyeket."</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Sikertelen bejelentkezés"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Válassza ki az importálni kívánt névjegyeket"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Importálás leállítása"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 1afa421..94f7f1d 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Սկզբում՝ ազգանունը"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Հաշիվներ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Կանխադրված հաշիվ նոր կոնտակտների համար"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Համաժամեցնել կոնտակտների մետատվյալները [ՓՈՐՁԱՐԿՄԱՆ ՆՊԱՏԱԿՈՎ]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Համաժամեցնել կոնտակտների մետատվյալները"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Իմ մասին"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Կարգավորել պրոֆիլը"</string>
     <string name="setting_about" msgid="7014388749752042863">"Կոնտակտների մասին"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> կոնտակտ SIM քարտից ներմուծվեց</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM քարտից չհաջողվեց ներմուծել կոնտակտները"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Չհաջողվեց մուտք գործել"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Ընտրեք կոնտակտներ ներմուծման համար"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Չեղարկել ներմուծումը"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index efd6289..f7cb3d6 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nama belakang terlebih dulu"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Akun"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Akun default untuk kontak baru"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinkronkan metadata kontak [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinkronkan metadata kontak"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Info saya"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Siapkan profil Anda"</string>
     <string name="setting_about" msgid="7014388749752042863">"Tentang Kontak"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 kontak SIM yang diimpor</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimpor kontak SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Gagal masuk"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Pilih kontak untuk diimpor"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Batalkan impor"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index a485f41..35c48e5 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Eftirnafn fyrst"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Reikningar"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Sjálfgefinn reikningur fyrir nýja tengiliði"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Samstilla lýsigögn tengiliða [INNANHÚSSÚTGÁFA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Samstilla lýsigögn tengiliða"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mínar upplýsingar"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Settu upp snið"</string>
     <string name="setting_about" msgid="7014388749752042863">"Um Tengiliði"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-tengiliðir fluttir inn</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ekki tókst að flytja inn SIM-tengiliðina"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Innskráning tókst ekki"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Veldu tengiliði til að flytja inn"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Hætta við innflutning"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 22227ba..fef19b4 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prima il cognome"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Account"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Account predefinito per i nuovi contatti"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizza i metadati dei contatti [VERSIONE SPERIMENTALE]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizza i metadati dei contatti"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"I miei dati"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configura il tuo profilo"</string>
     <string name="setting_about" msgid="7014388749752042863">"Informazioni su Contatti"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 contatto della SIM importato</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Impossibile importare i contatti della SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Impossibile accedere"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Seleziona contatti da importare"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Annulla importazione"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 8c9b2c0..70b6226 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"קודם שם המשפחה"</string>
     <string name="settings_accounts" msgid="350219740670774576">"חשבונות"</string>
     <string name="default_editor_account" msgid="699591683362420991">"חשבון ברירת המחדל לאנשי קשר חדשים"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"סנכרון המטא נתונים של איש הקשר [ניסוי המוצר לפני הפצה]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"סנכרון המטא נתונים של איש הקשר"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"המידע שלי"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"הגדרת הפרופיל שלך"</string>
     <string name="setting_about" msgid="7014388749752042863">"מידע על אנשי הקשר"</string>
@@ -633,6 +635,7 @@
       <item quantity="one">‏איש קשר אחד יובא מכרטיס ה-SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏לא ניתן היה לייבא את אנשי הקשר מכרטיס ה-SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"לא ניתן היה להיכנס לחשבון"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"בחר אנשי קשר לייבוא"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"בטל את הייבוא"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 2423f6d..1f20cd5 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓が先"</string>
     <string name="settings_accounts" msgid="350219740670774576">"アカウント"</string>
     <string name="default_editor_account" msgid="699591683362420991">"新しい連絡先のデフォルト アカウント"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"連絡先メタデータを同期 [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"連絡先メタデータの同期"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ユーザー情報"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"プロファイルのセットアップ"</string>
     <string name="setting_about" msgid="7014388749752042863">"連絡先について"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 件の SIM の連絡先をインポートしました</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM の連絡先をインポートできませんでした"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"ログインできませんでした"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"インポートする連絡先の選択"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"インポートをキャンセル"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 79171d7..25f87e2 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ჯერ გვარი"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ანგარიშები"</string>
     <string name="default_editor_account" msgid="699591683362420991">"ნაგულისხმევი ანგარიში ახალი კონტაქტებისთვის"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"კონტაქტების მეტამონაცემების სინქრონიზაცია (Dogfood-ვერსია)"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"კონტაქტების მეტამონაცემების სინქრონიზაცია"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ჩემი ინფორმაცია"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"თქვენი პროფილის დაყენება"</string>
     <string name="setting_about" msgid="7014388749752042863">"კონტაქტების შესახებ"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">იმპორტირებულია 1 SIM კონტაქტი</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM კონტაქტების იმპორტირება ვერ მოხერხდა"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"შესვლა ვერ მოხერხდა"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"აირჩიეთ კონტაქტი იმპორტისათვის"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"იმპორტის გაუქმება"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 95b2407..c435099 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Алдымен тегі"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Есептік жазбалар"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Жаңа контактілерге арналған әдепкі есептік жазба"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Контакт метадеректерін синхрондау [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Контакт метадеректерін синхрондау"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Ақпаратым"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Профильді орнату"</string>
     <string name="setting_about" msgid="7014388749752042863">"Контактілер туралы"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM контактісі импортталды</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM контактілері импортталмады"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Жүйеге кіру мүмкін болмады"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Импортталатын контактілерді таңдау"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Импорттауды тоқтату"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 05fb0c8..f7847c4 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"នាមត្រកូល​មុន"</string>
     <string name="settings_accounts" msgid="350219740670774576">"គណនី"</string>
     <string name="default_editor_account" msgid="699591683362420991">"គណនីលំនាំដើមសម្រាប់ទំនាក់ទំនងថ្មី"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"ធ្វើសមកាលកម្មទិន្នន័យមេតា [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"ធ្វើសមកាលកម្មទិន្នន័យមេតា"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ព័ត៌មាន​របស់​ខ្ញុំ"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"រៀបចំ​ប្រវត្តិរូប​របស់​អ្នក"</string>
     <string name="setting_about" msgid="7014388749752042863">"អំពីទំនាក់ទំនង"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">បាន​នាំចូល​ទំនាក់ទំនង SIM 1</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"មិន​អាច​នាំចូល​ទំនាក់ទំនង​ពី SIM បាន​ទេ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"មិន​អាច​ចូល​បាន​ទេ"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ជ្រើស​ទំនាក់​ទំនង ដើម្បី​នាំចូល"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"បោះបង់ការ​នាំចូល"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 7aa285a..908bae9 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ಕೊನೆಯ ಹೆಸರು ಮೊದಲು"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ಖಾತೆಗಳು"</string>
     <string name="default_editor_account" msgid="699591683362420991">"ಹೊಸ ಸಂಪರ್ಕಗಳಿಗೆ ಡಿಫಾಲ್ಟ್‌ ಖಾತೆ"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"ಸಂಪರ್ಕ ಮೆಟಾಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಿ [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"ಸಂಪರ್ಕ ಮೆಟಾಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಿ"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ನನ್ನ ಮಾಹಿತಿ"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ"</string>
     <string name="setting_about" msgid="7014388749752042863">"ಸಂಪರ್ಕಗಳ ಕುರಿತು"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗಿದೆ</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"ಸೈನ್ ಇನ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ಆಮದು ಮಾಡಲು ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ಆಮದು ರದ್ದುಮಾಡು"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 12af3a9..6ae8e50 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"성 먼저"</string>
     <string name="settings_accounts" msgid="350219740670774576">"계정"</string>
     <string name="default_editor_account" msgid="699591683362420991">"새 연락처에 대한 기본 계정"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"연락처 메타데이터 동기화 [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"연락처 메타데이터 동기화"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"내 정보"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"프로필 설정"</string>
     <string name="setting_about" msgid="7014388749752042863">"주소록 정보"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">SIM 연락처 1개를 가져옴</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM 연락처를 가져오지 못했습니다."</string>
+    <string name="connection_failed" msgid="7558253972301525402">"로그인하지 못했습니다."</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"가져올 주소록 선택"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"가져오기 취소"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 4060c76..d01eb10 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -640,6 +640,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Фамилиясы биринчи жазылсын"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Каттоо эсептер"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Жаңы байланыштарыңыз үчүн демейки каттоо эсеби"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Байланыштын метадайындарын шайкештирүү [БЕТА ПРОГРАММАЛАРДЫ СЫНОО]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Байланыштын метадайындарын шайкештирүү"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Менин дайындарым"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Профилди жөндөө"</string>
     <string name="setting_about" msgid="7014388749752042863">"Байланыштар жөнүндө"</string>
@@ -716,6 +718,7 @@
       <item quantity="one">1 SIM байланыш өткөрүлүп алынды</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM байланыштары өткөрүлүп алынган жок"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Кире алган жоксуз"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Импорттоло турган байланыштарды тандаңыз"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Импорттоону жокко чыгаруу"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index f2f72f2..949bb51 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ນາມສະກຸນກ່ອນ"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ບັນຊີ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"ບັນຊີເລີ່ມຕົ້ນສຳລັບລາຍຊື່ຕິດຕໍ່ໃໝ່"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"ຊິ້ງຂໍ້ມູນເມຕາເດຕາຂອງລາຍຊື່ຜູ້ຕິດຕໍ່ [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"ຊິ້ງຂໍ້ມູນເມຕາເດຕາຂອງລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ຂໍ້ມູນຂອງຂ້ອຍ"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"ຕັ້ງຄ່າໂປຣໄຟລ໌ຂອງທ່ານ"</string>
     <string name="setting_about" msgid="7014388749752042863">"ກ່ຽວກັບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">ນຳເຂົ້າ 1 ລາຍຊື່ຜູ້ຕິດຕໍ່ຊິມແລ້ວ</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"ນຳເຂົ້າລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກຊິມກາດບໍ່ສຳເລັດ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"ເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ເລືອກລາຍຊື່ເພື່ອນຳເຂົ້າ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ຍົກເລີກການນຳເຂົ້າ"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 31cbe3b..794447e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Pirmiausia pavardė"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Paskyros"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Numatytoji naujų kontaktų paskyra"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinchronizuoti kontaktų metaduomenis [NEGALUTINĖ VERSIJA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Kontaktų metaduomenų sinchronizavimas"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mano informacija"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Nustatykite profilį"</string>
     <string name="setting_about" msgid="7014388749752042863">"Apie Kontaktus"</string>
@@ -633,6 +635,7 @@
       <item quantity="other">Importuota <xliff:g id="COUNT">%d</xliff:g> SIM kortelės kontaktų</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nepavyko importuoti SIM kortelės kontaktų"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Nepavyko prisijungti"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Pasirinkti importuojamus kontaktus"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Atšaukti importavimą"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 71634db..0f71b71 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -549,6 +549,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Vispirms rādīt uzvārdu"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Konti"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Noklusējuma konts jaunām kontaktpersonām"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinhronizēt kontaktpersonu metadatus [IZSTRĀDES PROGRAMMATŪRA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Kontaktpersonu metadatu sinhronizācija"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mana informācija"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Iestatiet savu profilu"</string>
     <string name="setting_about" msgid="7014388749752042863">"Par lietotni Kontaktpersonas"</string>
@@ -620,6 +622,7 @@
       <item quantity="other">Importētas <xliff:g id="COUNT">%d</xliff:g> SIM kartes kontaktpersonas</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Neizdevās importēt SIM kartes kontaktpersonas."</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Neizdevās pierakstīties"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Importējamo kontaktpersonu atlase"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Atcelt importēšanu"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index a80f06c..1d8896d 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прво презимето"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Сметки"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Стандардна сметка за новите контакти"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Синхронизирајте метаподатоци за контакт [ТЕСТИРАЊЕ НОВА ВЕРЗИЈА]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Синхронизирајте метаподатоци за контакт"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Мои информации"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Поставете го профилот"</string>
     <string name="setting_about" msgid="7014388749752042863">"За „Контакти“"</string>
@@ -607,6 +609,7 @@
       <item quantity="other">Увезени се <xliff:g id="COUNT">%d</xliff:g> контакти од SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не успеа увезувањето контакти од SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Не успеа да се најави"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Изберете контакти за увоз"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Откажете го увозот"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index ab322f8..dc35145 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ലാസ്റ്റ് നെയിം ആദ്യം"</string>
     <string name="settings_accounts" msgid="350219740670774576">"അക്കൗണ്ടുകൾ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"പുതിയ കോൺടാക്റ്റുകൾക്കായുള്ള ഡിഫോൾട്ട് അക്കൗണ്ട്"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"കോൺടാക്റ്റ് മെറ്റാഡാറ്റ സമന്വയിപ്പിക്കുക [ഡോഗ്‌ഫുഡ്]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"കോൺടാക്റ്റ് മെറ്റാഡാറ്റ സമന്വയിപ്പിക്കുക"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"എന്റെ വിവരം"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"നിങ്ങളുടെ പ്രൊഫൈൽ സജ്ജമാക്കുക"</string>
     <string name="setting_about" msgid="7014388749752042863">"കോണ്‍ടാക്റ്റുകളെ കുറിച്ച്"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">ഒരു സിം കോൺടാക്‌റ്റ് ഇമ്പോർട്ടുചെയ്‌തു</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"സിം കോൺടാക്‌റ്റുകൾ ഇമ്പോർട്ടുചെയ്യാനായില്ല"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"സൈൻ ഇൻ ചെയ്യാനായില്ല"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ഇമ്പോർട്ടുചെയ്യാനുള്ളവ തിരഞ്ഞെടുക്കൂ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ഇറക്കുമതി റദ്ദാക്കുക"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index d3a9733..c60b13f 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -540,6 +540,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Овгийг эхэнд нь"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Бүртгэл"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Шинэ харилцагчийн өгөгдмөл бүртгэл"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Харилцагчдын метадатаг синк хийх [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Харилцагчдын мета-өгөгдлийг синк хийх"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Миний мэдээлэл"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Өөрийн профайлыг тохируулна уу"</string>
     <string name="setting_about" msgid="7014388749752042863">"Харилцагчдын тухай"</string>
@@ -609,6 +611,7 @@
       <item quantity="one">1 SIM-н харилцагчийг импорт хийсэн</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-н харилцагчдыг импортолж чадсангүй"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Нэвтэрч чадсангүй"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Импорт хийх харилцагчдыг сонгоно уу"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Импорт хийхийг цуцлах"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 06c19e2..c3f5ec9 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"आडनाव प्रथम"</string>
     <string name="settings_accounts" msgid="350219740670774576">"खाती"</string>
     <string name="default_editor_account" msgid="699591683362420991">"नवीन संपर्कांसाठी डीफॉल्ट खाते"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"संपर्क मेटाडेटा संकालित करा [डॉगफूड]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"संपर्क मेटाडेटा संकालित करा"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"माझी माहिती"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"आपले प्रोफाईल सेट करा"</string>
     <string name="setting_about" msgid="7014388749752042863">"संपर्कांबद्दल"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात केले</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"सिम संपर्क आयात करण्यात अयशस्वी"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"साइन इन करण्यात अयशस्वी झाले"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"आयात करण्यासाठी संपर्क निवडा"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"आयात रद्द करा"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index c9d0e22..3b4ddbb 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -540,6 +540,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nama keluarga dahulu"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Akaun"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Akaun lalai untuk kenalan baharu"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Segerakkan metadata kenalan [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Segerakkan metadata kenalan"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Maklumat saya"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Sediakan profil anda"</string>
     <string name="setting_about" msgid="7014388749752042863">"Perihal Kenalan"</string>
@@ -609,6 +611,7 @@
       <item quantity="one">1 kenalan SIM diimport</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimport kenalan SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Gagal log masuk"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Pilih kenalan untuk diimport"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Batalkan import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index a0eaf0f..709f8b6 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"နောက်အမည်ဖြင့်စ၍"</string>
     <string name="settings_accounts" msgid="350219740670774576">"အကောင့်များ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"အဆက်အသွယ်အသစ်များအတွက် မူရင်းအကောင့်"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"အဆက်အသွယ်မက်တာဒေတာကို ပြိုင်တူညှိရန် [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"အဆက်အသွယ်မက်တာဒေတာကို ပြိုင်တူညှိရန်"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ကျွန်ုပ်၏အချက်အလက်"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"သင့်ပရိုဖိုင်ပြင်ဆင်ရန်"</string>
     <string name="setting_about" msgid="7014388749752042863">"အဆက်အသွယ်များအကြောင်း"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">ဆင်းမ်အဆက်အသွယ် ၁ ခုကို တင်သွင်းပြီးပါပြီ</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"ဆင်းမ်အဆက်အသွယ်များကို တင်သွင်း၍မရပါ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"အကောင့် ဝင်၍မရပါ"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"တင်သွင်းရန် လိပ်စာများကို ရွေးပါ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"တင်သွင်းမှု ပယ်ဖျက်ရန်"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 9d50971..b09b9b8 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Etternavnet først"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Kontoer"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Standardkonto for nye kontakter"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synkroniser metadata for kontakter [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synkroniser metadata for kontakter"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Min informasjon"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Definer profilen din"</string>
     <string name="setting_about" msgid="7014388749752042863">"Om Kontakter"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Én SIM-kontakt ble importert</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kunne ikke importere SIM-kontakter"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Kunne ikke logge på"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Velg kontaktene du vil importere"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Avbryt import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 2cc1f72..12dc482 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"थर पहिले"</string>
     <string name="settings_accounts" msgid="350219740670774576">"खाताहरू"</string>
     <string name="default_editor_account" msgid="699591683362420991">"नयाँ सम्पर्कहरूका लागि पूर्वनिर्धारित खाता"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"सम्पर्कसम्बन्धी मेटाडाटा [DOGFOOD] लाई सिंक गर्नुहोस्"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"सम्पर्क सम्बन्धी मेटाडाटालाई सिंक गर्नुहोस्"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"मेरा बारेमा जानकारी"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"आफ्नो प्रोफाइल सेट अप गर्नुहोस्"</string>
     <string name="setting_about" msgid="7014388749752042863">"सम्पर्कहरूका बारेमा"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">SIM को १ सम्पर्क आयात गरियो</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM को सम्पर्कहरू आयात गर्न सकिएन"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"साइन इन गर्न सकिएन"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"आयात गर्न सम्पर्कहरू चयन गर्नुहोस्"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"आयात रद्द गर्नुहोस्"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f944cf9..11e6843 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Achternaam eerst"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Standaardaccount voor nieuwe contacten"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Metadata van contacten synchroniseren [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Metadata van contacten synchroniseren"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mijn info"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Je profiel instellen"</string>
     <string name="setting_about" msgid="7014388749752042863">"Over Contacten"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 contact op simkaart geïmporteerd</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kan contacten op simkaart niet importeren"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Inloggen is mislukt"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Contacten selecteren om te importeren"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Importeren annuleren"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 031adf4..fe6e39c 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ਨਾਮ ਦਾ ਆਖਰੀ ਭਾਗ ਪਹਿਲਾਂ"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ਖਾਤੇ"</string>
     <string name="default_editor_account" msgid="699591683362420991">"ਨਵੇਂ ਸੰਪਰਕਾਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਖਾਤਾ"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"ਸੰਪਰਕ ਮੈਟਾਡੈਟਾ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"ਸੰਪਰਕ ਮੈਟਾਡੈਟਾ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ਮੇਰੀ ਜਾਣਕਾਰੀ"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"ਆਪਣਾ ਪ੍ਰੋਫਾਈਲ ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="setting_about" msgid="7014388749752042863">"ਸੰਪਰਕਾਂ ਬਾਰੇ"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM ਸੰਪਰਕ ਆਯਾਤ ਕੀਤੇ ਗਏ</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM ਸੰਪਰਕਾਂ ਨੂੰ ਆਯਾਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"ਸਾਈਨ ਇਨ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ਆਯਾਤ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ਆਯਾਤ ਰੱਦ ਕਰੋ"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 59a2013..6dac809 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najpierw nazwisko"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Konta"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Domyślne konto dla nowych kontaktów"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synchronizuj metadane kontaktów [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synchronizuj metadane kontaktów"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"O mnie"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Wypełnij swój profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Informacje o Kontaktach"</string>
@@ -633,6 +635,7 @@
       <item quantity="one">Zaimportowano 1 kontakt z karty SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nie udało się zaimportować kontaktów z karty SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Nie udało się zalogować"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Wybierz kontakty do importowania"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Anuluj importowanie"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 01288e1..d61204d 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro o sobrenome"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Conta padrão para novos contatos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadados de contatos [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadados de contatos"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Minhas informações"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurar seu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Sobre Contatos"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos importados do SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Falha ao importar contatos do SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Falha ao fazer login"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Selecione os contatos a serem importados"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importação"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ac9306c..c81eef0 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apelido em primeiro lugar"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Conta predefinida para novos contactos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadados de contactos [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadados de contactos"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"As minhas informações"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurar o seu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Acerca dos contactos"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 contacto do cartão SIM importado</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ocorreu uma falha ao importar os contactos do cartão SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Ocorreu uma falha ao iniciar sessão"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Selecione os contactos a importar"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importação"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 01288e1..d61204d 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro o sobrenome"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Conta padrão para novos contatos"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizar metadados de contatos [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizar metadados de contatos"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Minhas informações"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurar seu perfil"</string>
     <string name="setting_about" msgid="7014388749752042863">"Sobre Contatos"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos importados do SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Falha ao importar contatos do SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Falha ao fazer login"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Selecione os contatos a serem importados"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Cancelar importação"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index cd926e7..47f9486 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -549,6 +549,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Întâi numele de familie"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Conturi"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Contul prestabilit pentru persoanele de contact noi"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sincronizați metadatele pentru persoanele de contact [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sincronizați metadatele pentru persoanele de contact"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Informațiile mele"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Configurați profilul"</string>
     <string name="setting_about" msgid="7014388749752042863">"Despre Agendă"</string>
@@ -620,6 +622,7 @@
       <item quantity="one">A fost importată o persoană de contact de pe SIM.</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nu s-au importat persoanele de contact de pe SIM."</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Nu v-ați conectat."</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Selectați persoane de contact pentru import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Anulați importul"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 370e7ad..62f2755 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Сначала фамилия"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Аккаунты"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Аккаунт по умолчанию для новых контактов"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Метаданные контакта для синхронизации [ТЕСТОВАЯ ВЕРСИЯ]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Метаданные контакта для синхронизации"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Мои данные"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Настройте профиль"</string>
     <string name="setting_about" msgid="7014388749752042863">"О Контактах"</string>
@@ -633,6 +635,7 @@
       <item quantity="other">Импортировано <xliff:g id="COUNT">%d</xliff:g> контакта с SIM-карты</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не удалось импортировать контакты с SIM-карты"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Не удалось войти в систему"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Выберите контакты для импорта"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Отменить импорт"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 832cad5..ec5ae41 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"අවසාන නම මුලින්ම"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ගිණුම්"</string>
     <string name="default_editor_account" msgid="699591683362420991">"නව සම්බන්ධතා සඳහා පෙරනිමි ගිණුම"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"සම්බන්ධතා පාරදත්ත සමමුහුර්ත කරන්න [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"සම්බන්ධතා පාරදත්ත සමමුහුර්ත කරන්න"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"මගේ තොරතුරු"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"ඔබේ පැතිකඩ පිහිටුවන්න"</string>
     <string name="setting_about" msgid="7014388749752042863">"සම්බන්ධතා පිළිබඳ"</string>
@@ -607,6 +609,7 @@
       <item quantity="other">SIM සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>ක් ආයාත කරන ලදී</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM සම්බන්ධතා ආයාත කිරීමට අසමත් විය"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"පිරීමට අසමත් විය"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"ආයාත කිරීමට සම්බන්ධතා තෝරන්න"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ආයාත කිරීම අවලංගු කරන්න"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index a7973ab..d95fe1c 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprv priezvisko"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Účty"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Predvolený účet pre nové kontakty"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synchronizovať metadáta kontaktov [INTERNÁ TESTOVACIA VERZIA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synchronizácia metadát kontaktov"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informácie"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Nastavenie profilu"</string>
     <string name="setting_about" msgid="7014388749752042863">"O aplikácii Kontakty"</string>
@@ -633,6 +635,7 @@
       <item quantity="one">Importoval sa 1 kontakt na SIM karte</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Import kontaktov na SIM karte zlyhal"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Prihlásenie zlyhalo"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Výber kontaktov na import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Zrušiť import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b0425b8..c637499 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprej priimek"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Privzeti račun za nove stike"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinhroniziraj metapodatke stikov [PRESKUSNA INTERNA UPORABA]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinhronizacija metapodatkov stikov"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Moji podatki"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Nastavite svoj profil"</string>
     <string name="setting_about" msgid="7014388749752042863">"O Stikih"</string>
@@ -633,6 +635,7 @@
       <item quantity="other">S kartice SIM je uvoženih <xliff:g id="COUNT">%d</xliff:g> stikov</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Stikov s kartice SIM ni bilo mogoče uvoziti"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Prijava ni uspela"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Izberite stike za uvoz"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Prekliči uvoz"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 124545d..ed7b42a 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Mbiemri në fillim"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Llogaritë"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Llogaria e parazgjedhur për kontaktet e reja"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinkronizo të dhënat meta të kontakteve [TESTIM]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinkronizo të dhënat meta të kontakteve"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Informacioni im"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Konfiguro profilin"</string>
     <string name="setting_about" msgid="7014388749752042863">"Rreth kontakteve"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 kontakt i kartës SIM u importua</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Importimi i kontakteve të kartës SIM dështoi"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Identifikimi dështoi"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Zgjidh kontaktet për importim"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Anulo importimin"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index ed5eb03..20638b4 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -549,6 +549,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прво презиме"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Налози"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Подразумевани налог за нове контакте"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Синхронизуј метаподатке контаката [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Синхронизујте метаподатке контаката"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Моје информације"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Подесите профил"</string>
     <string name="setting_about" msgid="7014388749752042863">"О Контактима"</string>
@@ -620,6 +622,7 @@
       <item quantity="other">Увезено је <xliff:g id="COUNT">%d</xliff:g> контаката са SIM картице</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Увоз контаката са SIM картице није успео"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Пријављивање није успело"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Изаберите контакте за увоз"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Откажите увоз"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 7b8e659..9e3ab75 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Efternamn först"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Konton"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Standardkonto för nya kontakter"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Synkronisera metadata för kontakter [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Synkronisera metadata för kontakter"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mina uppgifter"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Konfigurera profilen"</string>
     <string name="setting_about" msgid="7014388749752042863">"Om Kontakter"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">En SIM-kontakt importerad</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Det gick inte att importera SIM-kontakter"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Det gick inte att logga in"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Välj kontakter att importera"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Avbryt import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 7b58d8d..1aeee3a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -540,6 +540,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Anza na jina la mwisho"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Akaunti"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Akaunti chaguo-msingi ya kuhifadhi anwani mpya"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sawazisha metadata ya anwani [JARIBIO LA KINDANI]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sawazisha metadata ya anwani"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Maelezo yangu"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Weka wasifu wako"</string>
     <string name="setting_about" msgid="7014388749752042863">"Kuhusu Anwani"</string>
@@ -609,6 +611,7 @@
       <item quantity="one">Anwani 1 iliyokuwa kwenye SIM imeletwa</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Imeshindwa kuleta anwani zilizo kwenye SIM kadi"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Imeshindwa kuingia katika akaunti"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Chagua anwani za kuleta"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Ghairi uletaji"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index affc1a3..0676a64 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"பெயரின் பிற்பகுதி முதலில்"</string>
     <string name="settings_accounts" msgid="350219740670774576">"கணக்குகள்"</string>
     <string name="default_editor_account" msgid="699591683362420991">"புதிய தொடர்புகளுக்கான இயல்பு கணக்கு"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"தொடர்பின் மீத்தரவை ஒத்திசை [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"தொடர்பின் மீத்தரவை ஒத்திசை"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"எனது தகவல்"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"சுயவிவரத்தை அமைக்கவும்"</string>
     <string name="setting_about" msgid="7014388749752042863">"தொடர்புகள் - ஓர் அறிமுகம்"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 சிம் தொடர்பு இறக்கப்பட்டது</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"சிம் தொடர்புகளை இறக்க முடியவில்லை"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"உள்நுழைய முடியவில்லை"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"இறக்க வேண்டிய தொடர்புகளைத் தேர்ந்தெடுக்கவும்"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"இறக்குவதை ரத்துசெய்வதற்கான ஐகான்"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 30686bd..aa8e52c 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"ముందుగా చివరి పేరు"</string>
     <string name="settings_accounts" msgid="350219740670774576">"ఖాతాలు"</string>
     <string name="default_editor_account" msgid="699591683362420991">"కొత్త పరిచయాల కోసం డిఫాల్ట్ ఖాతా"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"పరిచయ మెటాడేటాను సమకాలీకరించు [డాగ్‌ఫుడ్]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"పరిచయ మెటాడేటాను సమకాలీకరించు"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"నా సమాచారం"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"మీ ప్రొఫైల్‌ను సెటప్ చేయండి"</string>
     <string name="setting_about" msgid="7014388749752042863">"పరిచయాల గురించి"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM పరిచయం దిగుమతి చేయబడింది</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM పరిచయాలను దిగుమతి చేయడంలో విఫలమైంది"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"సైన్ ఇన్ చేయడంలో విఫలమైంది"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"దిగుమతి చేయాల్సిన పరిచయాలను ఎంచుకోండి"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"దిగుమతిని రద్దు చేస్తుంది"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 6f7a869..38cda8a 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"นามสกุลขึ้นก่อน"</string>
     <string name="settings_accounts" msgid="350219740670774576">"บัญชี"</string>
     <string name="default_editor_account" msgid="699591683362420991">"บัญชีเริ่มต้นสำหรับรายชื่อติดต่อใหม่"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"ซิงค์ข้อมูลเมตาของรายชื่อติดต่อ [การลองใช้]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"ซิงค์ข้อมูลเมตาของรายชื่อติดต่อ"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"ข้อมูลของฉัน"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"ตั้งค่าโปรไฟล์ของคุณ"</string>
     <string name="setting_about" msgid="7014388749752042863">"เกี่ยวกับ \"รายชื่อติดต่อ\""</string>
@@ -607,6 +609,7 @@
       <item quantity="one">นำเข้าผู้ติดต่อ 1 รายจากซิมแล้ว</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"นำเข้าผู้ติดต่อจากซิมไม่สำเร็จ"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"ไม่สามารถลงชื่อเข้าใช้ได้"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"เลือกผู้ติดต่อที่จะนำเข้า"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"ยกเลิกการนำเข้า"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 29c0ec0..4f19115 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apelyido muna"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Mga Account"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Default na account para sa mga bagong contact"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"I-sync ang metadata ng contact [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"I-sync ang metadata ng contact"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Aking impormasyon"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"I-set up ang iyong profile"</string>
     <string name="setting_about" msgid="7014388749752042863">"Tungkol sa Mga Contact"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na contact sa SIM ang na-import</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Hindi na-import ang mga contact sa SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Hindi nakapag-sign in"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Piliin ang mga contact na ii-import"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Kanselahin ang pag-import"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 6b5e1ed..560be86 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Önce soyadı"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Hesaplar"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Yeni kişiler için varsayılan hesap"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Kişi meta verilerini senkronize et [TEST SÜRÜMÜ]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Kişi meta verilerini senkronize et"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Bilgilerim"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Profilinizi oluşturun"</string>
     <string name="setting_about" msgid="7014388749752042863">"Kişiler Hakkında"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 SIM kişisi içe aktarıldı</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM kişileri içe aktarılamadı"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Oturum açılamadı"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"İçe aktarılacak kişileri seçin"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"İçe aktarma iptal edilir"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 9ce2c2f..fa207c1 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -560,6 +560,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прізвище спочатку"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Облікові записи"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Обліковий запис за умовчанням для нових контактів"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Синхронізувати метадані контактів [ВНУТРІШНЄ ТЕСТУВАННЯ]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Синхронізувати метадані контактів"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Мої дані"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Налаштування профілю"</string>
     <string name="setting_about" msgid="7014388749752042863">"Про додаток Контакти"</string>
@@ -633,6 +635,7 @@
       <item quantity="other">Імпортовано <xliff:g id="COUNT">%d</xliff:g> контакта із SIM-карти</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не вдалось імпортувати контакти із SIM-карти"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Помилка входу"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Виберіть контакти для імпорту"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Скасувати імпорт"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 35e78db..ad701ca 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"آخری نام پہلے"</string>
     <string name="settings_accounts" msgid="350219740670774576">"اکاؤنٹس"</string>
     <string name="default_editor_account" msgid="699591683362420991">"نئے رابطوں کیلئے ڈیفالٹ اکاؤنٹ"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"‏رابطہ میٹا ڈیٹا مطابقت پذیر بنائیں [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"رابطہ میٹا ڈیٹا مطابقت پذیر بنائیں"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"میری معلومات"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"اپنے پروفائل کو ترتیب دیں"</string>
     <string name="setting_about" msgid="7014388749752042863">"رابطے کے بارے میں"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">‏1 SIM رابطہ درآمد ہو گیا</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏SIM رابطے درآمد کرنے میں ناکام"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"سائن ان کرنے میں ناکام"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"درآمد کیلئے رابطے چنیں"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"برآمد منسوخ کریں"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index a4167bf..a113437 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Avval familiyasi"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Hisoblar"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Yangi kontaktlar uchun asosiy hisob"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Kontakt meta-ma’lumotlarini sinxronlash [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Kontakt meta-ma’lumotlarini sinxronlash"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Mening ma’lumotlarim"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Profilingizni sozlang"</string>
     <string name="setting_about" msgid="7014388749752042863">"Kontaktlar ilovasi haqida"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">1 ta kontakt SIM kartadan import qilindi</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontaktlarni SIM kartadan import qilib bo‘lmadi"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Tizimga kirib bo‘lmadi"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Import qilish uchun kontaktlarni tanlang"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Import qilishni bekor qilish"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 8e5a17b..5d798f4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Họ trước"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Tài khoản"</string>
     <string name="default_editor_account" msgid="699591683362420991">"Tài khoản mặc định cho các liên hệ mới"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Đồng bộ hóa siêu dữ liệu liên hệ [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Đồng bộ hóa siêu dữ liệu liên hệ"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Thông tin của tôi"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Thiết lập hồ sơ của bạn"</string>
     <string name="setting_about" msgid="7014388749752042863">"Giới thiệu về Danh bạ"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">Đã nhập 1 liên hệ trên SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Không nhập được liên hệ trên SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Không đăng nhập được"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Chọn danh bạ để nhập"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Hủy nhập"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index a4ad692..f5dab08 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
     <string name="settings_accounts" msgid="350219740670774576">"帐号"</string>
     <string name="default_editor_account" msgid="699591683362420991">"用于保存新联系人的默认帐号"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"同步联系人元数据 [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"同步联系人元数据"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"我的信息"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"设置您的个人资料"</string>
     <string name="setting_about" msgid="7014388749752042863">"关于通讯录"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">已导入 1 位 SIM 卡联系人</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"无法导入 SIM 卡联系人"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"无法登录"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"选择要导入的联系人"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"取消导入"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 01a2266..c91e2ee 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
     <string name="settings_accounts" msgid="350219740670774576">"帳戶"</string>
     <string name="default_editor_account" msgid="699591683362420991">"新聯絡人的預設帳戶"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"同步處理聯絡人元數據 [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"同步處理聯絡人元數據"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"我的資訊"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"設定您的個人檔案"</string>
     <string name="setting_about" msgid="7014388749752042863">"關於聯絡人"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">已匯入 1 位 SIM 聯絡人</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"無法匯入 SIM 聯絡人"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"無法登入"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"選取要匯入的聯絡人"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"取消匯入"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 55ceb5f..2e884ff 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
     <string name="settings_accounts" msgid="350219740670774576">"帳戶"</string>
     <string name="default_editor_account" msgid="699591683362420991">"新聯絡人的預設帳戶"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"同步處理聯絡人中繼資料 [Dogfood 測試階段]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"同步處理聯絡人中繼資料"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"我的資訊"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"設定你的個人資料"</string>
     <string name="setting_about" msgid="7014388749752042863">"關於聯絡人"</string>
@@ -607,6 +609,7 @@
       <item quantity="one">已匯入 1 位 SIM 卡聯絡人</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"無法匯入 SIM 卡聯絡人"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"無法登入"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"選取要匯入的聯絡人"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"取消匯入"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 21e965b..f39d268 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -538,6 +538,8 @@
     <string name="display_options_view_family_name_first" msgid="956445100777296467">"Isibongo kuqala"</string>
     <string name="settings_accounts" msgid="350219740670774576">"Ama-akhawunti"</string>
     <string name="default_editor_account" msgid="699591683362420991">"I-akhawunti ezenzakalelayo yoxhumana nabo abasha"</string>
+    <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Vumelanisa imethadatha yoxhumana naye [DOGFOOD]"</string>
+    <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Vumelanisa imethadatha"</string>
     <string name="settings_my_info_title" msgid="1534272456405343119">"Ulwazi lwami"</string>
     <string name="set_up_profile" msgid="7370213843590143771">"Setha iphrofayela yakho"</string>
     <string name="setting_about" msgid="7014388749752042863">"Mayelana noxhumana nabo"</string>
@@ -607,6 +609,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo be-SIM bangenisiwe</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Yehlulekile ukungenisa oxhumana nabo be-SIM"</string>
+    <string name="connection_failed" msgid="7558253972301525402">"Yehlulekile ukungena ngemvume"</string>
     <string name="sim_import_dialog_title" msgid="6699935401502172530">"Khetha othintana nabo ozobangenisa"</string>
     <string name="sim_import_cancel_content_description" msgid="2388362519166414488">"Khansela ukungenisa"</string>
     <!-- no translation found for auto_sync_off (2180147284456026587) -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8ac6f3f..3a2fa2d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -350,6 +350,24 @@
     <!-- Message displayed when creating a group with the same name as an existing group -->
     <string name="groupExistsErrorMessage">That label already exists</string>
 
+    <!-- Toast displayed when some group contacts do not have any emails (for group send) [CHAR LIMIT=50] -->
+    <string name="groupSomeContactsNoEmailsToast">Some contacts do not have emails.</string>
+
+    <!-- Toast displayed when some group contacts do not have any phone numbers (for group send) [CHAR LIMIT=50] -->
+    <string name="groupSomeContactsNoPhonesToast">Some contacts do not have phone numbers.</string>
+
+    <!-- Option name to send email to all members of a group/selection [CHAR LIMIT=30] -->
+    <string name="menu_sendEmailOption">Send email</string>
+
+    <!-- Option name to send message to all members of a group/selection [CHAR LIMIT=30] -->
+    <string name="menu_sendMessageOption">Send message</string>
+
+    <!-- Activity title when the user is selecting items [CHAR LIMIT=128] -->
+    <string name="pickerSelectContactsActivityTitle">Select Contacts</string>
+
+    <!-- The menu item to send the currently selected contacts to selected items [CHAR LIMIT=10] -->
+    <string name="send_to_selection">Send</string>
+
     <!-- Displayed at the top of the contacts showing the total number of contacts visible when "Only contacts with phones" is selected -->
     <plurals name="listTotalPhoneContacts">
         <item quantity="one">1 contact with phone number</item>
@@ -1806,6 +1824,8 @@
     <!-- Toast shown on settings screen when importing from SIM completes with an error -->
     <string name="sim_import_failed_toast">Failed to import SIM contacts</string>
 
+    <!-- Error message displayed to user when they started the app, but could not sign in to Google's servers. [CHAR LIMIT=50]-->
+    <string name="connection_failed">Failed to sign in</string>
     <!-- Title of SIM import dialog for accessibility; this isn't displayed but is announced
      by talkback when the window is shown -->
     <string name="sim_import_dialog_title">Select contacts to import</string>
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
index d6799e2..e55b7a8 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -13,7 +13,9 @@
  */
 package com.android.contactsbind;
 
+import com.android.contacts.ContactsDrawerActivity;
 import com.android.contacts.common.logging.Logger;
+import com.android.contacts.common.util.NavigationDrawer;
 import com.android.contactsbind.search.AutocompleteHelper;
 import com.android.contacts.common.util.DeviceLocalAccountTypeFactory;
 
@@ -50,4 +52,8 @@
     public static Intent getContactSheetIntent(Context context, Uri contactLookupUri) {
         return null;
     }
+
+    public static NavigationDrawer getNavigationDrawer(ContactsDrawerActivity activity) {
+        return new NavigationDrawer.Default(activity);
+    }
 }
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 0892baf..25d7849 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -26,12 +26,14 @@
 import android.os.Bundle;
 import android.provider.ContactsContract.Intents;
 import android.support.annotation.LayoutRes;
+import android.support.annotation.NonNull;
 import android.support.design.widget.NavigationView;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
 import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -58,6 +60,7 @@
 import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
 import com.android.contacts.common.util.ImplicitIntentsUtil;
 import com.android.contacts.common.util.MaterialColorMapUtils;
+import com.android.contacts.common.util.NavigationDrawer;
 import com.android.contacts.common.util.ViewUtil;
 import com.android.contacts.editor.ContactEditorFragment;
 import com.android.contacts.editor.SelectAccountDialogFragment;
@@ -77,6 +80,7 @@
 import com.android.contactsbind.ObjectFactory;
 import com.android.contactsbind.experiments.Flags;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -142,7 +146,7 @@
 
         private void stopSearchAndSelection() {
             final MultiSelectContactsListFragment listFragment;
-            if (isAllContactsView() || isAccountView()) {
+            if (isAccountView()) {
                 listFragment = getAllFragment();
             } else if (isGroupView()) {
                 listFragment = getGroupFragment();
@@ -188,7 +192,7 @@
     }
 
     protected ContactListFilterController mContactListFilterController;
-    protected DrawerLayout mDrawer;
+    protected DrawerLayout mDrawerLayout;
     protected ContactsActionBarDrawerToggle mToggle;
     protected Toolbar mToolbar;
     protected NavigationView mNavigationView;
@@ -198,6 +202,8 @@
     // The account the new group will be created under.
     private AccountWithDataSet mNewGroupAccount;
 
+    private NavigationDrawer mNavigationDrawer;
+
     // Checkable menu item lookup maps. Every map declared here should be added to
     // clearCheckedMenus() so that they can be cleared.
     // TODO find a better way to handle selected menu item state, when switching to fragments.
@@ -205,10 +211,19 @@
     protected Map<ContactListFilter, MenuItem> mFilterMenuMap = new HashMap<>();
     protected Map<Integer, MenuItem> mIdMenuMap = new HashMap<>();
 
+    private List<GroupListItem> mGroupListItems;
+    private List<ContactListFilter> mAccountFilterItems;
+    private AccountWithDataSet mCurrentAccount;
+
+    protected boolean mShouldShowAccountSwitcher;
+
     @Override
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
 
+        mShouldShowAccountSwitcher =
+                Flags.getInstance(this).getBoolean(Experiments.ACCOUNT_SWITCHER);
+
         mContactListFilterController = ContactListFilterController.getInstance(this);
         mContactListFilterController.checkFilterValidity(false);
 
@@ -222,11 +237,12 @@
         ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
 
         // Set up hamburger button.
-        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
-        mToggle = new ContactsActionBarDrawerToggle(this, mDrawer, mToolbar,
+        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
+        mToggle = new ContactsActionBarDrawerToggle(this, mDrawerLayout, mToolbar,
                 R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+        mDrawerLayout.setDrawerListener(mToggle);
+        mToggle.syncState();
 
-        mDrawer.setDrawerListener(mToggle);
         // Set fallback handler for when drawer is disabled.
         mToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
             @Override
@@ -239,25 +255,31 @@
         if (savedState != null) {
             mCurrentView = ContactsView.values()[savedState.getInt(KEY_CONTACTS_VIEW)];
         } else {
-            mCurrentView = ContactsView.ALL_CONTACTS;
+            resetContactsView();
         }
 
-        // Set up hamburger menu items.
-        mNavigationView = (NavigationView) findViewById(R.id.nav_view);
-        mNavigationView.setNavigationItemSelectedListener(this);
-        setUpMenu();
-
         loadGroupsAndFilters();
 
         if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
             mNewGroupAccount = AccountWithDataSet.unstringify(
                     savedState.getString(KEY_NEW_GROUP_ACCOUNT));
         }
+
+        mNavigationDrawer = ObjectFactory.getNavigationDrawer(this);
+
+        mNavigationView = mNavigationDrawer.getNavigationView();
+        mNavigationView.setNavigationItemSelectedListener(this);
+        setUpMenu();
+    }
+
+    protected void resetContactsView() {
+        mCurrentView = mShouldShowAccountSwitcher
+                ? ContactsView.ACCOUNT_VIEW : ContactsView.ALL_CONTACTS;
     }
 
     public void setDrawerLockMode(boolean enabled) {
         // Prevent drawer from being opened by sliding from the start of screen.
-        mDrawer.setDrawerLockMode(enabled ? DrawerLayout.LOCK_MODE_UNLOCKED
+        mDrawerLayout.setDrawerLockMode(enabled ? DrawerLayout.LOCK_MODE_UNLOCKED
                 : DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
 
         // Order of these statements matter.
@@ -298,10 +320,14 @@
             menu.removeItem(R.id.nav_help);
         }
 
-        final MenuItem allContactsMenu = menu.findItem(R.id.nav_all_contacts);
-        mIdMenuMap.put(R.id.nav_all_contacts, allContactsMenu);
-        if (isAllContactsView()) {
-            updateMenuSelection(allContactsMenu);
+        if (!mShouldShowAccountSwitcher) {
+            final MenuItem allContactsMenu = menu.findItem(R.id.nav_all_contacts);
+            mIdMenuMap.put(R.id.nav_all_contacts, allContactsMenu);
+            if (isAllContactsView()) {
+                updateMenuSelection(allContactsMenu);
+            }
+        } else {
+            menu.removeItem(R.id.nav_all_contacts);
         }
     }
 
@@ -321,9 +347,11 @@
     @Override
     protected void onResume() {
         super.onResume();
-        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
             updateStatusBarBackground();
         }
+        // Restoring recent accounts.
+        mNavigationDrawer.onResume();
     }
 
     public void updateStatusBarBackground() {
@@ -333,11 +361,12 @@
     public void updateStatusBarBackground(int color) {
         if (!CompatUtils.isLollipopCompatible()) return;
         if (color == -1) {
-            mDrawer.setStatusBarBackgroundColor(MaterialColorMapUtils.getStatusBarColor(this));
+            mDrawerLayout.setStatusBarBackgroundColor(
+                    MaterialColorMapUtils.getStatusBarColor(this));
         } else {
-            mDrawer.setStatusBarBackgroundColor(color);
+            mDrawerLayout.setStatusBarBackgroundColor(color);
         }
-        mDrawer.invalidate();
+        mDrawerLayout.invalidate();
         getWindow().setStatusBarColor(Color.TRANSPARENT);
     }
 
@@ -353,6 +382,24 @@
         mToggle.onConfigurationChanged(newConfig);
     }
 
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mNavigationDrawer.onStart();
+    }
+
+    @Override
+    protected void onPause() {
+        mNavigationDrawer.onPause();
+        super.onPause();
+    }
+
+    @Override
+    protected void onStop() {
+        mNavigationDrawer.onStop();
+        super.onStop();
+    }
+
     // Set up fragment manager to load groups and filters.
     protected void loadGroupsAndFilters() {
         final FragmentManager fragmentManager = getFragmentManager();
@@ -393,15 +440,39 @@
     public void onGroupsLoaded(List<GroupListItem> groupListItems) {
         final Menu menu = mNavigationView.getMenu();
         final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
+        if (groupsMenuItem == null) {
+            return;
+        }
+        final SubMenu subMenu = groupsMenuItem.getSubMenu();
+        subMenu.removeGroup(R.id.nav_groups_items);
+
+        mGroupListItems = groupListItems;
+
+        if (mShouldShowAccountSwitcher && mCurrentAccount != null) {
+            updateGroupMenuForAccount(mCurrentAccount);
+        } else {
+            updateGroupMenuForAccount(null);
+        }
+    }
+
+    /**
+     * Update menu items in group section of navigation drawer based on {@link AccountWithDataSet}.
+     * If {@link AccountWithDataSet} is null, then we show groups in all accounts.
+     */
+    public void updateGroupMenuForAccount(AccountWithDataSet account) {
+        mCurrentAccount = account;
+
+        final Menu menu = mNavigationView.getMenu();
+        final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
         final SubMenu subMenu = groupsMenuItem.getSubMenu();
         subMenu.removeGroup(R.id.nav_groups_items);
         mGroupMenuMap = new HashMap<>();
 
         final GroupMetaData groupMetaData = getGroupMetaData();
 
-        if (groupListItems != null) {
+        if (mGroupListItems != null ) {
             // Add each group
-            for (final GroupListItem groupListItem : groupListItems) {
+            for (final GroupListItem groupListItem : getGroupsForCurrentAccount(mCurrentAccount)) {
                 if (GroupUtil.isEmptyFFCGroup(groupListItem)) {
                     continue;
                 }
@@ -425,7 +496,7 @@
                                 updateMenuSelection(menuItem);
                             }
                         });
-                        mDrawer.closeDrawer(GravityCompat.START);
+                        mDrawerLayout.closeDrawer(GravityCompat.START);
                         return true;
                     }
                 });
@@ -450,17 +521,33 @@
                         onCreateGroupMenuItemClicked();
                     }
                 });
-                mDrawer.closeDrawer(GravityCompat.START);
+                mDrawerLayout.closeDrawer(GravityCompat.START);
                 return true;
             }
         });
 
         if (isGroupView() && groupMetaData != null) {
-            updateGroupMenu(groupMetaData);
+            updateGroupMenuCheckedStatus(groupMetaData);
         }
     }
 
-    public void updateGroupMenu(GroupMetaData groupMetaData) {
+    private List<GroupListItem> getGroupsForCurrentAccount(AccountWithDataSet account) {
+        final List<GroupListItem> desiredGroupItems = new ArrayList<>();
+        if (account == null) {
+            desiredGroupItems.addAll(mGroupListItems);
+        } else {
+            for (GroupListItem group : mGroupListItems) {
+                if (TextUtils.equals(mCurrentAccount.name, group.getAccountName())
+                        && TextUtils.equals(mCurrentAccount.type, group.getAccountType())
+                        && TextUtils.equals(mCurrentAccount.dataSet, group.getDataSet())) {
+                    desiredGroupItems.add(group);
+                }
+            }
+        }
+        return desiredGroupItems;
+    }
+
+    public void updateGroupMenuCheckedStatus(GroupMetaData groupMetaData) {
         clearCheckedMenus();
         if (groupMetaData != null && mGroupMenuMap != null
                 && mGroupMenuMap.get(groupMetaData.groupId) != null) {
@@ -500,7 +587,12 @@
         final Account account = extras == null ? null :
                 (Account) extras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
         if (account == null) {
-            selectAccountForNewGroup();
+            if (mShouldShowAccountSwitcher && mCurrentAccount != null) {
+                // Create a new group in current account.
+                onAccountChosen(mCurrentAccount, /* extraArgs */ null);
+            } else {
+                selectAccountForNewGroup();
+            }
         } else {
             final String dataSet = extras == null
                     ? null : extras.getString(Intents.Insert.EXTRA_DATA_SET);
@@ -512,6 +604,11 @@
 
     @Override
     public void onFiltersLoaded(List<ContactListFilter> accountFilterItems) {
+        mAccountFilterItems = accountFilterItems;
+
+        // Don't show accounts in menu if we enable account switcher.
+        if (mShouldShowAccountSwitcher) return;
+
         final AccountDisplayInfoFactory accountDisplayFactory = AccountDisplayInfoFactory.
                 fromListFilters(this, accountFilterItems);
 
@@ -525,7 +622,6 @@
             return;
         }
 
-
         for (int i = 0; i < accountFilterItems.size(); i++) {
             final ContactListFilter filter = accountFilterItems.get(i);
             final AccountDisplayInfo displayableAccount =
@@ -549,7 +645,7 @@
                             updateMenuSelection(menuItem);
                         }
                     });
-                    mDrawer.closeDrawer(GravityCompat.START);
+                    mDrawerLayout.closeDrawer(GravityCompat.START);
                     return true;
                 }
             });
@@ -591,8 +687,21 @@
                 AppCompatActivity.RESULT_OK, intent);
     }
 
+    public void changeFilter(AccountWithDataSet account) {
+        for (ContactListFilter filter : mAccountFilterItems) {
+            if (account.equals(filter.toAccountWithDataSet())) {
+                final Intent intent = new Intent();
+                intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+                AccountFilterUtil.handleAccountFilterResult(mContactListFilterController,
+                        AppCompatActivity.RESULT_OK, intent);
+                clearCheckedMenus();
+                break;
+            }
+        }
+    }
+
     @Override
-    public boolean onNavigationItemSelected(final MenuItem item) {
+    public boolean onNavigationItemSelected(@NonNull final MenuItem item) {
         final int id = item.getItemId();
         mToggle.runWhenIdle(new Runnable() {
             @Override
@@ -617,10 +726,14 @@
             }
         });
 
-        mDrawer.closeDrawer(GravityCompat.START);
+        mDrawerLayout.closeDrawer(GravityCompat.START);
         return true;
     }
 
+    public void closeDrawer() {
+        mDrawerLayout.closeDrawer(GravityCompat.START);
+    }
+
     private Intent createPreferenceIntent() {
         final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
         intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
@@ -629,12 +742,15 @@
     }
 
     public void switchToAllContacts() {
-        resetFilter();
+        if (mShouldShowAccountSwitcher) {
+            clearCheckedMenus();
+        } else {
+            resetFilter();
 
-        final Menu menu = mNavigationView.getMenu();
-        final MenuItem allContacts = menu.findItem(R.id.nav_all_contacts);
-        updateMenuSelection(allContacts);
-
+            final Menu menu = mNavigationView.getMenu();
+            final MenuItem allContacts = menu.findItem(R.id.nav_all_contacts);
+            updateMenuSelection(allContacts);
+        }
         setTitle(getString(R.string.contactsList));
     }
 
@@ -669,6 +785,9 @@
     }
 
     private void setMenuChecked(MenuItem menuItem, boolean checked) {
+        if (menuItem == null) {
+            return;
+        }
         menuItem.setCheckable(checked);
         menuItem.setChecked(checked);
     }
@@ -694,6 +813,7 @@
 
     @Override
     public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
+        if (account == null) return;
         mNewGroupAccount = account;
         GroupNameEditDialogFragment.newInstanceForCreation(
                 mNewGroupAccount, GroupUtil.ACTION_CREATE_GROUP)
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index fe95465..cbf6a69 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -52,6 +52,8 @@
 import com.android.contacts.list.GroupMemberPickerFragment;
 import com.android.contacts.list.JoinContactListFragment;
 import com.android.contacts.list.LegacyPhoneNumberPickerFragment;
+import com.android.contacts.list.MultiSelectEmailAddressesListFragment;
+import com.android.contacts.list.MultiSelectPhoneNumbersListFragment;
 import com.android.contacts.list.MultiSelectContactsListFragment;
 import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener;
 import com.android.contacts.list.OnContactPickerActionListener;
@@ -154,12 +156,10 @@
 
         // Postal address pickers (and legacy pickers) don't support search, so just show
         // "HomeAsUp" button and title.
-        if (mRequest.getActionCode() == ContactsRequest.ACTION_PICK_POSTAL ||
-                mRequest.isLegacyCompatibilityMode()) {
-            mIsSearchSupported = false;
-        } else {
-            mIsSearchSupported = true;
-        }
+        mIsSearchSupported = mRequest.getActionCode() != ContactsRequest.ACTION_PICK_POSTAL
+                && mRequest.getActionCode() != ContactsRequest.ACTION_PICK_EMAILS
+                && mRequest.getActionCode() != ContactsRequest.ACTION_PICK_PHONES
+                && !mRequest.isLegacyCompatibilityMode();
         configureSearchMode();
     }
 
@@ -226,6 +226,14 @@
                 titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
+            case ContactsRequest.ACTION_PICK_PHONES: {
+                titleResId = R.string.pickerSelectContactsActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_EMAILS: {
+                titleResId = R.string.pickerSelectContactsActivityTitle;
+                break;
+            }
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
                 titleResId = R.string.callShortcutActivityTitle;
                 break;
@@ -305,6 +313,17 @@
                 break;
             }
 
+            case ContactsRequest.ACTION_PICK_PHONES: {
+                mListFragment = new MultiSelectPhoneNumbersListFragment();
+                mListFragment.setArguments(getIntent().getExtras());
+                break;
+            }
+
+            case ContactsRequest.ACTION_PICK_EMAILS: {
+                mListFragment = new MultiSelectEmailAddressesListFragment();
+                mListFragment.setArguments(getIntent().getExtras());
+                break;
+            }
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
                 fragment.setShortcutAction(Intent.ACTION_CALL);
@@ -387,6 +406,10 @@
         } else if (mListFragment instanceof EmailAddressPickerFragment) {
             ((EmailAddressPickerFragment) mListFragment).setOnEmailAddressPickerActionListener(
                     new EmailAddressPickerActionListener());
+        } else if (mListFragment instanceof MultiSelectEmailAddressesListFragment) {
+            ((MultiSelectEmailAddressesListFragment) mListFragment).setCheckBoxListListener(this);
+        } else if (mListFragment instanceof MultiSelectPhoneNumbersListFragment) {
+            ((MultiSelectPhoneNumbersListFragment) mListFragment).setCheckBoxListListener(this);
         } else if (mListFragment instanceof JoinContactListFragment) {
             ((JoinContactListFragment) mListFragment).setOnContactPickerActionListener(
                     new JoinContactActionListener());
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index a73d8e7..4740cf4 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -286,7 +286,7 @@
         if (isGroupDeleteAction(intent.getAction())) {
             toast(R.string.groupDeletedToast);
             popSecondLevel();
-            mCurrentView = ContactsView.ALL_CONTACTS;
+            resetContactsView();
             showFabWithAnimation(/* showFab */ true);
             return;
         }
@@ -516,6 +516,9 @@
         final int providerStatus = mProviderStatusWatcher.getProviderStatus();
         final Menu menu = mNavigationView.getMenu();
         final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
+        if (groupsMenuItem == null) {
+            return;
+        }
         final SubMenu subMenu = groupsMenuItem.getSubMenu();
 
         // Reload groups and filters if provider status changes to "normal" and there's no groups
@@ -619,8 +622,8 @@
         }
 
         // Handle the back event in drawer first.
-        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
-            mDrawer.closeDrawer(GravityCompat.START);
+        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            mDrawerLayout.closeDrawer(GravityCompat.START);
             return;
         }
 
@@ -687,7 +690,8 @@
             return true;
         }
 
-        if (!AccountFilterUtil.isAllContactsFilter(mContactListFilterController.getFilter())
+        if (!mShouldShowAccountSwitcher
+                && !AccountFilterUtil.isAllContactsFilter(mContactListFilterController.getFilter())
                 && !mAllFragment.isHidden()) {
             // If mAllFragment is hidden, then mContactsUnavailableFragment is visible so we
             // don't need to switch to all contacts.
@@ -765,6 +769,17 @@
         super.onFilterMenuItemClicked(intent);
     }
 
+    @Override
+    public void changeFilter(AccountWithDataSet account) {
+        super.changeFilter(account);
+        // We must pop second level first to "restart" mAllFragment, before changing filter.
+        if (isInSecondLevel()) {
+            popSecondLevel();
+            showFabWithAnimation(/* showFab */ true);
+        }
+        mCurrentView = ContactsView.ACCOUNT_VIEW;
+    }
+
     private void switchToOrUpdateGroupView(String action) {
         // If group fragment is active and visible, we simply update it.
         if (mMembersFragment != null && !mMembersFragment.isInactive()) {
@@ -827,7 +842,7 @@
             popSecondLevel();
         }
         mShouldSwitchToAllContacts = false;
-        mCurrentView = ContactsView.ALL_CONTACTS;
+        resetContactsView();
         showFabWithAnimation(/* showFab */ true);
         mAllFragment.scrollToTop();
 
diff --git a/src/com/android/contacts/common/Experiments.java b/src/com/android/contacts/common/Experiments.java
index 5de4d5d..65e14e6 100644
--- a/src/com/android/contacts/common/Experiments.java
+++ b/src/com/android/contacts/common/Experiments.java
@@ -21,6 +21,11 @@
 public final class Experiments {
 
     /**
+     * Experiment to enable account switcher
+     */
+    public static final String ACCOUNT_SWITCHER = "Account__account_switcher_enable";
+
+    /**
      * Experiment to enable assistant in left navigation drawer.
      */
     public static final String ASSISTANT = "Assistant__enable_assistant";
@@ -73,6 +78,11 @@
      */
     public static final String SEARCH_YENTA_TIMEOUT_MILLIS = "Search__yenta_timeout";
 
+    /**
+     * The options for sending email/messages to groups and selections
+     */
+    public static final String SEND_TO_GROUP = "Groups__send_to_group";
+
     private Experiments() {
     }
 }
diff --git a/src/com/android/contacts/common/list/ContactListFilter.java b/src/com/android/contacts/common/list/ContactListFilter.java
index c6baf41..e99de4d 100644
--- a/src/com/android/contacts/common/list/ContactListFilter.java
+++ b/src/com/android/contacts/common/list/ContactListFilter.java
@@ -394,7 +394,7 @@
 
     /**
      * Returns true if this ContactListFilter contains at least one Google account.
-     * (see {@link #isGoogleAccountType)
+     * (see {@link #isGoogleAccountType )
      */
     public boolean isSyncable(List<AccountWithDataSet> accounts) {
         // TODO(samchen): Check FILTER_TYPE_CUSTOM
@@ -407,8 +407,7 @@
                 // If we're showing all contacts and there is any Google account on the device then
                 // we're syncable.
                 for (AccountWithDataSet account : accounts) {
-                    if (GoogleAccountType.ACCOUNT_TYPE.equals(account.type)
-                            && account.dataSet == null) {
+                    if (account.isWritableGoogleAccount()) {
                         return true;
                     }
                 }
@@ -418,7 +417,7 @@
     }
 
     /**
-     * Returns the Google accounts (see {@link #isGoogleAccountType) for this ContactListFilter.
+     * Returns the Google accounts (see {@link #isGoogleAccountType ) for this ContactListFilter.
      */
     public List<Account> getSyncableAccounts(List<AccountWithDataSet> accounts) {
         final List<Account> syncableAccounts = new ArrayList<>();
@@ -429,8 +428,7 @@
                 || filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
             if (accounts != null && accounts.size() > 0) {
                 for (AccountWithDataSet account : accounts) {
-                    if (GoogleAccountType.ACCOUNT_TYPE.equals(account.type)
-                            && account.dataSet == null) {
+                    if (account.isWritableGoogleAccount()) {
                         syncableAccounts.add(new Account(account.name, account.type));
                     }
                 }
diff --git a/src/com/android/contacts/common/list/ContactListFilterController.java b/src/com/android/contacts/common/list/ContactListFilterController.java
index 4d3d6ad..5ceef18 100644
--- a/src/com/android/contacts/common/list/ContactListFilterController.java
+++ b/src/com/android/contacts/common/list/ContactListFilterController.java
@@ -81,6 +81,8 @@
      * which case, we should switch to the last saved filter in {@link SharedPreferences}.
      */
     public abstract void checkFilterValidity(boolean notifyListeners);
+
+    public abstract Context getContext();
 }
 
 /**
@@ -196,4 +198,9 @@
                 mFilter.accountName, mFilter.accountType, mFilter.dataSet);
         return accountTypeManager.contains(filterAccount, /* contactWritableOnly */ false);
     }
+
+    @Override
+    public Context getContext() {
+        return mContext;
+    }
 }
diff --git a/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java b/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
index dbfd70e..b08e367 100644
--- a/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
+++ b/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
@@ -23,6 +23,8 @@
 import android.view.View.OnClickListener;
 import android.widget.CheckBox;
 
+import com.android.contacts.group.GroupUtil;
+
 import java.util.TreeSet;
 
 /**
@@ -84,17 +86,15 @@
         return mSelectedContactIds;
     }
 
+    public boolean hasSelectedItems() {
+        return mSelectedContactIds.size() > 0;
+    }
+
     /**
      * Returns the selected contacts as an array.
      */
     public long[] getSelectedContactIdsArray() {
-        final Long[] contactIds = mSelectedContactIds.toArray(
-                new Long[mSelectedContactIds.size()]);
-        final long[] result = new long[contactIds.length];
-        for (int i = 0; i < contactIds.length; i++) {
-            result[i] = contactIds[i];
-        }
-        return result;
+        return GroupUtil.convertLongSetToLongArray(mSelectedContactIds);
     }
 
     /**
diff --git a/src/com/android/contacts/common/model/AccountTypeManager.java b/src/com/android/contacts/common/model/AccountTypeManager.java
index d91e73b..4a39bea 100644
--- a/src/com/android/contacts/common/model/AccountTypeManager.java
+++ b/src/com/android/contacts/common/model/AccountTypeManager.java
@@ -309,13 +309,13 @@
             return -1;
         } else if (a.name == null || a.type == null) {
             return 1;
-        } else if (isWritableGoogleAccount(a) && a.equals(mDefaultAccount)) {
+        } else if (a.isWritableGoogleAccount() && a.equals(mDefaultAccount)) {
             return -1;
-        } else if (isWritableGoogleAccount(b) && b.equals(mDefaultAccount)) {
+        } else if (b.isWritableGoogleAccount() && b.equals(mDefaultAccount)) {
             return 1;
-        } else if (isWritableGoogleAccount(a) && !isWritableGoogleAccount(b)) {
+        } else if (a.isWritableGoogleAccount() && !b.isWritableGoogleAccount()) {
             return -1;
-        } else if (isWritableGoogleAccount(b) && !isWritableGoogleAccount(a)) {
+        } else if (b.isWritableGoogleAccount() && !a.isWritableGoogleAccount()) {
             return 1;
         } else {
             int diff = a.name.compareToIgnoreCase(b.name);
@@ -335,10 +335,6 @@
             }
         }
     }
-
-    private static boolean isWritableGoogleAccount(AccountWithDataSet account) {
-        return GoogleAccountType.ACCOUNT_TYPE.equals(account.type) && account.dataSet == null;
-    }
 }
 
 class AccountTypeManagerImpl extends AccountTypeManager
diff --git a/src/com/android/contacts/common/model/account/AccountDisplayInfo.java b/src/com/android/contacts/common/model/account/AccountDisplayInfo.java
index f68fdd5..c5463d6 100644
--- a/src/com/android/contacts/common/model/account/AccountDisplayInfo.java
+++ b/src/com/android/contacts/common/model/account/AccountDisplayInfo.java
@@ -65,7 +65,7 @@
     }
 
     public boolean isGoogleAccount() {
-        return GoogleAccountType.ACCOUNT_TYPE.equals(mSource.type) && mSource.dataSet == null;
+        return mSource.isWritableGoogleAccount();
     }
 
     public boolean isDeviceAccount() {
diff --git a/src/com/android/contacts/common/model/account/AccountWithDataSet.java b/src/com/android/contacts/common/model/account/AccountWithDataSet.java
index 37f6652..38b9eee 100644
--- a/src/com/android/contacts/common/model/account/AccountWithDataSet.java
+++ b/src/com/android/contacts/common/model/account/AccountWithDataSet.java
@@ -79,6 +79,10 @@
         mAccountTypeWithDataSet = AccountTypeWithDataSet.get(type, dataSet);
     }
 
+    public boolean isWritableGoogleAccount() {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(type) && dataSet == null;
+    }
+
     public boolean isNullAccount() {
         return name == null && type == null && dataSet == null;
     }
diff --git a/src/com/android/contacts/common/preference/ContactsPreferences.java b/src/com/android/contacts/common/preference/ContactsPreferences.java
index 8865e91..db16025 100644
--- a/src/com/android/contacts/common/preference/ContactsPreferences.java
+++ b/src/com/android/contacts/common/preference/ContactsPreferences.java
@@ -21,7 +21,6 @@
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
@@ -70,6 +69,10 @@
 
     public static final boolean PREF_DISPLAY_ONLY_PHONES_DEFAULT = false;
 
+    private static final String NAV_DRAWER_FIRST_RECENT = "NavigationDrawer_first_recent";
+
+    private static final String NAV_DRAWER_SECOND_RECENT = "NavigationDrawer_second_recent";
+
     /**
      * Value to use when a preference is unassigned and needs to be read from the shared preferences
      */
@@ -235,6 +238,26 @@
         return false;
     }
 
+    public void setRecentAccounts(@NonNull List<String> recentAccounts) {
+        final int size = recentAccounts.size();
+        final Editor editor = mPreferences.edit();
+        editor.putString(NAV_DRAWER_FIRST_RECENT, size > 0 ? recentAccounts.get(0) : null);
+        editor.putString(NAV_DRAWER_SECOND_RECENT, size > 1 ? recentAccounts.get(1) : null);
+        editor.commit();
+    }
+
+    public void getRecentAccounts(List<String> recentAccounts) {
+        recentAccounts.clear();
+        String recent = mPreferences.getString(NAV_DRAWER_FIRST_RECENT, null);
+        if (recent != null) {
+            recentAccounts.add(recent);
+        }
+        recent = mPreferences.getString(NAV_DRAWER_SECOND_RECENT, null);
+        if (recent != null) {
+            recentAccounts.add(recent);
+        }
+    }
+
     public void registerChangeListener(ChangeListener listener) {
         if (mListener != null) unregisterChangeListener();
 
diff --git a/src/com/android/contacts/common/util/AccountFilterUtil.java b/src/com/android/contacts/common/util/AccountFilterUtil.java
index b89e8b9..dbe8659 100644
--- a/src/com/android/contacts/common/util/AccountFilterUtil.java
+++ b/src/com/android/contacts/common/util/AccountFilterUtil.java
@@ -32,6 +32,7 @@
 
 import com.android.contacts.R;
 import com.android.contacts.activities.ContactEditorActivity;
+import com.android.contacts.common.Experiments;
 import com.android.contacts.common.list.AccountFilterActivity;
 import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.ContactListFilterController;
@@ -42,6 +43,7 @@
 import com.android.contacts.common.model.account.AccountWithDataSet;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contactsbind.ObjectFactory;
+import com.android.contactsbind.experiments.Flags;
 
 import com.google.common.collect.Lists;
 
@@ -89,8 +91,8 @@
             if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
                 filterController.selectCustomFilter();
             } else {
-                filterController.setContactListFilter(filter, /* persistent */
-                        filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+                filterController.setContactListFilter(filter,
+                        shouldPersistFilter(filterController.getContext(), filter));
             }
         }
     }
@@ -132,6 +134,7 @@
     private static List<ContactListFilter> loadAccountFilters(Context context,
             DeviceLocalAccountTypeFactory deviceAccountTypeFactory) {
         final ArrayList<ContactListFilter> accountFilters = Lists.newArrayList();
+
         final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(context);
         final List<AccountWithDataSet> accounts = accountTypeManager.getSortedAccounts(
                 /* defaultAccount */ getDefaultAccount(context), /* contactWritableOnly */ true);
@@ -235,4 +238,11 @@
         return account.withFormattedName(context, R.string.title_from_other_accounts)
                 .getNameLabel().toString();
     }
+
+    public static boolean shouldPersistFilter(Context context, ContactListFilter filter) {
+        if (Flags.getInstance(context).getBoolean(Experiments.ACCOUNT_SWITCHER)) {
+            return true;
+        }
+        return filter != null && filter.isContactsFilterType();
+    }
 }
diff --git a/src/com/android/contacts/common/util/DeviceLocalAccountTypeFactory.java b/src/com/android/contacts/common/util/DeviceLocalAccountTypeFactory.java
index 040a6b4..e54b31f 100644
--- a/src/com/android/contacts/common/util/DeviceLocalAccountTypeFactory.java
+++ b/src/com/android/contacts/common/util/DeviceLocalAccountTypeFactory.java
@@ -52,7 +52,6 @@
 
         public static boolean isLocalAccountType(DeviceLocalAccountTypeFactory factory,
                 String type) {
-
             return isLocalAccountType(factory.classifyAccount(type));
         }
     }
diff --git a/src/com/android/contacts/common/util/NavigationDrawer.java b/src/com/android/contacts/common/util/NavigationDrawer.java
new file mode 100644
index 0000000..c60f029
--- /dev/null
+++ b/src/com/android/contacts/common/util/NavigationDrawer.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+package com.android.contacts.common.util;
+
+import android.support.design.widget.NavigationView;
+import android.support.v7.app.AppCompatActivity;
+
+import com.android.contacts.R;
+
+public interface NavigationDrawer {
+    void onStart();
+    void onResume();
+    void onPause();
+    void onStop();
+    NavigationView getNavigationView();
+
+    class Default implements NavigationDrawer {
+
+        AppCompatActivity mActivity;
+
+        public Default(AppCompatActivity activity) {
+            mActivity = activity;
+        }
+
+        @Override
+        public void onStart() {}
+
+        @Override
+        public void onResume() {}
+
+        @Override
+        public void onPause() {}
+
+        @Override
+        public void onStop() {}
+
+        @Override
+        public NavigationView getNavigationView() {
+            return (NavigationView) mActivity.findViewById(R.id.nav_view);
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 5f83be7..e013da4 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -615,10 +615,7 @@
                 Lists.<RawContact>newArrayList() : Lists.newArrayList(mRawContacts));
         // NOTE: mGroupMetaData is not saved
 
-        if (hasValidState()) {
-            // Store entities with modifications
-            outState.putParcelable(KEY_EDIT_STATE, mState);
-        }
+        outState.putParcelable(KEY_EDIT_STATE, mState);
         outState.putInt(KEY_STATUS, mStatus);
         outState.putBoolean(KEY_HAS_NEW_CONTACT, mHasNewContact);
         outState.putBoolean(KEY_NEW_CONTACT_READY, mNewContactDataReady);
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index 30f339c..4f157cd 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -17,6 +17,7 @@
 
 import android.app.Activity;
 import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ContentResolver;
 import android.content.CursorLoader;
 import android.content.Intent;
 import android.content.Loader;
@@ -26,7 +27,9 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -46,6 +49,8 @@
 import com.android.contacts.GroupMetaDataLoader;
 import com.android.contacts.R;
 import com.android.contacts.activities.ActionBarAdapter;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.Experiments;
 import com.android.contacts.common.list.ContactsSectionIndexer;
 import com.android.contacts.common.list.MultiSelectEntryContactListAdapter.DeleteContactListener;
 import com.android.contacts.common.logging.ListEvent;
@@ -59,10 +64,14 @@
 import com.android.contacts.list.ContactsRequest;
 import com.android.contacts.list.MultiSelectContactsListFragment;
 import com.android.contacts.list.UiIntentActions;
+import com.android.contactsbind.experiments.Flags;
+import com.google.common.primitives.Longs;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /** Displays the members of a group. */
@@ -81,6 +90,7 @@
     private static final int LOADER_GROUP_METADATA = 0;
     private static final int MSG_FAIL_TO_LOAD = 1;
     private static final int RESULT_GROUP_ADD_MEMBER = 100;
+    private static final int RESULT_SEND_TO_SELECTION = 200;
 
     /** Filters out duplicate contacts. */
     private class FilterCursorWrapper extends CursorWrapper {
@@ -257,7 +267,13 @@
         final boolean isSelectionMode = mActionBarAdapter.isSelectionMode();
         final boolean isGroupEditable = mGroupMetaData != null && mGroupMetaData.editable;
         final boolean isGroupReadOnly = mGroupMetaData != null && mGroupMetaData.readOnly;
+        final boolean experimentFlagSet =
+                Flags.getInstance(getContext()).getBoolean(Experiments.SEND_TO_GROUP);
 
+        setVisible(menu, R.id.menu_multi_send_email, !mIsEditMode && !isGroupEmpty()
+                && experimentFlagSet);
+        setVisible(menu, R.id.menu_multi_send_message, !mIsEditMode && !isGroupEmpty()
+                && experimentFlagSet);
         setVisible(menu, R.id.menu_add, isGroupEditable && !isSelectionMode);
         setVisible(menu, R.id.menu_rename_group, !isGroupReadOnly && !isSelectionMode);
         setVisible(menu, R.id.menu_delete_group, !isGroupReadOnly && !isSelectionMode);
@@ -278,6 +294,171 @@
         }
     }
 
+    /**
+     * Helper class for cp2 query used to look up all contact's emails and phone numbers.
+     */
+    private static abstract class Query {
+        public static final String EMAIL_SELECTION =
+                ContactsContract.Data.MIMETYPE + "='"
+                        + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "'";
+
+        public static final String PHONE_SELECTION =
+                ContactsContract.Data.MIMETYPE + "='"
+                        + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'";
+
+        public static final String[] EMAIL_PROJECTION = {
+                ContactsContract.Data.CONTACT_ID,
+                ContactsContract.CommonDataKinds.Email._ID,
+                ContactsContract.Data.IS_SUPER_PRIMARY,
+                ContactsContract.Data.DATA1
+        };
+
+        public static final String[] PHONE_PROJECTION = {
+                ContactsContract.Data.CONTACT_ID,
+                ContactsContract.CommonDataKinds.Phone._ID,
+                ContactsContract.Data.IS_SUPER_PRIMARY,
+                ContactsContract.Data.DATA1
+        };
+
+        public static final int CONTACT_ID = 0;
+        public static final int ITEM_ID = 1;
+        public static final int PRIMARY = 2;
+        public static final int DATA1 = 3;
+    }
+
+    private List<String> getSendToDataForIds(long[] ids, String scheme) {
+        final List<String> items = new ArrayList<>();
+        final String sIds = GroupUtil.convertArrayToString(ids);
+        final String select = (ContactsUtils.SCHEME_MAILTO.equals(scheme)
+                ? Query.EMAIL_SELECTION
+                + " AND " + ContactsContract.CommonDataKinds.Email._ID + " IN (" + sIds + ")"
+                : Query.PHONE_SELECTION
+                + " AND " + ContactsContract.CommonDataKinds.Phone._ID + " IN (" + sIds + ")");
+        final ContentResolver contentResolver = getContext().getContentResolver();
+        final Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
+                ContactsUtils.SCHEME_MAILTO.equals(scheme)
+                    ? Query.EMAIL_PROJECTION
+                    : Query.PHONE_PROJECTION,
+                select, null, null);
+
+        if (cursor == null) {
+            return items;
+        }
+
+        try {
+            cursor.moveToPosition(-1);
+            while (cursor.moveToNext()) {
+                final String data = cursor.getString(Query.DATA1);
+
+                if (!TextUtils.isEmpty(data)) {
+                    items.add(data);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+
+        return items;
+    }
+
+    private void sendToGroup(long[] ids, String sendScheme, String title) {
+        if(ids == null || ids.length == 0) return;
+
+        // Get emails or phone numbers
+        // encounteredIds <contact_id, <item_id, is_super_primary>>
+        final Map<String, Map<String, Boolean>> encounteredIds = new HashMap<>();
+        // primaryItems <contact_id, has_super_primary>
+        final Map<String, Boolean> primaryItems = new HashMap<>();
+        // itemList <item_data>
+        final List<String> itemList = new ArrayList<>();
+        final String sIds = GroupUtil.convertArrayToString(ids);
+        final String select = (ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                ? Query.EMAIL_SELECTION
+                : Query.PHONE_SELECTION)
+                + " AND " + ContactsContract.Data.CONTACT_ID + " IN (" + sIds + ")";
+        final ContentResolver contentResolver = getContext().getContentResolver();
+        final Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
+                ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                        ? Query.EMAIL_PROJECTION
+                        : Query.PHONE_PROJECTION,
+                select, null, null);
+
+        if (cursor == null) {
+            return;
+        }
+
+        try {
+            cursor.moveToPosition(-1);
+            while (cursor.moveToNext()) {
+                final String contactId = cursor.getString(Query.CONTACT_ID);
+                final String itemId = cursor.getString(Query.ITEM_ID);
+                final boolean isPrimary = cursor.getInt(Query.PRIMARY) != 0;
+                final String data = cursor.getString(Query.DATA1);
+
+                if (!encounteredIds.containsKey(contactId)) {
+                    encounteredIds.put(contactId, new HashMap<String, Boolean>());
+                }
+                final Boolean prevHasSuperPrimary = primaryItems.get(contactId);
+                final boolean hasPrimary = prevHasSuperPrimary == null
+                        ? isPrimary
+                        : prevHasSuperPrimary || isPrimary;
+                primaryItems.put(contactId, hasPrimary);
+
+                if (!TextUtils.isEmpty(data)) {
+                    final Map<String, Boolean> itemMap = encounteredIds.get(contactId);
+                    itemMap.put(itemId, isPrimary);
+                    itemList.add(data);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+
+        // Start picker if a contact has multiple items with no superPrimary
+        for (Map.Entry<String, Map<String, Boolean>> i : encounteredIds.entrySet()) {
+            boolean hasSuperPrimary = primaryItems.get(i.getKey());
+            if (i.getValue().size() > 1 && !hasSuperPrimary) {
+                // Build list of default selected item ids
+                final List<Long> defaultSelection = new ArrayList<>();
+                for (Map.Entry<String, Map<String, Boolean>> j : encounteredIds.entrySet()) {
+                    for (Map.Entry<String, Boolean> k : j.getValue().entrySet()) {
+                        final String itemId = k.getKey();
+                        if (j.getValue().size() == 1 || k.getValue()) {
+                            defaultSelection.add(Long.parseLong(itemId));
+                        }
+                    }
+                }
+                final long[] defaultSelectionArray = Longs.toArray(defaultSelection);
+                startSendToSelectionPickerActivity(ids, defaultSelectionArray, sendScheme, title);
+                return;
+            }
+        }
+
+        if (itemList.size() == 0 || encounteredIds.size() < ids.length) {
+            Toast.makeText(getContext(), ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                            ? getString(R.string.groupSomeContactsNoEmailsToast)
+                            : getString(R.string.groupSomeContactsNoPhonesToast),
+                    Toast.LENGTH_LONG).show();
+        }
+
+        if (itemList.size() == 0) {
+            return;
+        }
+
+        final String itemsString = TextUtils.join(",", itemList);
+        startSendToSelectionActivity(itemsString, sendScheme, title);
+    }
+
+    private void startSendToSelectionActivity(String listItems, String sendScheme, String title) {
+        startActivity(GroupUtil.createSendToSelectionIntent(listItems, sendScheme, title));
+    }
+
+    private void startSendToSelectionPickerActivity(long[] ids, long[] defaultSelection,
+            String sendScheme, String title) {
+        startActivityForResult(GroupUtil.createSendToSelectionPickerIntent(getContext(), ids,
+                defaultSelection, sendScheme, title), RESULT_SEND_TO_SELECTION);
+    }
+
     private void startGroupAddMemberActivity() {
         startActivityForResult(GroupUtil.createPickMemberIntent(getContext(), mGroupMetaData,
                 getMemberContactIds()), RESULT_GROUP_ADD_MEMBER);
@@ -294,6 +475,22 @@
                 startGroupAddMemberActivity();
                 return true;
             }
+            case R.id.menu_multi_send_email: {
+                final long[] ids = mActionBarAdapter.isSelectionMode()
+                        ? getAdapter().getSelectedContactIdsArray()
+                        : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+                sendToGroup(ids, ContactsUtils.SCHEME_MAILTO,
+                        getString(R.string.menu_sendEmailOption));
+                return true;
+            }
+            case R.id.menu_multi_send_message: {
+                final long[] ids = mActionBarAdapter.isSelectionMode()
+                        ? getAdapter().getSelectedContactIdsArray()
+                        : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+                sendToGroup(ids, ContactsUtils.SCHEME_SMSTO,
+                        getString(R.string.menu_sendMessageOption));
+                return true;
+            }
             case R.id.menu_rename_group: {
                 GroupNameEditDialogFragment.newInstanceForUpdate(
                         new AccountWithDataSet(mGroupMetaData.accountName,
@@ -333,22 +530,37 @@
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == RESULT_GROUP_ADD_MEMBER && resultCode ==
-                Activity.RESULT_OK && data != null) {
-            long[] contactIds = data.getLongArrayExtra(
-                    UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY);
-            if (contactIds == null) {
-                final long contactId = data.getLongExtra(
-                        UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, -1);
-                if (contactId > -1) {
-                    contactIds = new long[1];
-                    contactIds[0] = contactId;
+        if (resultCode != Activity.RESULT_OK || data == null) {
+            return;
+        }
+        switch(requestCode) {
+            case RESULT_GROUP_ADD_MEMBER: {
+                long[] contactIds = data.getLongArrayExtra(
+                        UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY);
+                if (contactIds == null) {
+                    final long contactId = data.getLongExtra(
+                            UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, -1);
+                    if (contactId > -1) {
+                        contactIds = new long[1];
+                        contactIds[0] = contactId;
+                    }
                 }
+                new UpdateGroupMembersAsyncTask(
+                        UpdateGroupMembersAsyncTask.TYPE_ADD,
+                        getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
+                        mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
+                break;
             }
-            new UpdateGroupMembersAsyncTask(
-                    UpdateGroupMembersAsyncTask.TYPE_ADD,
-                    getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
-                    mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
+            case RESULT_SEND_TO_SELECTION: {
+                final long[] ids = data.getLongArrayExtra(
+                        UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY);
+                final String sendScheme = data.getStringExtra(UiIntentActions.SELECTION_SEND_SCHEME);
+                final String sendTitle = data.getStringExtra(UiIntentActions.SELECTION_SEND_TITLE);
+                final List<String> items = getSendToDataForIds(ids, sendScheme);
+                final String list = TextUtils.join(",", items);
+                startSendToSelectionActivity(list, sendScheme, sendTitle);
+                break;
+            }
         }
     }
 
@@ -549,7 +761,7 @@
         maybeAttachCheckBoxListener();
 
         mActivity.setTitle(mGroupMetaData.groupName);
-        mActivity.updateGroupMenu(mGroupMetaData);
+        mActivity.updateGroupMenuCheckedStatus(mGroupMetaData);
         mActivity.invalidateOptionsMenu();
 
         // Start loading the group members
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
index 1a99a65..dc85152 100644
--- a/src/com/android/contacts/group/GroupUtil.java
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -21,12 +21,14 @@
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
+import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Groups;
 import android.text.TextUtils;
 
 import com.android.contacts.GroupListLoader;
 import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.list.ContactsSectionIndexer;
 import com.android.contacts.common.model.account.GoogleAccountType;
 import com.android.contacts.list.UiIntentActions;
@@ -98,6 +100,30 @@
                 isFirstGroupInAccount, memberCount, isReadOnly, systemId);
     }
 
+    /** Returns an Intent to send emails/phones to some activity/app */
+    public static Intent createSendToSelectionIntent(
+            String itemsList, String sendScheme, String title) {
+        final Intent intent = new Intent(Intent.ACTION_SENDTO,
+                Uri.fromParts(sendScheme, itemsList, null));
+        return Intent.createChooser(intent, title);
+    }
+
+    /** Returns an Intent to pick emails/phones to send to selection (or group) */
+    public static Intent createSendToSelectionPickerIntent(Context context, long[] ids,
+            long[] defaultSelection, String sendScheme, String title) {
+        final Intent intent = new Intent(context, ContactSelectionActivity.class);
+        intent.setAction(UiIntentActions.ACTION_SELECT_ITEMS);
+        intent.setType(ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                ? ContactsContract.CommonDataKinds.Email.CONTENT_TYPE
+                : ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
+        intent.putExtra(UiIntentActions.SELECTION_ITEM_LIST, ids);
+        intent.putExtra(UiIntentActions.SELECTION_DEFAULT_SELECTION, defaultSelection);
+        intent.putExtra(UiIntentActions.SELECTION_SEND_SCHEME, sendScheme);
+        intent.putExtra(UiIntentActions.SELECTION_SEND_TITLE, title);
+
+        return intent;
+    }
+
     /** Returns an Intent to pick contacts to add to a group. */
     public static Intent createPickMemberIntent(Context context,
             GroupMetaData groupMetaData, ArrayList<String> memberContactIds) {
@@ -111,6 +137,33 @@
         return intent;
     }
 
+    public static String convertArrayToString(long[] list) {
+        if (list == null || list.length == 0) return "";
+        return Arrays.toString(list).replace("[", "").replace("]", "");
+    }
+
+    public static long[] convertLongSetToLongArray(Set<Long> set) {
+        final Long[] contactIds = set.toArray(new Long[set.size()]);
+        final long[] result = new long[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            result[i] = contactIds[i];
+        }
+        return result;
+    }
+
+    public static long[] convertStringSetToLongArray(Set<String> set) {
+        final String[] contactIds = set.toArray(new String[set.size()]);
+        final long[] result = new long[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            try {
+                result[i] = Long.parseLong(contactIds[i]);
+            } catch (NumberFormatException e) {
+                result[i] = -1;
+            }
+        }
+        return result;
+    }
+
     /**
      * Returns true if it's an empty and read-only group and the system ID of
      * the group is one of "Friends", "Family" and "Coworkers".
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index 8e93baf..b110605 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -74,6 +74,13 @@
         } else if (UiIntentActions.LIST_GROUP_ACTION.equals(action)) {
             request.setActionCode(ContactsRequest.ACTION_GROUP);
             // We no longer support UiIntentActions.GROUP_NAME_EXTRA_KEY
+        } else if (UiIntentActions.ACTION_SELECT_ITEMS.equals(action)) {
+            final String resolvedType = intent.resolveType(mContext);
+            if (Phone.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONES);
+            } else if (Email.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_EMAILS);
+            }
         } else if (Intent.ACTION_PICK.equals(action)) {
             final String resolvedType = intent.resolveType(mContext);
             if (Contacts.CONTENT_TYPE.equals(resolvedType)) {
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
index de6a4ba..70ce80d 100644
--- a/src/com/android/contacts/list/ContactsRequest.java
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -78,6 +78,12 @@
     /** Show all postal addresses and pick them when clicking */
     public static final int ACTION_PICK_EMAIL = 105;
 
+    /** Show a list of emails for selected contacts and select them when clicking */
+    public static final int ACTION_PICK_EMAILS = 106;
+
+    /** Show a list of phones for selected contacts and select them when clicking */
+    public static final int ACTION_PICK_PHONES = 107;
+
     /** Show all contacts and create a shortcut for the picked contact */
     public static final int ACTION_CREATE_SHORTCUT_CONTACT = 110;
 
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 7a99705..8143b9e 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -29,6 +29,7 @@
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -72,8 +73,13 @@
 import com.android.contacts.common.logging.Logger;
 import com.android.contacts.common.logging.ScreenEvent;
 import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.account.AccountDisplayInfo;
+import com.android.contacts.common.model.account.AccountDisplayInfoFactory;
+import com.android.contacts.common.model.account.AccountType;
 import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.contacts.common.util.DeviceLocalAccountTypeFactory;
 import com.android.contacts.common.util.ImplicitIntentsUtil;
 import com.android.contacts.interactions.ContactDeletionInteraction;
 import com.android.contacts.interactions.ContactMultiDeletionInteraction;
@@ -83,6 +89,7 @@
 import com.android.contacts.util.SyncUtil;
 import com.android.contactsbind.experiments.Flags;
 import com.android.contactsbind.FeatureHighlightHelper;
+import com.android.contactsbind.ObjectFactory;
 
 import java.util.List;
 import java.util.Locale;
@@ -154,6 +161,7 @@
     private ContactsDrawerActivity mActivity;
     private ContactsRequest mContactsRequest;
     private ContactListFilterController mContactListFilterController;
+    private DeviceLocalAccountTypeFactory mDeviceLocalFactory;
 
     private final ActionBarAdapter.Listener mActionBarListener = new ActionBarAdapter.Listener() {
         @Override
@@ -449,13 +457,14 @@
         mIsRecreatedInstance = (savedState != null);
         mContactListFilterController = ContactListFilterController.getInstance(getContext());
         mContactListFilterController.checkFilterValidity(false);
-        // Use FILTER_TYPE_ALL_ACCOUNTS filter if the instance is not a re-created one.
-        // This is useful when user upgrades app while an account filter was
-        // stored in sharedPreference in a previous version of Contacts app.
-        final ContactListFilter filter = mIsRecreatedInstance
-                ? getFilter()
-                : AccountFilterUtil.createContactsFilter(getContext());
-        setContactListFilter(filter);
+        mDeviceLocalFactory = ObjectFactory.getDeviceLocalAccountTypeFactory(getContext());
+        if (!Flags.getInstance(getContext()).getBoolean(Experiments.ACCOUNT_SWITCHER)
+                && !mIsRecreatedInstance) {
+            // Use FILTER_TYPE_ALL_ACCOUNTS filter if the instance is not a re-created one.
+            // This is useful when user upgrades app while an account filter was
+            // stored in sharedPreference in a previous version of Contacts app.
+            setContactListFilter(AccountFilterUtil.createContactsFilter(getContext()));
+        }
     }
 
     @Override
@@ -953,7 +962,7 @@
      */
     private void setContactListFilter(ContactListFilter filter) {
         mContactListFilterController.setContactListFilter(filter,
-                /* persistent */ isAllContactsFilter(filter));
+                AccountFilterUtil.shouldPersistFilter(getContext(), filter));
     }
 
     @Override
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
new file mode 100644
index 0000000..b225ba4
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+package com.android.contacts.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import android.provider.ContactsContract.CommonDataKinds.Email;
+
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.group.GroupUtil;
+
+/** Email addresses multi-select cursor adapter. */
+public class MultiSelectEmailAddressesListAdapter extends MultiSelectEntryContactListAdapter {
+
+    protected static class EmailQuery {
+        public static final String[] PROJECTION_PRIMARY = new String[] {
+                Email._ID,                          // 0
+                Email.TYPE,                         // 1
+                Email.LABEL,                        // 2
+                Email.ADDRESS,                      // 3
+                Email.CONTACT_ID,                   // 4
+                Email.LOOKUP_KEY,                   // 5
+                Email.PHOTO_ID,                     // 6
+                Email.DISPLAY_NAME_PRIMARY,         // 7
+                Email.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_ALTERNATIVE = new String[] {
+                Email._ID,                          // 0
+                Email.TYPE,                         // 1
+                Email.LABEL,                        // 2
+                Email.ADDRESS,                      // 3
+                Email.CONTACT_ID,                   // 4
+                Email.LOOKUP_KEY,                   // 5
+                Email.PHOTO_ID,                     // 6
+                Email.DISPLAY_NAME_ALTERNATIVE,     // 7
+                Email.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final int EMAIL_ID                = 0;
+        public static final int EMAIL_TYPE              = 1;
+        public static final int EMAIL_LABEL             = 2;
+        public static final int EMAIL_ADDRESS           = 3;
+        public static final int CONTACT_ID              = 4;
+        public static final int LOOKUP_KEY              = 5;
+        public static final int PHOTO_ID                = 6;
+        public static final int DISPLAY_NAME            = 7;
+        public static final int PHOTO_URI               = 8;
+    }
+
+    private final CharSequence mUnknownNameText;
+    private long[] mContactIdsFilter = null;
+
+    public MultiSelectEmailAddressesListAdapter(Context context) {
+        super(context, EmailQuery.EMAIL_ID);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    public void setArguments(Bundle bundle) {
+        mContactIdsFilter = bundle.getLongArray(UiIntentActions.SELECTION_ITEM_LIST);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder;
+        if (isSearchMode()) {
+            builder = Email.CONTENT_FILTER_URI.buildUpon();
+            final String query = getQueryString();
+            builder.appendPath(TextUtils.isEmpty(query) ? "" : query);
+        } else {
+            builder = Email.CONTENT_URI.buildUpon();
+            if (isSectionHeaderDisplayEnabled()) {
+                builder.appendQueryParameter(Email.EXTRA_ADDRESS_BOOK_INDEX, "true");
+            }
+        }
+        builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                String.valueOf(directoryId));
+        loader.setUri(builder.build());
+
+        if (mContactIdsFilter != null) {
+            loader.setSelection(ContactsContract.Data.CONTACT_ID
+                    + " IN (" + GroupUtil.convertArrayToString(mContactIdsFilter) + ")");
+        }
+
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            loader.setProjection(EmailQuery.PROJECTION_PRIMARY);
+        } else {
+            loader.setProjection(EmailQuery.PROJECTION_ALTERNATIVE);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(Email.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(Email.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(EmailQuery.DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor position.
+     */
+    public Uri getDataUri(int position) {
+        final long id = ((Cursor) getItem(position)).getLong(EmailQuery.EMAIL_ID);
+        return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, id);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView)itemView;
+
+        cursor.moveToPosition(position);
+        boolean isFirstEntry = true;
+        final long currentContactId = cursor.getLong(EmailQuery.CONTACT_ID);
+        if (cursor.moveToPrevious() && !cursor.isBeforeFirst()) {
+            final long previousContactId = cursor.getLong(EmailQuery.CONTACT_ID);
+            if (currentContactId == previousContactId) {
+                isFirstEntry = false;
+            }
+        }
+        cursor.moveToPosition(position);
+
+        bindViewId(view, cursor, EmailQuery.EMAIL_ID);
+        bindSectionHeaderAndDivider(view, position);
+        if (isFirstEntry) {
+            bindName(view, cursor);
+            bindQuickContact(view, partition, cursor, EmailQuery.PHOTO_ID,
+                    EmailQuery.PHOTO_URI, EmailQuery.CONTACT_ID,
+                    EmailQuery.LOOKUP_KEY, EmailQuery.DISPLAY_NAME);
+        } else {
+            unbindName(view);
+            view.removePhotoView(true, false);
+        }
+        bindEmailAddress(view, cursor);
+    }
+
+    protected void unbindName(final ContactListItemView view) {
+        view.hideDisplayName();
+    }
+
+    protected void bindEmailAddress(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(EmailQuery.EMAIL_TYPE)) {
+            final int type = cursor.getInt(EmailQuery.EMAIL_TYPE);
+            final String customLabel = cursor.getString(EmailQuery.EMAIL_LABEL);
+
+            // TODO cache
+            label = Email.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, EmailQuery.EMAIL_ADDRESS);
+    }
+
+    protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
+        final int section = getSectionForPosition(position);
+        if (getPositionForSection(section) == position) {
+            final String title = (String)getSections()[section];
+            view.setSectionHeader(title);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, EmailQuery.DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
new file mode 100644
index 0000000..d3aa5ca
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+package com.android.contacts.list;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.common.logging.ListEvent;
+
+import java.util.TreeSet;
+
+/** Displays a list of emails with check boxes. */
+public class MultiSelectEmailAddressesListFragment
+        extends MultiSelectContactsListFragment<MultiSelectEmailAddressesListAdapter>{
+
+    public MultiSelectEmailAddressesListFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setSearchMode(false);
+        setHasOptionsMenu(true);
+        setListType(ListEvent.ListType.PICK_EMAIL);
+    }
+
+    @Override
+    public MultiSelectEmailAddressesListAdapter createListAdapter() {
+        final MultiSelectEmailAddressesListAdapter adapter =
+                new MultiSelectEmailAddressesListAdapter(getActivity());
+        adapter.setArguments(getArguments());
+        return adapter;
+    }
+
+    @Override
+    public void onSelectedContactsChangedViaCheckBox() {
+        onSelectedContactsChanged();
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.items_multi_select, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final MenuItem item = menu.findItem(R.id.menu_send);
+        item.setVisible(getAdapter().hasSelectedItems());
+        item.getActionView().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onOptionsItemSelected(item);
+            }
+        });
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch(item.getItemId()) {
+            case R.id.menu_send: {
+                final String scheme = getActivity().getIntent().getStringExtra(
+                        UiIntentActions.SELECTION_SEND_SCHEME);
+                final String title= getActivity().getIntent().getStringExtra(
+                        UiIntentActions.SELECTION_SEND_TITLE);
+                final Intent intent = new Intent();
+                intent.putExtra(UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY,
+                        getAdapter().getSelectedContactIdsArray());
+                intent.putExtra(UiIntentActions.SELECTION_SEND_SCHEME, scheme);
+                intent.putExtra(UiIntentActions.SELECTION_SEND_TITLE, title);
+                getActivity().setResult(Activity.RESULT_OK, intent);
+                getActivity().finish();
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final long[] selectedIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (selectedIds != null && selectedIds.length != 0) {
+            final TreeSet<Long> selectedIdsTree = new TreeSet<>();
+            for (int i = 0; i < selectedIds.length; i++) {
+                selectedIdsTree.add(selectedIds[i]);
+            }
+            getAdapter().setSelectedContactIds(selectedIdsTree);
+            onSelectedContactsChanged();
+        }
+        return super.onCreateView(inflater, container, savedInstanceState);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        displayCheckBoxes(true);
+
+        final long[] itemIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_ITEM_LIST);
+        final boolean[] selectedFlags = getActivity().getIntent().getBooleanArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (itemIds != null && selectedFlags != null && itemIds.length == selectedFlags.length) {
+            TreeSet<Long> selectedIds = new TreeSet<>();
+            for (int i = 0; i < itemIds.length; i++) {
+                if (selectedFlags[i]) {
+                    selectedIds.add(itemIds[i]);
+                }
+            }
+            getAdapter().setSelectedContactIds(selectedIds);
+            onSelectedContactsChanged();
+        }
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        return true;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(com.android.contacts.common.R.layout.contact_list_content, null);
+    }
+}
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
new file mode 100644
index 0000000..b3574ab
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+package com.android.contacts.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.group.GroupUtil;
+
+/** Phone Numbers multi-select cursor adapter. */
+public class MultiSelectPhoneNumbersListAdapter extends MultiSelectEntryContactListAdapter {
+
+    public static class PhoneQuery {
+        public static final String[] PROJECTION_PRIMARY = new String[] {
+                Phone._ID,                          // 0
+                Phone.TYPE,                         // 1
+                Phone.LABEL,                        // 2
+                Phone.NUMBER,                       // 3
+                Phone.CONTACT_ID,                   // 4
+                Phone.LOOKUP_KEY,                   // 5
+                Phone.PHOTO_ID,                     // 6
+                Phone.DISPLAY_NAME_PRIMARY,         // 7
+                Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_ALTERNATIVE = new String[] {
+                Phone._ID,                          // 0
+                Phone.TYPE,                         // 1
+                Phone.LABEL,                        // 2
+                Phone.NUMBER,                       // 3
+                Phone.CONTACT_ID,                   // 4
+                Phone.LOOKUP_KEY,                   // 5
+                Phone.PHOTO_ID,                     // 6
+                Phone.DISPLAY_NAME_ALTERNATIVE,     // 7
+                Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final int PHONE_ID                = 0;
+        public static final int PHONE_TYPE              = 1;
+        public static final int PHONE_LABEL             = 2;
+        public static final int PHONE_NUMBER            = 3;
+        public static final int CONTACT_ID              = 4;
+        public static final int LOOKUP_KEY              = 5;
+        public static final int PHOTO_ID                = 6;
+        public static final int DISPLAY_NAME            = 7;
+        public static final int PHOTO_URI               = 8;
+    }
+
+    private final CharSequence mUnknownNameText;
+    private long[] mContactIdsFilter = null;
+
+    public MultiSelectPhoneNumbersListAdapter(Context context) {
+        super(context, PhoneQuery.PHONE_ID);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    public void setArguments(Bundle bundle) {
+        mContactIdsFilter = bundle.getLongArray(UiIntentActions.SELECTION_ITEM_LIST);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder;
+        if (isSearchMode()) {
+            builder = Phone.CONTENT_FILTER_URI.buildUpon();
+            final String query = getQueryString();
+            builder.appendPath(TextUtils.isEmpty(query) ? "" : query);
+        } else {
+            builder = Phone.CONTENT_URI.buildUpon();
+            if (isSectionHeaderDisplayEnabled()) {
+                builder.appendQueryParameter(Phone.EXTRA_ADDRESS_BOOK_INDEX, "true");
+            }
+        }
+        builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                String.valueOf(directoryId));
+        loader.setUri(builder.build());
+
+        if (mContactIdsFilter != null) {
+            loader.setSelection(ContactsContract.Data.CONTACT_ID
+                    + " IN (" + GroupUtil.convertArrayToString(mContactIdsFilter) + ")");
+        }
+
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            loader.setProjection(PhoneQuery.PROJECTION_PRIMARY);
+        } else {
+            loader.setProjection(PhoneQuery.PROJECTION_ALTERNATIVE);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(Phone.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(Phone.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(PhoneQuery.DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor position.
+     */
+    public Uri getDataUri(int position) {
+        final long id = ((Cursor) getItem(position)).getLong(PhoneQuery.PHONE_ID);
+        return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, id);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView)itemView;
+
+        cursor.moveToPosition(position);
+        boolean isFirstEntry = true;
+        final long currentContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+        if (cursor.moveToPrevious() && !cursor.isBeforeFirst()) {
+            final long previousContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+            if (currentContactId == previousContactId) {
+                isFirstEntry = false;
+            }
+        }
+        cursor.moveToPosition(position);
+
+        bindViewId(view, cursor, PhoneQuery.PHONE_ID);
+        bindSectionHeaderAndDivider(view, position);
+        if (isFirstEntry) {
+            bindName(view, cursor);
+            bindQuickContact(view, partition, cursor, PhoneQuery.PHOTO_ID,
+                        PhoneQuery.PHOTO_URI, PhoneQuery.CONTACT_ID,
+                        PhoneQuery.LOOKUP_KEY, PhoneQuery.DISPLAY_NAME);
+        } else {
+            unbindName(view);
+            view.removePhotoView(true, false);
+        }
+        bindPhoneNumber(view, cursor);
+    }
+
+    protected void unbindName(final ContactListItemView view) {
+        view.hideDisplayName();
+    }
+
+    protected void bindPhoneNumber(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(PhoneQuery.PHONE_TYPE)) {
+            final int type = cursor.getInt(PhoneQuery.PHONE_TYPE);
+            final String customLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
+
+            // TODO cache
+            label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, PhoneQuery.PHONE_NUMBER);
+    }
+
+    protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
+        if (isSectionHeaderDisplayEnabled()) {
+            Placement placement = getItemPlacementInSection(position);
+            view.setSectionHeader(placement.firstInSection ? placement.sectionHeader : null);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PhoneQuery.DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+}
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
new file mode 100644
index 0000000..aea89e4
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+package com.android.contacts.list;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.common.logging.ListEvent;
+
+import java.util.TreeSet;
+
+/** Displays a list of phone numbers with check boxes. */
+public class MultiSelectPhoneNumbersListFragment
+        extends MultiSelectContactsListFragment<MultiSelectPhoneNumbersListAdapter> {
+
+    public MultiSelectPhoneNumbersListFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setSearchMode(false);
+        setHasOptionsMenu(true);
+        setListType(ListEvent.ListType.PICK_PHONE);
+    }
+
+    @Override
+    public MultiSelectPhoneNumbersListAdapter createListAdapter() {
+        final MultiSelectPhoneNumbersListAdapter adapter =
+                new MultiSelectPhoneNumbersListAdapter(getActivity());
+        adapter.setArguments(getArguments());
+        return adapter;
+    }
+
+    @Override
+    public void onSelectedContactsChangedViaCheckBox() {
+        onSelectedContactsChanged();
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.items_multi_select, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final MenuItem item = menu.findItem(R.id.menu_send);
+        item.setVisible(getAdapter().hasSelectedItems());
+        item.getActionView().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onOptionsItemSelected(item);
+            }
+        });
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch(item.getItemId()) {
+            case R.id.menu_send: {
+                final String scheme = getActivity().getIntent().getStringExtra(
+                        UiIntentActions.SELECTION_SEND_SCHEME);
+                final String title= getActivity().getIntent().getStringExtra(
+                        UiIntentActions.SELECTION_SEND_TITLE);
+                final Intent intent = new Intent();
+                intent.putExtra(UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY,
+                        getAdapter().getSelectedContactIdsArray());
+                intent.putExtra(UiIntentActions.SELECTION_SEND_SCHEME, scheme);
+                intent.putExtra(UiIntentActions.SELECTION_SEND_TITLE, title);
+                getActivity().setResult(Activity.RESULT_OK, intent);
+                getActivity().finish();
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final long[] selectedIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (selectedIds != null && selectedIds.length != 0) {
+            final TreeSet<Long> selectedIdsTree = new TreeSet<>();
+            for (int i = 0; i < selectedIds.length; i++) {
+                selectedIdsTree.add(selectedIds[i]);
+            }
+            getAdapter().setSelectedContactIds(selectedIdsTree);
+            onSelectedContactsChanged();
+        }
+        return super.onCreateView(inflater, container, savedInstanceState);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        displayCheckBoxes(true);
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        return true;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(com.android.contacts.common.R.layout.contact_list_content, null);
+    }
+}
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
index 6ea984f..b2157fb 100644
--- a/src/com/android/contacts/list/UiIntentActions.java
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -35,12 +35,42 @@
             "com.android.contacts.action.LIST_CONTACTS";
 
     /**
+     * The action for selecting multiple items (email, phone) from a list.
+     */
+    public static final String ACTION_SELECT_ITEMS =
+            "com.android.contacts.action.ACTION_SELECT_ITEMS";
+
+    /**
      * The action for the contacts list tab.
      */
     public static final String LIST_GROUP_ACTION =
             "com.android.contacts.action.LIST_GROUP";
 
     /**
+     * The send scheme for multi email/phone picker fragment
+     */
+    public static final String SELECTION_SEND_SCHEME =
+            "com.android.contacts.extra.SELECTION_SEND_SCHEME";
+
+    /**
+     * The send title for multi email/phone picker fragment
+     */
+    public static final String SELECTION_SEND_TITLE =
+            "com.android.contacts.extra.SELECTION_SEND_TITLE";
+
+    /**
+     * The item ids for multi select picker fragment/adapter
+     */
+    public static final String SELECTION_ITEM_LIST =
+            "com.android.contacts.extra.SELECTION_ITEM_LIST";
+
+    /**
+     * The default selection flags for the multi select picker fragment/adapter
+     */
+    public static final String SELECTION_DEFAULT_SELECTION =
+            "com.android.contacts.extra.SELECTION_DEFAULT_SELECTION";
+
+    /**
      * When in LIST_GROUP_ACTION mode, this is the group to display.
      */
     public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
