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/values-af/strings.xml b/res/values-af/strings.xml
index 57d290d..009fcf9 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM-kontak ingevoer</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kon nie SIM-kontakte invoer nie"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Kon nie aanmeld nie"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 115d1b8..9b41866 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> የሲም እውቂያዎች መጥተዋል</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"የሲም እውቂያዎችን ማምጣት አልተሳካም"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"መግባት አልተሳካም"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8243b8c..89cf033 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -660,8 +660,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"أخفق تسجيل الدخول"</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 263ba50..823e04c 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM kontakt</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM kontaktları import etmək olmadı"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Hesaba daxil olmaq olmadı"</string>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 4b4fbb8..c050e97 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 контакт в SIM картата бе импортиран</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Импортирането на контактите в SIM картата не бе успешно"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Влизането в профила не бе възможно"</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index f0ef6b9..70684a3 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"সাইন ইন করা গেল না"</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 2f6c486..42d4189 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"No s\'ha pogut iniciar la sessió"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 24ecc72..60cab7f 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -635,8 +635,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Přihlášení se nezdařilo"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 93130c5..4a9a08f 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Der kan ikke logges ind"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f2f9a81..d9f69b1 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Fehler bei der Anmeldung"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a86872c..804bb7f 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">Έγινε εισαγωγή 1 επαφής από τη SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Απέτυχε η εισαγωγή των επαφών από τη SIM"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Αποτυχία σύνδεσης"</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index bb63a21..31b919d 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index bb63a21..31b919d 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index bb63a21..31b919d 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM contact imported</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Failed to sign in"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index b5947ca..905e4d7 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"No se pudo acceder"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6310309..eb11ab2 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"No se ha podido iniciar sesión"</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index b1c1b1a..b953a5d 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Sisselogimine ebaõnnestus"</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 6b7b629..d596fda 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Ezin izan da hasi saioa"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index aa14c87..0d35c60 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب سیم کارت وارد شد</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"مخاطبین سیم کارت وارد نشدند"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"وارد سیستم نشدید"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 8fec88b..fff83a1 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">Yksi SIM-yhteystieto tuotiin.</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-yhteystietojen tuonti epäonnistui."</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Kirjautuminen epäonnistui"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index e0ac2ee..4d70964 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Échec de la connexion"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index dc25deb..5cba708 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Connexion impossible"</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 1bb54ad..3090f6e 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Produciuse un erro ao iniciar sesión"</string>
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 9a2e58f..23df641 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM સંપર્કો આયાત કર્યાં</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM સંપર્કો આયાત કરવામાં નિષ્ફળ થયાં"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"સાઇન ઇન કરવામાં નિષ્ફળ થયાં"</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 88520a0..646a264 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"प्रवेश करने में विफल रहे"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index e7e1157..bcc5376 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -622,8 +622,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Prijava nije uspjela"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e73530d..4c41ff1 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Sikertelen bejelentkezés"</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 3fe52ed..a34f70c 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Չհաջողվեց մուտք գործել"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index caff613..b3ff86e 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 kontak SIM yang diimpor</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimpor kontak SIM"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Gagal masuk"</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 0e79044..7cc55dd 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Innskráning tókst ekki"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a086319..67b113a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Impossibile accedere"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index bd16752..58252a7 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -635,8 +635,5 @@
       <item quantity="one">‏איש קשר אחד יובא מכרטיס ה-SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏לא ניתן היה לייבא את אנשי הקשר מכרטיס ה-SIM"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"לא ניתן היה להיכנס לחשבון"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 5558cd7..9cb8efa 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 件の SIM の連絡先をインポートしました</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM の連絡先をインポートできませんでした"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"ログインできませんでした"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 14138e2..68a4134 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">იმპორტირებულია 1 SIM კონტაქტი</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM კონტაქტების იმპორტირება ვერ მოხერხდა"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"შესვლა ვერ მოხერხდა"</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index ffeeb72..f555a92 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM контактісі импортталды</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM контактілері импортталмады"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Жүйеге кіру мүмкін болмады"</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 8689cb5..91b945c 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">បាន​នាំចូល​ទំនាក់ទំនង SIM 1</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"មិន​អាច​នាំចូល​ទំនាក់ទំនង​ពី SIM បាន​ទេ"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"មិន​អាច​ចូល​បាន​ទេ"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 784063f..b52af61 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗಿದೆ</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"ಸೈನ್ ಇನ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 799b6e8..3f1bdeb 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"로그인하지 못했습니다."</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 56577b4..5fad319 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -718,8 +718,5 @@
       <item quantity="one">1 SIM байланыш өткөрүлүп алынды</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM байланыштары өткөрүлүп алынган жок"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Кире алган жоксуз"</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index bdc2128..896b870 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"ເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 88dbd39..da0f97e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -635,8 +635,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Nepavyko prisijungti"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8fd67ab..f7c6c0f 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -624,8 +624,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Neizdevās pierakstīties"</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 3f93bb0..6d6dad5 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other">Увезени се <xliff:g id="COUNT">%d</xliff:g> контакти од SIM</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не успеа увезувањето контакти од SIM"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Не успеа да се најави"</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 217fde0..4145f17 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"സൈൻ ഇൻ ചെയ്യാനായില്ല"</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index a5f499f..5c7b4e7 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -611,8 +611,5 @@
       <item quantity="one">1 SIM-н харилцагчийг импорт хийсэн</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-н харилцагчдыг импортолж чадсангүй"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Нэвтэрч чадсангүй"</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index e605a06..c5fa9a1 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात केले</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"सिम संपर्क आयात करण्यात अयशस्वी"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"साइन इन करण्यात अयशस्वी झाले"</string>
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 6198aed..4dc86dc 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -611,8 +611,5 @@
       <item quantity="one">1 kenalan SIM diimport</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimport kenalan SIM"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Gagal log masuk"</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index b908955..afad7d6 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"အကောင့် ဝင်၍မရပါ"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index d72f246..9c44a4b 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Kunne ikke logge på"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index a1cebc1..29f9a58 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"साइन इन गर्न सकिएन"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index a2e49c5..789b61b 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Inloggen is mislukt"</string>
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 083ddaf..35b80b1 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"ਸਾਈਨ ਇਨ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index cb33041..c107a07 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -635,8 +635,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Nie udało się zalogować"</string>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5b671d5..a26c6ea 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Falha ao fazer login"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index b784be7..4e70e17 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Ocorreu uma falha ao iniciar sessão"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5b671d5..a26c6ea 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Falha ao fazer login"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9350c5d..5d84d23 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -622,8 +622,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Nu v-ați conectat."</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c46038f..428878b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -636,8 +636,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Не удалось войти в систему"</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index b6d8574..9a38f32 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="other">SIM සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>ක් ආයාත කරන ලදී</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM සම්බන්ධතා ආයාත කිරීමට අසමත් විය"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"පිරීමට අසමත් විය"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 01e30b3..044ca3b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -635,8 +635,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Prihlásenie zlyhalo"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 66fe3bc..607a27a 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -635,8 +635,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Prijava ni uspela"</string>
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 51eeb18..4c1d0d3 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Identifikimi dështoi"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 39a5a03..81db426 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -622,8 +622,5 @@
       <item quantity="other">Увезено је <xliff:g id="COUNT">%d</xliff:g> контаката са SIM картице</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Увоз контаката са SIM картице није успео"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Пријављивање није успело"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 9227bff..06a8409 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Det gick inte att logga in"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 8f03389..ab48774 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -611,8 +611,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Imeshindwa kuingia katika akaunti"</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 6f3d777..b8475e6 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"உள்நுழைய முடியவில்லை"</string>
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 1ec048b..c1988ee 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">1 SIM పరిచయం దిగుమతి చేయబడింది</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM పరిచయాలను దిగుమతి చేయడంలో విఫలమైంది"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"సైన్ ఇన్ చేయడంలో విఫలమైంది"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4d91c2b..6d6d37a 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">นำเข้าผู้ติดต่อ 1 รายจากซิมแล้ว</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"นำเข้าผู้ติดต่อจากซิมไม่สำเร็จ"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"ไม่สามารถลงชื่อเข้าใช้ได้"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 553af01..24b95a0 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Hindi nakapag-sign in"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 95548b9..fa7ac47 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Oturum açılamadı"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 377790d..1fa5157 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -636,8 +636,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Помилка входу"</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 8675c02..f43b872 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"سائن ان کرنے میں ناکام"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 3673003..0094195 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Tizimga kirib bo‘lmadi"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 660f65f..3916794 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Không đăng nhập được"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index ddc0a4a..505381f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">已导入 1 位 SIM 卡联系人</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"无法导入 SIM 卡联系人"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"无法登录"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index e889c4b..8bc3d8f 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -609,8 +609,5 @@
       <item quantity="one">已匯入 1 位 SIM 聯絡人</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"無法匯入 SIM 聯絡人"</string>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"無法登入"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 81466f1..78d0432 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -612,8 +612,5 @@
     <!-- no translation found for sim_import_success_toast_fmt (8572156521110906443) -->
     <!-- no translation found for sim_import_failed_toast (5559267299793622705) -->
     <skip />
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"無法登入"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index ee3cca2..387c0c3 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -609,8 +609,5 @@
       <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>
-    <!-- no translation found for sim_import_dialog_title (6699935401502172530) -->
-    <skip />
-    <!-- no translation found for sim_import_cancel_content_description (2388362519166414488) -->
-    <skip />
+    <string name="connection_failed" msgid="7558253972301525402">"Yehlulekile ukungena ngemvume"</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e31f88f..0fa2966 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1812,6 +1812,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 c9539ee..490f6ee 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -13,8 +13,10 @@
  */
 package com.android.contactsbind;
 
+import com.android.contacts.ContactsDrawerActivity;
 import com.android.contacts.common.logging.Logger;
 import com.android.contacts.common.preference.PreferenceManager;
+import com.android.contacts.common.util.NavigationDrawer;
 import com.android.contactsbind.search.AutocompleteHelper;
 import com.android.contacts.common.util.DeviceLocalAccountTypeFactory;
 
@@ -53,4 +55,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/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 9326b0d..acebcd9 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -284,7 +284,7 @@
         if (isGroupDeleteAction(intent.getAction())) {
             toast(R.string.groupDeletedToast);
             popSecondLevel();
-            mCurrentView = ContactsView.ALL_CONTACTS;
+            resetContactsView();
             showFabWithAnimation(/* showFab */ true);
             return;
         }
@@ -514,6 +514,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
@@ -617,8 +620,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;
         }
 
@@ -685,7 +688,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.
@@ -764,6 +768,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()) {
@@ -826,7 +841,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 df709b3..56aa85b 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";
diff --git a/src/com/android/contacts/common/list/ContactListFilter.java b/src/com/android/contacts/common/list/ContactListFilter.java
index c6baf41..cdea37a 100644
--- a/src/com/android/contacts/common/list/ContactListFilter.java
+++ b/src/com/android/contacts/common/list/ContactListFilter.java
@@ -394,11 +394,11 @@
 
     /**
      * Returns true if this ContactListFilter contains at least one Google account.
-     * (see {@link #isGoogleAccountType)
+     * (see {@link #isWritableGoogleTypeFilter )
      */
     public boolean isSyncable(List<AccountWithDataSet> accounts) {
         // TODO(samchen): Check FILTER_TYPE_CUSTOM
-        if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+        if (isWritableGoogleTypeFilter() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
             return true;
         }
         if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
@@ -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,19 +417,18 @@
     }
 
     /**
-     * Returns the Google accounts (see {@link #isGoogleAccountType) for this ContactListFilter.
+     * Returns the Google accounts (see {@link #isWritableGoogleTypeFilter ) for this ContactListFilter.
      */
     public List<Account> getSyncableAccounts(List<AccountWithDataSet> accounts) {
         final List<Account> syncableAccounts = new ArrayList<>();
         // TODO(samchen): Check FILTER_TYPE_CUSTOM
-        if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+        if (isWritableGoogleTypeFilter() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
             syncableAccounts.add(new Account(accountName, accountType));
         } else if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
                 || 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));
                     }
                 }
@@ -443,7 +441,7 @@
      * Returns true if this ContactListFilter is Google account type. (i.e. where
      * accountType = "com.google" and dataSet = null)
      */
-    public boolean isGoogleAccountType() {
+    public boolean isWritableGoogleTypeFilter() {
         return GoogleAccountType.ACCOUNT_TYPE.equals(accountType) && dataSet == null;
     }
 }
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/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 26073f4..4fa2dcc 100644
--- a/src/com/android/contacts/common/preference/ContactsPreferences.java
+++ b/src/com/android/contacts/common/preference/ContactsPreferences.java
@@ -22,12 +22,10 @@
 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;
 import android.preference.PreferenceManager;
-import android.provider.ContactsContract;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.support.annotation.NonNull;
@@ -36,7 +34,6 @@
 
 import com.android.contacts.common.R;
 import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.account.GoogleAccountType;
 import com.android.contacts.common.model.AccountTypeManager;
 
 import java.util.ArrayList;
@@ -79,10 +76,15 @@
 
     public static final String CONTACT_METADATA_AUTHORITY = "com.android.contacts.metadata";
 
+    public static final String ONLY_CLEAR_DONOT_SYNC = "only_clear_donot_sync";
+
     public static final String SHOULD_CLEAR_METADATA_BEFORE_SYNCING =
             "should_clear_metadata_before_syncing";
 
-    public static final String ONLY_CLEAR_DONOT_SYNC = "only_clear_donot_sync";
+    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
      */
@@ -248,6 +250,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 String getContactMetadataSyncAccountName() {
         final Account syncAccount = getContactMetadataSyncAccount();
         return syncAccount == null ? DO_NOT_SYNC_CONTACT_METADATA_MSG : syncAccount.name;
@@ -309,7 +331,7 @@
         final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(mContext);
         List<AccountWithDataSet> accounts = accountTypeManager.getAccounts(true);
         for (AccountWithDataSet account : accounts) {
-            if (GoogleAccountType.ACCOUNT_TYPE.equals(account.type) && account.dataSet == null) {
+            if (account.isWritableGoogleAccount()) {
                 focusGoogleAccounts.add(account.getAccountOrNull());
             }
         }
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/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index 30f339c..93438b3 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -549,7 +549,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/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index a76af7f..6e1b7e4 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.provider.ContactsContract;
@@ -70,8 +71,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;
@@ -81,6 +87,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;
@@ -142,6 +149,7 @@
     private ContactsDrawerActivity mActivity;
     private ContactsRequest mContactsRequest;
     private ContactListFilterController mContactListFilterController;
+    private DeviceLocalAccountTypeFactory mDeviceLocalFactory;
 
     private final ActionBarAdapter.Listener mActionBarListener = new ActionBarAdapter.Listener() {
         @Override
@@ -437,13 +445,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
@@ -929,7 +938,7 @@
      */
     private void setContactListFilter(ContactListFilter filter) {
         mContactListFilterController.setContactListFilter(filter,
-                /* persistent */ isAllContactsFilter(filter));
+                AccountFilterUtil.shouldPersistFilter(getContext(), filter));
     }
 
     @Override
