Show sync-off alert
am: 491cca5773
Change-Id: Ibee09c8b5f370ae9750ef851461743bf018d0ef1
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