Import translations. DO NOT MERGE
am: 750625ac2e -s ours
Change-Id: Ie01c4c408d8d96fb87c5ca7e4e7d0154d274042a
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index bd36560..6f146f0 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="10512"
- android:versionName="1.5.12">
+ android:versionCode="20100"
+ android:versionName="2.1.0">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
@@ -49,6 +49,8 @@
<uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
<!-- Following used for Contact metadata syncing -->
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
+ <!-- Following used for getting the status of the contacts sync adapter -->
+ <uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
diff --git a/proguard.flags b/proguard.flags
index ec75101..18362bc 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -15,6 +15,7 @@
# For test:
-keep class com.android.contactsbind.analytics.AnalyticsUtil { *;}
-keep class com.android.contacts.interactions.** { *;}
+-keep class com.android.contacts.util.SyncUtil { *;}
-keep class com.google.common.base.Objects { *;}
-keep class com.google.common.base.Preconditions { *;}
-keep class com.google.common.collect.Lists { *;}
diff --git a/res/layout/contact_list_content.xml b/res/layout/contact_list_content.xml
index f18267d..8420b26 100644
--- a/res/layout/contact_list_content.xml
+++ b/res/layout/contact_list_content.xml
@@ -39,20 +39,29 @@
android:id="@+id/contact_list">
<include layout="@layout/contact_list_card"/>
- <view
- class="com.android.contacts.common.list.PinnedHeaderListView"
- android:id="@android:id/list"
+
+ <android.support.v4.widget.SwipeRefreshLayout
+ android:id="@+id/swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginLeft="?attr/contact_browser_list_padding_left"
- android:layout_marginRight="?attr/contact_browser_list_padding_right"
- android:layout_marginStart="?attr/contact_browser_list_padding_left"
- android:layout_marginEnd="?attr/contact_browser_list_padding_right"
- android:paddingTop="?attr/list_item_padding_top"
- android:clipToPadding="false"
- android:fastScrollEnabled="true"
- android:visibility="gone"
- android:fadingEdge="none" />
+ android:enabled="false" >
+
+ <view
+ class="com.android.contacts.common.list.PinnedHeaderListView"
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="?attr/contact_browser_list_padding_left"
+ android:layout_marginRight="?attr/contact_browser_list_padding_right"
+ android:layout_marginStart="?attr/contact_browser_list_padding_left"
+ android:layout_marginEnd="?attr/contact_browser_list_padding_right"
+ android:paddingTop="?attr/list_item_padding_top"
+ android:clipToPadding="false"
+ android:fastScrollEnabled="true"
+ android:visibility="gone"
+ android:fadingEdge="none" />
+ </android.support.v4.widget.SwipeRefreshLayout>
+
<ProgressBar
android:id="@+id/search_progress"
style="?android:attr/progressBarStyleLarge"
diff --git a/res/values-b+sr+Latn-sw600dp/strings.xml b/res/values-b+sr+Latn-sw600dp/strings.xml
new file mode 100644
index 0000000..f6727a7
--- /dev/null
+++ b/res/values-b+sr+Latn-sw600dp/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2012 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
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="account_phone" msgid="347665663520819575">"Uređaj"</string>
+ <string name="composer_has_no_exportable_contact" msgid="5998889616701036804">"Nema kontakata za izvoz. Ako imate kontakte na tabletu, neki dobavljači podataka možda neće dozvoliti izvoz kontakata sa tableta."</string>
+</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 3078976..8160602 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -17,9 +17,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
- <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakti"</string>
- <string name="quickContactActivityLabel" msgid="7985456650689347268">"Prikaži kontakt"</string>
- <string name="editContactActivityLabel" msgid="1129944572070802839">"Izmeni kontakt"</string>
<string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
<string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
@@ -31,12 +28,7 @@
<string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izaberite kontakt"</string>
<string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Izaberite"</string>
<string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Napravi novi kontakt"</string>
- <string name="starredList" msgid="4817256136413959463">"Sa zvezdicom"</string>
- <string name="frequentList" msgid="7154768136473953056">"Česti"</string>
- <string name="strequentList" msgid="5640192862059373511">"Omiljeno"</string>
<string name="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</string>
- <string name="editContactDescription" msgid="2947202828256214947">"Izmeni kontakt"</string>
- <string name="insertContactDescription" msgid="4709878105452681987">"Napravi kontakt"</string>
<string name="contactDetailAbout" msgid="5430408883907061400">"Osnovni podaci"</string>
<string name="contactDetailUpdates" msgid="3780588624763446941">"Ažuriranja"</string>
<string name="searchHint" msgid="8482945356247760701">"Pretraži kontakte"</string>
@@ -52,7 +44,7 @@
<string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
<string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji SMS kontaktu"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
- <string name="menu_editGroup" msgid="5062005185370983720">"Izmeni"</string>
+ <string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
<string name="menu_deleteGroup" msgid="1126469629233412249">"Izbriši oznaku"</string>
<string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj kontakt"</string>
@@ -80,10 +72,15 @@
<item quantity="few">Kontakti su izbrisani</item>
<item quantity="other">Kontakti su izbrisani</item>
</plurals>
- <plurals name="contacts_count" formatted="false" msgid="3287407967505649458">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata</item>
+ <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakta</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakata</item>
+ </plurals>
+ <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+ <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
</plurals>
<string name="title_from_google" msgid="4664084747121207202">"Sa Google-a"</string>
<string name="title_from_other_accounts" msgid="8307885412426754288">"Sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
@@ -110,11 +107,13 @@
<string name="attach_photo_dialog_title" msgid="5599827035558557169">"Slika kontakta"</string>
<string name="customLabelPickerTitle" msgid="1081475101983255212">"Naziv prilagođene oznake"</string>
<string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Šalji pozive direktno u glasovnu poštu"</string>
- <string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
- <string name="noContacts" msgid="4955659076981974652">"Nema kontakata"</string>
+ <string name="removePhoto" msgid="4898105274130284565">"Ukloni sliku"</string>
+ <string name="noContacts" msgid="2228592924476426108">"Lista kontakata je prazna"</string>
<string name="noGroups" msgid="4607906327968232225">"Nema oznaka."</string>
<string name="noAccounts" msgid="7768267764545265909">"Morate da imate nalog da biste mogli da pravite grupe."</string>
<string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata sa ovom oznakom"</string>
+ <string name="emptyAccount" msgid="6873962901497975964">"Nema kontakata na ovom nalogu"</string>
+ <string name="emptyMainList" msgid="2772242747899664460">"Lista kontakata je prazna"</string>
<string name="contactSavedToast" msgid="9171862279493213075">"Kontakt je sačuvan"</string>
<string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakti su razdvojeni"</string>
<string name="contactSavedErrorToast" msgid="3207250533172944892">"Nije moguće sačuvati izmene kontakata."</string>
@@ -131,6 +130,7 @@
<string name="groupMembersRemovedToast" msgid="3510563559799376603">"Uklonili smo iz oznake"</string>
<string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodato je u oznaku"</string>
<string name="groupSavedErrorToast" msgid="8121032018490980184">"Čuvanje promena oznake nije uspelo."</string>
+ <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta oznaka već postoji"</string>
<plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt sa brojem telefona</item>
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta sa brojevima telefona</item>
@@ -153,7 +153,7 @@
<string name="callAgain" msgid="3197312117049874778">"Pozovi ponovo"</string>
<string name="returnCall" msgid="8171961914203617813">"Uzvrati poziv"</string>
<string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Želite li da dodate imejl adresu „<xliff:g id="EMAIL">%s</xliff:g>“ u kontakte?"</string>
- <string name="description_contact_photo" msgid="3387458082667894062">"fotografija kontakta"</string>
+ <string name="description_contact_photo" msgid="3387458082667894062">"slika kontakta"</string>
<string name="description_plus_button" msgid="515164827856229880">"plus"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> od <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontak(a)ta"</string>
<string name="search_settings_description" msgid="2675223022992445813">"Imena kontakata"</string>
@@ -184,8 +184,8 @@
<string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> nalog"</string>
<!-- no translation found for from_account_format (4469138575127580203) -->
<skip />
- <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
- <string name="take_new_photo" msgid="7341354729436576304">"Napravi novu fotografiju"</string>
+ <string name="take_photo" msgid="7496128293167402354">"Slikaj"</string>
+ <string name="take_new_photo" msgid="7341354729436576304">"Slikaj novu sliku"</string>
<string name="pick_photo" msgid="2129509985223564942">"Izaberi sliku"</string>
<string name="pick_new_photo" msgid="9122450996263688237">"Izaberite novu sliku"</string>
<string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt lista se ažurira."</string>
@@ -223,8 +223,7 @@
<string name="social_widget_loading" msgid="5327336597364074608">"Učitava se…"</string>
<string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Napravi novi kontakt"</string>
<string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodajte nalog"</string>
- <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Uvezi kontakte"</string>
- <string name="create_group_dialog_title" msgid="5363404287877384473">"Napravite novu oznaku"</string>
+ <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
<string name="delete_group_dialog_message" msgid="335713829185261371">"Želite da izbrišete oznaku „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Kontakti neće biti izbrisani.)"</string>
<string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Unesite ime kontakta pre nego što ga objedinite sa drugim kontaktom."</string>
@@ -232,24 +231,24 @@
<string name="set_default" msgid="4417505153468300351">"Postavi na podrazumevano"</string>
<string name="clear_default" msgid="7193185801596678067">"Obriši podrazumevanu vrednost"</string>
<string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
- <string name="cancel_confirmation_dialog_message" msgid="5058226498605989285">"Želite li da odbacite promene i prekinete sa izmenama?"</string>
+ <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Želite da odbacite promene?"</string>
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
- <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nastavi izmene"</string>
+ <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
+ <!-- no translation found for leave_customize_confirmation_dialog_message (4277114551206032979) -->
+ <skip />
<string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
<string name="enter_contact_name" msgid="4594274696120278368">"Pretražite kontakte"</string>
- <!-- no translation found for title_edit_group (1889302367574226969) -->
- <skip />
+ <string name="title_edit_group" msgid="8602752287270586734">"Uklonite kontakte"</string>
<string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
<string name="external_profile_title" msgid="8034998767621359438">"Moj <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profil"</string>
<string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikazani su svi kontakti"</string>
<string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte bezbednost kontakata čak i ako izgubite telefon – sinhronizujte sa uslugom na mreži."</string>
<string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodavanje naloga"</string>
- <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Neće biti napravljena rezervna kopija novog kontakta. Želite li da dodate nalog koji pravi rezervnu kopiju kontakata onlajn?"</string>
+ <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojte malo vremena da biste dodali nalog pomoću kog ćete napraviti rezervnu kopiju kontakata na Google-u."</string>
<string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti će biti sačuvani na nalogu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
<string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izaberite podrazumevani nalog za nove kontakte:"</string>
<string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj novi kontakt"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Izmeni kontakt"</string>
- <string name="keep_local" msgid="1258761699192993322">"Zadrži lokalno"</string>
<string name="add_account" msgid="8201790677994503186">"Dodaj nalog"</string>
<string name="add_new_account" msgid="5748627740680940264">"Dodaj novi nalog"</string>
<string name="menu_export_database" msgid="2659719297530170820">"Izvezi datoteke baze podataka"</string>
@@ -261,7 +260,6 @@
<string name="about_card_title" msgid="2920942314212825637">"Osnovni podaci"</string>
<string name="send_message" msgid="8938418965550543196">"Pošalji poruku"</string>
<string name="toast_making_personal_copy" msgid="288549957278065542">"Pravljenje lične kopije..."</string>
- <string name="yesterday" msgid="6840858548955018569">"Juče"</string>
<string name="tomorrow" msgid="6241969467795308581">"Sutra"</string>
<string name="today" msgid="8041090779381781781">"Danas"</string>
<string name="today_at_time_fmt" msgid="605665249491030460">"Danas u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
@@ -346,4 +344,277 @@
<string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Događaji i poruke"</string>
<string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Događaji"</string>
<string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Poruke"</string>
+ <string name="hamburger_feature_highlight_header" msgid="7442308698936786415">"Organizujte listu"</string>
+ <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Uklonite duplikate i grupišite kontakte prema oznaci"</string>
+ <!-- no translation found for undo (1425165101664071422) -->
+ <skip />
+ <string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
+ <string name="copy_text" msgid="3257145021583508761">"Kopiraj u priv. memoriju"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Pozovi <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="call_home" msgid="1990519474420545392">"Pozovi kućni telefon"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Pozovi mobilni telefon"</string>
+ <string name="call_work" msgid="5328785911463744028">"Pozovi poslovni telefon"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Pozovi faks"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Pozovi kućni faks"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Pozovi pejdžer"</string>
+ <string name="call_other" msgid="8563753966926932052">"Pozovi"</string>
+ <string name="call_callback" msgid="1910165691349426858">"Pozovi za povratni poziv"</string>
+ <string name="call_car" msgid="3280537320306436445">"Pozovi telefon u automobilu"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Pozovi glavni telefon preduzeća"</string>
+ <string name="call_isdn" msgid="1541590690193403411">"Pozovi ISDN"</string>
+ <string name="call_main" msgid="6082900571803441339">"Pozovi glavni telefon"</string>
+ <string name="call_other_fax" msgid="5745314124619636674">"Pozovi faks"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Pozovi mobilni telefon"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Pozovi teleks"</string>
+ <string name="call_tty_tdd" msgid="8951266948204379604">"Pozovi TTY/TDD"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Pozovi poslovni mobilni telefon"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Pozovi poslovni pejdžer"</string>
+ <string name="call_assistant" msgid="2141641383068514308">"Pozovi <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Pozovi MMS"</string>
+ <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (pozovi)"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"Pošalji SMS na <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="sms_home" msgid="7524332261493162995">"Pošalji SMS na kućni telefon"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"Pošalji SMS na mobilni telefon"</string>
+ <string name="sms_work" msgid="2269624156655267740">"Pošalji SMS na poslovni telefon"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"Pošalji SMS na poslovni faks"</string>
+ <string name="sms_fax_home" msgid="9204042076306809634">"Pošalji SMS na kućni faks"</string>
+ <string name="sms_pager" msgid="7730404569637015192">"Pošalji SMS na pejdžer"</string>
+ <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+ <string name="sms_callback" msgid="5004824430094288752">"Pošalji SMS za povratni poziv"</string>
+ <string name="sms_car" msgid="7444227058437359641">"Pošalji SMS na telefon u automobilu"</string>
+ <string name="sms_company_main" msgid="118970873419678087">"Pošalji SMS na glavni broj telefona preduzeća"</string>
+ <string name="sms_isdn" msgid="8153785037515047845">"Pošalji SMS na ISDN"</string>
+ <string name="sms_main" msgid="8621625784504541679">"Pošalji SMS na glavni telefon"</string>
+ <string name="sms_other_fax" msgid="3888842199855843152">"Pošalji SMS na faks"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"Pošalji SMS na mobilni telefon"</string>
+ <string name="sms_telex" msgid="9034802430065267848">"Pošalji SMS na teleks"</string>
+ <string name="sms_tty_tdd" msgid="6782284969132531532">"Pošalji SMS na TTY/TDD"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"Pošalji SMS na poslovni mobilni telefon"</string>
+ <string name="sms_work_pager" msgid="5566924423316960597">"Pošalji SMS na pejdžer"</string>
+ <string name="sms_assistant" msgid="2773424339923116234">"Pošalji SMS na <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="sms_mms" msgid="4069352461380762677">"Pošalji SMS na MMS"</string>
+ <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (pošalji SMS)"</string>
+ <string name="description_video_call" msgid="7120921378651700947">"Započnite video poziv"</string>
+ <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Brisanje često kontaktiranih?"</string>
+ <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Obrisaćete listu često kontaktiranih u aplikacijama Kontakti i Telefon, pa će imejl aplikacije morati iz početka da prikupe informacije o adresiranju."</string>
+ <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje često kontaktiranih..."</string>
+ <string name="status_available" msgid="5586870015822828392">"Dostupan/na"</string>
+ <string name="status_away" msgid="1838861100379804730">"Odsutan/na"</string>
+ <string name="status_busy" msgid="9147992455450257136">"Zauzet/a"</string>
+ <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+ <string name="local_invisible_directory" msgid="6046691709127661065">"Drugi"</string>
+ <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+ <string name="directory_search_label_work" msgid="8618292129829443176">"Katalog za Work"</string>
+ <string name="local_search_label" msgid="2551177578246113614">"Svi kontakti"</string>
+ <string name="search_results_searching" msgid="3984833028938569930">"Pretražuje se..."</string>
+ <string name="foundTooManyContacts" msgid="5163335650920020220">"Pronađeno je više od <xliff:g id="COUNT">%d</xliff:g>."</string>
+ <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
+ <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
+ <item quantity="one">pronađen je <xliff:g id="COUNT">%d</xliff:g></item>
+ <item quantity="few">pronađena su <xliff:g id="COUNT">%d</xliff:g></item>
+ <item quantity="other">pronađeno je <xliff:g id="COUNT">%d</xliff:g></item>
+ </plurals>
+ <string name="description_quick_contact_for" msgid="6737516415168327789">"Brzi kontakt za korisnika <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="missing_name" msgid="8745511583852904385">"(Bez imena)"</string>
+ <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Često kontaktirani"</string>
+ <string name="description_view_contact_detail" msgid="9133251213656414807">"Prikaži kontakt"</string>
+ <string name="list_filter_phones" msgid="735313795643493365">"Svi kontakti sa brojevima telefona"</string>
+ <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakti sa profila za Work"</string>
+ <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaži ažuriranja"</string>
+ <string name="account_phone" msgid="7128032778471187553">"Uređaj"</string>
+ <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+ <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nadimak"</string>
+ <string name="full_name" msgid="6602579550613988977">"Naziv"</string>
+ <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+ <string name="name_family" msgid="7466985689626017037">"Prezime"</string>
+ <string name="name_prefix" msgid="59756378548779822">"Prefiks za ime"</string>
+ <string name="name_middle" msgid="8467433655992690326">"Srednje slovo"</string>
+ <string name="name_suffix" msgid="3855278445375651441">"Sufiks imena"</string>
+ <string name="name_phonetic" msgid="4259595234312430484">"Ime – fonetski"</string>
+ <string name="name_phonetic_given" msgid="8723179018384187631">"Ime – fonetski"</string>
+ <string name="name_phonetic_middle" msgid="8643721493320405200">"Srednje ime – fonetski"</string>
+ <string name="name_phonetic_family" msgid="2640133663656011626">"Prezime – fonetski"</string>
+ <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+ <string name="emailLabelsGroup" msgid="8389931313045344406">"Pošalji imejlom"</string>
+ <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+ <string name="imLabelsGroup" msgid="3898238486262614027">"Razmena trenutnih poruka"</string>
+ <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+ <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+ <string name="eventLabelsGroup" msgid="7960408705307831289">"Poseban dan"</string>
+ <string name="sms" msgid="1756857139634224222">"Tekstualna poruka"</string>
+ <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+ <string name="ghostData_company" msgid="5414421120553765775">"Preduzeće"</string>
+ <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+ <string name="label_notes" msgid="8337354953278341042">"Beleške"</string>
+ <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+ <string name="websiteLabelsGroup" msgid="4202998982804009261">"Veb-sajt"</string>
+ <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+ <string name="email_home" msgid="8573740658148184279">"Pošalji imejl na kućnu imejl adresu"</string>
+ <string name="email_mobile" msgid="2042889209787989814">"Pošalji imejl na broj mobilnog telefona"</string>
+ <string name="email_work" msgid="2807430017302722689">"Pošalji imejl na poslovni broj telefona"</string>
+ <string name="email_other" msgid="3454004077967657109">"Pošalji imejlom"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Pošalji imejl na adresu <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email" msgid="5668400997660065897">"Pošalji imejlom"</string>
+ <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+ <string name="postal_pobox" msgid="4431938829180269821">"Poštansko sanduče"</string>
+ <string name="postal_neighborhood" msgid="1450783874558956739">"Komšiluk"</string>
+ <string name="postal_city" msgid="6597491300084895548">"Grad"</string>
+ <string name="postal_region" msgid="6045263193478437672">"Država"</string>
+ <string name="postal_postcode" msgid="572136414136673751">"Poštanski broj"</string>
+ <string name="postal_country" msgid="7638264508416368690">"Zemlja"</string>
+ <string name="map_home" msgid="1243547733423343982">"Prikaži kućnu adresu"</string>
+ <string name="map_work" msgid="1360474076921878088">"Prikaži poslovnu adresu"</string>
+ <string name="map_other" msgid="3817820803587012641">"Prikaži adresu"</string>
+ <string name="map_custom" msgid="6184363799976265281">"Prikaži adresu <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="chat_aim" msgid="2588492205291249142">"Započni ćaskanje preko AIM-a"</string>
+ <string name="chat_msn" msgid="8041633440091073484">"Započni ćaskanje preko Windows Live-a"</string>
+ <string name="chat_yahoo" msgid="6629211142719943666">"Započni ćaskanje preko Yahoo-a"</string>
+ <string name="chat_skype" msgid="1210045020427480566">"Započni ćaskanje preko Skype-a"</string>
+ <string name="chat_qq" msgid="4294637812847719693">"Započni ćaskanje preko QQ-a"</string>
+ <string name="chat_gtalk" msgid="981575737258117697">"Ćaskaj preko Google Talk-a"</string>
+ <string name="chat_icq" msgid="8438405386153745775">"Započni ćaskanje preko ICQ-a"</string>
+ <string name="chat_jabber" msgid="7561444230307829609">"Započni ćaskanje preko Jabber-a"</string>
+ <string name="chat" msgid="9025361898797412245">"Ćaskanje"</string>
+ <string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
+ <string name="expand_collapse_name_fields_description" msgid="8682630859539604311">"Proširivanje ili skupljanje polja za ime"</string>
+ <string name="expand_collapse_phonetic_name_fields_description" msgid="3306777588073354509">"Proširite ili skupite polja za fonetsko ime"</string>
+ <string name="list_filter_all_accounts" msgid="8908683398914322369">"Svi kontakti"</string>
+ <string name="list_filter_all_starred" msgid="5031734941601931356">"Sa zvezdicom"</string>
+ <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+ <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+ <string name="display_ungrouped" msgid="6885954210243119591">"Svi drugi kontakti"</string>
+ <string name="display_all_contacts" msgid="2031647544742889505">"Svi kontakti"</string>
+ <string name="menu_sync_remove" msgid="3266725887008450161">"Ukloni grupu za sinhronizaciju"</string>
+ <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupu za sinhronizaciju"</string>
+ <string name="display_more_groups" msgid="2682547080423434170">"Još grupa…"</string>
+ <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Uklanjanjem grupe „<xliff:g id="GROUP">%s</xliff:g>“ sa liste za sinhronizaciju uklonićete i sve negrupisane kontakte sa te liste."</string>
+ <string name="savingDisplayGroups" msgid="2133152192716475939">"Čuvanje opcija prikaza je u toku..."</string>
+ <string name="menu_done" msgid="796017761764190697">"Gotovo"</string>
+ <string name="menu_doNotSave" msgid="58593876893538465">"Otkaži"</string>
+ <string name="listCustomView" msgid="1840624396582117590">"Prilagođeni prikaz"</string>
+ <string name="dialog_new_contact_account" msgid="4969619718062454756">"Sačuvajte uvezene kontakte na:"</string>
+ <string name="import_from_sim" msgid="3859272228033941659">"Uvezi sa SIM kartice"</string>
+ <string name="import_from_sim_summary" msgid="5815105584445743740">"Uvezi sa SIM kartice <xliff:g id="SIM_NAME">^1</xliff:g> – <xliff:g id="SIM_NUMBER">^2</xliff:g>"</string>
+ <string name="import_from_sim_summary_no_number" msgid="880612418352086012">"Uvezi sa SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <string name="import_from_vcf_file" product="default" msgid="5304572242183878086">"Uvezi iz .vcf datoteke"</string>
+ <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Želite li da otkažete uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Želite li da otkažete izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nije moguće otkazati vCard uvoz/izvoz"</string>
+ <string name="fail_reason_unknown" msgid="1714092345030570863">"Nepoznata greška."</string>
+ <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nije moguće otvoriti datoteku „<xliff:g id="FILE_NAME">%s</xliff:g>“: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
+ <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nije moguće pokrenuti program za izvoz: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+ <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nema kontakata za izvoz."</string>
+ <string name="missing_required_permission" msgid="5865884842972833120">"Onemogućili ste obaveznu dozvolu."</string>
+ <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Došlo je do greške pri izvozu: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+ <string name="fail_reason_too_long_filename" msgid="3393764245254738333">"Zahtevani naziv datoteke je predugačak („<xliff:g id="FILENAME">%s</xliff:g>“)"</string>
+ <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O greška"</string>
+ <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nema dovoljno memorije. Datoteka je možda prevelika."</string>
+ <string name="fail_reason_vcard_parse_error" msgid="888263542360355784">"Iz neočekivanog razloga nije bilo moguće raščlaniti vCard datoteku."</string>
+ <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nije podržan."</string>
+ <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="6427931733267328564">"Nije moguće prikupiti metapodatke datih vCard datoteka."</string>
+ <string name="fail_reason_failed_to_read_files" msgid="5823434810622484922">"Nije moguće uvesti jednu ili više datoteka (%s)."</string>
+ <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je završen."</string>
+ <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Izvoz kontakata je završen."</string>
+ <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Izvoz kontakata je završen. Kliknite na obaveštenje da biste ih delili."</string>
+ <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dodirnite da biste delili kontakte."</string>
+ <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je otkazan"</string>
+ <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvoz podataka o kontaktima je u toku"</string>
+ <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podaci o kontaktima se izvoze."</string>
+ <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nije moguće preuzeti informacije iz baze podataka"</string>
+ <string name="composer_has_no_exportable_contact" msgid="3296493229040294335">"Nema kontakata za izvoz. Ako imate kontakata na telefonu, neki dobavljači podataka možda neće dozvoliti da se kontakti izvoze sa telefona."</string>
+ <string name="composer_not_initialized" msgid="2321648986367005254">"Program za izradu vCard datoteka se nije ispravno pokrenuo."</string>
+ <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nije moguće izvesti"</string>
+ <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podaci o kontaktima nizu izvezeni.\nRazlog: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+ <string name="importing_vcard_description" msgid="4245275224298571351">"Uvoz <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nije moguće čitati vCard podatke"</string>
+ <string name="reading_vcard_canceled_title" msgid="1925216585981542019">"Otkazano je čitanje podataka sa vCard datoteke"</string>
+ <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je završen"</string>
+ <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je otkazan"</string>
+ <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Datoteka <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti uvezena."</string>
+ <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Datoteka će uskoro biti uvezena."</string>
+ <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahtev za izvoz vCard datoteke je odbijen. Pokušajte kasnije."</string>
+ <string name="vcard_export_will_start_message" msgid="2210241345252081463">"Datoteka <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti izvezena."</string>
+ <string name="vcard_export_will_start_message_fallback" msgid="6553826997490909749">"Datoteka će uskoro biti izvezena."</string>
+ <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakti će uskoro biti izvezeni."</string>
+ <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahtev za izvoz vCard datoteke je odbijen. Pokušajte kasnije."</string>
+ <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+ <string name="caching_vcard_message" msgid="4926308675041506756">"Keširanje vCard datoteke u lokalnu privremenu memoriju. Uvoz će uskoro započeti."</string>
+ <string name="vcard_import_failed" msgid="5223531255894842406">"Nije moguće uvesti vCard datoteku."</string>
+ <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt preko NFC-a"</string>
+ <string name="confirm_export_title" msgid="6834385377255286349">"Želite li da izvezete kontakte?"</string>
+ <string name="caching_vcard_title" msgid="1226272312940516605">"Keširanje..."</string>
+ <string name="progress_notifier_message" msgid="2311011466908220528">"Uvoz <xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>: <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="export_to_vcf_file" product="default" msgid="4407527157056120858">"Izvezi u .vcf datoteku"</string>
+ <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortiraj prema"</string>
+ <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+ <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Prezime"</string>
+ <string name="display_options_view_names_as" msgid="6514632499276563482">"Format imena i prezimena"</string>
+ <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Prvo ime"</string>
+ <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prvo prezime"</string>
+ <string name="settings_accounts" msgid="350219740670774576">"Nalozi"</string>
+ <string name="default_editor_account" msgid="699591683362420991">"Podrazumevani nalog za nove kontakte"</string>
+ <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinhronizuj metapodatke kontakata [DOGFOOD]"</string>
+ <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinhronizujte metapodatke kontakata"</string>
+ <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
+ <string name="set_up_profile" msgid="7370213843590143771">"Podesite profil"</string>
+ <string name="setting_about" msgid="7014388749752042863">"O Kontaktima"</string>
+ <string name="activity_title_settings" msgid="5464130076132770781">"Podešavanja"</string>
+ <string name="share_visible_contacts" msgid="890150378880783797">"Deli vidljive kontakte"</string>
+ <string name="share_visible_contacts_failure" msgid="7324717548166915560">"Deljenje vidljivih kontakata nije uspelo."</string>
+ <string name="share_favorite_contacts" msgid="4280926751003081042">"Deli omiljene kontakte"</string>
+ <string name="share_contacts" msgid="8109287987498711664">"Deli sve kontakte"</string>
+ <string name="share_contacts_failure" msgid="1216431977330560559">"Deljenje kontakata nije uspelo."</string>
+ <string name="dialog_import_export" msgid="4360648034889921624">"Uvoz/izvoz kontakata"</string>
+ <string name="dialog_import" msgid="2431698729761448759">"Uvoz kontakata"</string>
+ <string name="share_error" msgid="948429331673358107">"Ovaj kontakt ne može da se deli."</string>
+ <string name="no_contact_to_share" msgid="1276397530378323033">"Nema kontakata za deljenje."</string>
+ <string name="menu_search" msgid="9147752853603483719">"Pretraga"</string>
+ <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakti za prikaz"</string>
+ <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakti za prikaz"</string>
+ <string name="custom_list_filter" msgid="2105275443109077687">"Definiši prilagođeni prikaz"</string>
+ <string name="menu_custom_filter_save" msgid="2679793632208086460">"Sačuvaj"</string>
+ <string name="hint_findContacts" msgid="7128627979899070325">"Pretražite kontakte"</string>
+ <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Omiljeno"</string>
+ <string name="listTotalAllContactsZero" msgid="5513001821794568211">"Nema kontakata."</string>
+ <string name="menu_clear_frequents" msgid="7688250191932838833">"Obriši često kontaktirane"</string>
+ <string name="menu_select_sim" msgid="3603578201960504010">"Izaberite SIM karticu"</string>
+ <string name="menu_accounts" msgid="1424330057450189074">"Upravljaj nalozima"</string>
+ <string name="menu_import_export" msgid="26217871113229507">"Uvoz/izvoz"</string>
+ <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
+ <string name="contact_status_update_attribution" msgid="752179367353018597">"preko <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+ <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> preko <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+ <string name="action_menu_back_from_search" msgid="8793348588949233348">"zaustavite pretraživanje"</string>
+ <string name="description_clear_search" msgid="688023606766232904">"Brisanje pretrage"</string>
+ <string name="settings_contact_display_options_title" msgid="4890258244494248687">"Opcije prikazivanja kontakata"</string>
+ <string name="select_account_dialog_title" msgid="5478489655696599219">"Nalog"</string>
+ <string name="set_default_account" msgid="4311613760725609801">"Uvek koristi ovo za pozive"</string>
+ <string name="select_phone_account_for_calls" msgid="3810607744451014540">"Pozovi pomoću"</string>
+ <string name="call_with_a_note" msgid="8389827628360791676">"Uputi poziv sa beleškom"</string>
+ <string name="call_subject_hint" msgid="3637498418381454511">"Unesite belešku koju ćete poslati uz poziv..."</string>
+ <string name="send_and_call_button" msgid="7740295432834590737">"POŠALJI I POZOVI"</string>
+ <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <plurals name="tab_title_with_unread_items" formatted="false" msgid="7682024005130747825">
+ <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
+ <item quantity="few"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitane stavke. </item>
+ <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitanih stavki. </item>
+ </plurals>
+ <string name="about_build_version" msgid="1765533099416999801">"Verzija"</string>
+ <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence otvorenog koda"</string>
+ <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalji licence za softver otvorenog koda"</string>
+ <string name="about_privacy_policy" msgid="3705518622499152626">"Politika privatnosti"</string>
+ <string name="about_terms_of_service" msgid="4642400812150296723">"Uslovi korišćenja usluge"</string>
+ <string name="activity_title_licenses" msgid="5467767062737708066">"Licence otvorenog koda"</string>
+ <string name="url_open_error_toast" msgid="452592089815420457">"Otvaranje URL-a nije uspelo."</string>
+ <string name="account_filter_view_checked" msgid="6696859503887762213">"Označeno: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+ <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Nije označeno: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+ <string name="description_search_video_call" msgid="5841525580339803272">"Uputite video poziv"</string>
+ <string name="description_delete_contact" msgid="53835657343783663">"Izbrišite"</string>
+ <string name="description_no_name_header" msgid="8884991311595943271">"Tri tačke"</string>
+ <!-- no translation found for callDurationSecondFormat (7067644915903528776) -->
+ <skip />
+ <!-- no translation found for callDurationMinuteFormat (4647095486747447674) -->
+ <skip />
+ <!-- no translation found for callDurationHourFormat (7392254193808506640) -->
+ <skip />
</resources>
diff --git a/res/values-be-rBY-sw600dp/strings.xml b/res/values-be-rBY-sw600dp/strings.xml
new file mode 100644
index 0000000..8e0b10f
--- /dev/null
+++ b/res/values-be-rBY-sw600dp/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2012 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
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="account_phone" msgid="347665663520819575">"Прылада"</string>
+ <string name="composer_has_no_exportable_contact" msgid="5998889616701036804">"Няма кантактаў, якія можна экспартаваць. Калі ў вас ёсць кантакты на планшэце, некаторыя пастаўшчыкі даных могуць не дазваляць экспарт кантактаў з планшэта."</string>
+</resources>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index 2eee399..262e3e8 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -17,9 +17,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Кантакты"</string>
- <string name="launcherActivityLabel" msgid="6497230399032392417">"Кантакты"</string>
- <string name="quickContactActivityLabel" msgid="7985456650689347268">"Прагледзець кантакт"</string>
- <string name="editContactActivityLabel" msgid="1129944572070802839">"Рэдагаваць кантакт"</string>
<string name="contactsList" msgid="8661624236494819731">"Кантакты"</string>
<string name="shortcutContact" msgid="749243779392912958">"Кантакт"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Хуткі выклік"</string>
@@ -31,12 +28,7 @@
<string name="contactPickerActivityTitle" msgid="4301062192337417640">"Выберыце кантакт"</string>
<string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Выбраць"</string>
<string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Стварыць новы кантакт"</string>
- <string name="starredList" msgid="4817256136413959463">"Пазначана"</string>
- <string name="frequentList" msgid="7154768136473953056">"Частыя"</string>
- <string name="strequentList" msgid="5640192862059373511">"Любімыя"</string>
<string name="viewContactTitle" msgid="7989394521836644384">"Дадзеныя кантакта"</string>
- <string name="editContactDescription" msgid="2947202828256214947">"Рэдагаваць кантакт"</string>
- <string name="insertContactDescription" msgid="4709878105452681987">"Стварыць кантакт"</string>
<string name="contactDetailAbout" msgid="5430408883907061400">"Інфармацыя"</string>
<string name="contactDetailUpdates" msgid="3780588624763446941">"Абнаўленні"</string>
<string name="searchHint" msgid="8482945356247760701">"Пошук кантактаў"</string>
@@ -52,7 +44,7 @@
<string name="menu_call" msgid="3992595586042260618">"Выклікаць кантакт"</string>
<string name="menu_sendSMS" msgid="5535886767547006515">"Паведамленне кантакту"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Выдаліць сувязь"</string>
- <string name="menu_editGroup" msgid="5062005185370983720">"Рэдагаваць"</string>
+ <string name="menu_editGroup" msgid="6696843438454341063">"Выдаліць кантакты"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Перайменаваць метку"</string>
<string name="menu_deleteGroup" msgid="1126469629233412249">"Выдаліць метку"</string>
<string name="menu_addToGroup" msgid="3267409983764370041">"Дадаць кантакт"</string>
@@ -81,11 +73,17 @@
<item quantity="many">Кантакты выдалены</item>
<item quantity="other">Кантакты выдалены</item>
</plurals>
- <plurals name="contacts_count" formatted="false" msgid="3287407967505649458">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> кантакт</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> кантакты</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> кантактаў</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> кантакту</item>
+ <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> кантакт</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> кантакты</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> кантактаў</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> кантакту</item>
+ </plurals>
+ <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+ <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> кантакт · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> кантакты · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> кантактаў · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> кантакту · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
</plurals>
<string name="title_from_google" msgid="4664084747121207202">"З Google"</string>
<string name="title_from_other_accounts" msgid="8307885412426754288">"З <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
@@ -113,10 +111,12 @@
<string name="customLabelPickerTitle" msgid="1081475101983255212">"Імя карыстальніцкага цэтліка"</string>
<string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Адпраўляць выклікі непасрэдна на галасавую пошту"</string>
<string name="removePhoto" msgid="4898105274130284565">"Выдаліць фота"</string>
- <string name="noContacts" msgid="4955659076981974652">"Няма кантактаў"</string>
+ <string name="noContacts" msgid="2228592924476426108">"Ваш спіс кантактаў пусты"</string>
<string name="noGroups" msgid="4607906327968232225">"Метак няма."</string>
<string name="noAccounts" msgid="7768267764545265909">"Для стварэння групы патрабуецца ўліковы запіс."</string>
<string name="emptyGroup" msgid="5102411903247859575">"Няма кантактаў з гэтай меткай"</string>
+ <string name="emptyAccount" msgid="6873962901497975964">"Няма кантактаў у гэтым уліковым запісе"</string>
+ <string name="emptyMainList" msgid="2772242747899664460">"Ваш спіс кантактаў пусты"</string>
<string name="contactSavedToast" msgid="9171862279493213075">"Кантакт захаваны"</string>
<string name="contactUnlinkedToast" msgid="7122823195786012553">"Кантакты адлучаны"</string>
<string name="contactSavedErrorToast" msgid="3207250533172944892">"Немагчыма захаваць змены кантакта."</string>
@@ -133,6 +133,7 @@
<string name="groupMembersRemovedToast" msgid="3510563559799376603">"Выдалена з меткі"</string>
<string name="groupMembersAddedToast" msgid="4824834898718972768">"Дададзена да этыкеткі"</string>
<string name="groupSavedErrorToast" msgid="8121032018490980184">"Не ўдалося захаваць змяненні меткі."</string>
+ <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Гэта пазнака ўжо існуе"</string>
<plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> кантакт з нумарам(і) тэлефона(ў)</item>
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> кантакты з нумарамі тэлефонаў</item>
@@ -229,8 +230,7 @@
<string name="social_widget_loading" msgid="5327336597364074608">"Загрузка..."</string>
<string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Стварыць новы кантакт"</string>
<string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Дадаць уліковы запіс"</string>
- <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Імпартаваць кантакты"</string>
- <string name="create_group_dialog_title" msgid="5363404287877384473">"Стварыць новую метку"</string>
+ <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Імпартаваць"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Стварыць новую..."</string>
<string name="delete_group_dialog_message" msgid="335713829185261371">"Выдаліць метку \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Самі кантакты не будуць выдалены.)"</string>
<string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Перад звязваннем кантакту з іншым увядзіце імя кантакту."</string>
@@ -238,24 +238,24 @@
<string name="set_default" msgid="4417505153468300351">"Усталяваць па змаўчанні"</string>
<string name="clear_default" msgid="7193185801596678067">"Скінуць налады па змаўчанні"</string>
<string name="toast_text_copied" msgid="5143776250008541719">"Тэкст скапіяваны"</string>
- <string name="cancel_confirmation_dialog_message" msgid="5058226498605989285">"Адхіліць змены і скончыць рэдагаванне?"</string>
+ <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Скасаваць змены?"</string>
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Адхіліць"</string>
- <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Працягнуць рэдагаванне"</string>
+ <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Скасаваць"</string>
+ <!-- no translation found for leave_customize_confirmation_dialog_message (4277114551206032979) -->
+ <skip />
<string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
<string name="enter_contact_name" msgid="4594274696120278368">"Пошук кантактаў"</string>
- <!-- no translation found for title_edit_group (1889302367574226969) -->
- <skip />
+ <string name="title_edit_group" msgid="8602752287270586734">"Выдаліць кантакты"</string>
<string name="local_profile_title" msgid="2021416826991393684">"Мой лакальны профіль"</string>
<string name="external_profile_title" msgid="8034998767621359438">"Мой профіль у <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
<string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Адлюстраванне ўсіх кантактаў"</string>
<string name="generic_no_account_prompt" msgid="7218827704367325460">"Абаранiце свае кантакты, нават калі страціце тэлефон: сінхранізуйце iх з вэб-службай."</string>
<string name="generic_no_account_prompt_title" msgid="753783911899054860">"Дадаць уліковы запіс"</string>
- <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Рэзервовая копiя вашага новага кантакту не будзе створана. Дадаць улiковы запiс, у якiм будуць захоўвацца рэзервовыя копii кантактаў у Iнтэрнэце?"</string>
+ <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Знайдзіце хвілінку, каб дадаць уліковы запіс, які дазволіць стварыць рэзервовую копію вашых кантактаў у Google."</string>
<string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новыя кантакты будуць захаваны ва ўліковы запіс <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
<string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Выбраць уліковы запіс па змаўчанні для новых кантактаў:"</string>
<string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Дадаць новы кантакт"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Рэдагаваць кантакт"</string>
- <string name="keep_local" msgid="1258761699192993322">"Захоўваць лакальна"</string>
<string name="add_account" msgid="8201790677994503186">"Дадаць уліковы запіс"</string>
<string name="add_new_account" msgid="5748627740680940264">"Дадаць новы ўліковы запіс"</string>
<string name="menu_export_database" msgid="2659719297530170820">"Экспарт базы дадзеных файлаў"</string>
@@ -267,7 +267,6 @@
<string name="about_card_title" msgid="2920942314212825637">"Інфармацыя"</string>
<string name="send_message" msgid="8938418965550543196">"Адправiць паведамленне"</string>
<string name="toast_making_personal_copy" msgid="288549957278065542">"Стварэнне асабістай копіі..."</string>
- <string name="yesterday" msgid="6840858548955018569">"Учора"</string>
<string name="tomorrow" msgid="6241969467795308581">"Заўтра"</string>
<string name="today" msgid="8041090779381781781">"Сёння"</string>
<string name="today_at_time_fmt" msgid="605665249491030460">"Сёння ў перыяд <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
@@ -356,4 +355,279 @@
<string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Падзеі і паведамленні"</string>
<string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Падзеі"</string>
<string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Паведамленні"</string>
+ <string name="hamburger_feature_highlight_header" msgid="7442308698936786415">"Арганізуйце свой спіс"</string>
+ <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Выдаліце дублікаты і згрупуйце кантакты па метках"</string>
+ <!-- no translation found for undo (1425165101664071422) -->
+ <skip />
+ <string name="toast_text_copied" msgid="5143776250008541719">"Тэкст скапіяваны"</string>
+ <string name="copy_text" msgid="3257145021583508761">"Скапіраваць у буфер абмену"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Выклікаць <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="call_home" msgid="1990519474420545392">"Патэлефанаваць на хатні нумар"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Набраць нумар мабільнага тэлефону"</string>
+ <string name="call_work" msgid="5328785911463744028">"Выклікаць працоўны нумар тэлефона"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Набраць нумар працоўнага факса"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Патэлефанаваць на хатні факс"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Выклікаць пэйджар"</string>
+ <string name="call_other" msgid="8563753966926932052">"Выклікаць"</string>
+ <string name="call_callback" msgid="1910165691349426858">"Зрабіць зваротны выклік"</string>
+ <string name="call_car" msgid="3280537320306436445">"Выклікаць нумар у машыне"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Выклікаць асноўны нумар кампаніі"</string>
+ <string name="call_isdn" msgid="1541590690193403411">"Выклік ISDN"</string>
+ <string name="call_main" msgid="6082900571803441339">"Выклікаць асноўны нумар"</string>
+ <string name="call_other_fax" msgid="5745314124619636674">"Выклік факса"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Патэлефанаваць на радыётэлефон"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Выклік на тэлекс"</string>
+ <string name="call_tty_tdd" msgid="8951266948204379604">"Выклікаць TTY/TDD"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Патэлефанаваць на працоўны мабільны"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Выклікаць працоўны пэйджар"</string>
+ <string name="call_assistant" msgid="2141641383068514308">"Выклікаць <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Выклік MMS"</string>
+ <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Выклікаць)"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"Тэкставае паведамленне на <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="sms_home" msgid="7524332261493162995">"Тэкставае паведамленне на хатні тэлефон"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"Тэкставае паведамленне на мабільны тэлефон"</string>
+ <string name="sms_work" msgid="2269624156655267740">"Тэкставае паведамленне на працоўны тэлефон"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"Тэкставае паведамленне на працоўны факс"</string>
+ <string name="sms_fax_home" msgid="9204042076306809634">"Тэкставае паведамленне на хатні факс"</string>
+ <string name="sms_pager" msgid="7730404569637015192">"Тэкставае паведамленне на пэйджар"</string>
+ <string name="sms_other" msgid="806127844607642331">"Тэкст"</string>
+ <string name="sms_callback" msgid="5004824430094288752">"Тэкст на нумар зваротнага выкліку"</string>
+ <string name="sms_car" msgid="7444227058437359641">"Тэкставае паведамленне ў аўтамабіль"</string>
+ <string name="sms_company_main" msgid="118970873419678087">"Паведамленне на асноўны нумар кампаніі"</string>
+ <string name="sms_isdn" msgid="8153785037515047845">"Тэкст ISDN"</string>
+ <string name="sms_main" msgid="8621625784504541679">"Паведамленне на асноўны нумар"</string>
+ <string name="sms_other_fax" msgid="3888842199855843152">"Тэкставае паведамленне на факс"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"Тэкставае паведамленее на радыётэлефон"</string>
+ <string name="sms_telex" msgid="9034802430065267848">"Тэкставае паведамленне на тэлекс"</string>
+ <string name="sms_tty_tdd" msgid="6782284969132531532">"Тэкставае паведамленне на TTY/TDD"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"Тэкставае паведамленне на працоўны мабільны тэлефон"</string>
+ <string name="sms_work_pager" msgid="5566924423316960597">"Тэкставае паведамленне на працоўны пэйджар"</string>
+ <string name="sms_assistant" msgid="2773424339923116234">"Напiсаць тэкставае паведамленне: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="sms_mms" msgid="4069352461380762677">"Паведамленне MMS"</string>
+ <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Паведамленне)"</string>
+ <string name="description_video_call" msgid="7120921378651700947">"Зрабіць відэавыклік"</string>
+ <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Выдалiць частыя кантакты?"</string>
+ <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Спіс найчасцей ужываных кантактаў праграм \"Кантакты\" i \"Тэлефон\" ачысціцца, а параметры адрасацыі паштовых праграм абнуляцца."</string>
+ <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Выдаленне частых кантактаў..."</string>
+ <string name="status_available" msgid="5586870015822828392">"Даступны"</string>
+ <string name="status_away" msgid="1838861100379804730">"Адсутнічае"</string>
+ <string name="status_busy" msgid="9147992455450257136">"Заняты"</string>
+ <string name="contactsList" msgid="8661624236494819731">"Кантакты"</string>
+ <string name="local_invisible_directory" msgid="6046691709127661065">"Іншае"</string>
+ <string name="directory_search_label" msgid="1887759056597975053">"Дырэкторыя"</string>
+ <string name="directory_search_label_work" msgid="8618292129829443176">"Працоўны каталог"</string>
+ <string name="local_search_label" msgid="2551177578246113614">"Усе кантакты"</string>
+ <string name="search_results_searching" msgid="3984833028938569930">"Пошук..."</string>
+ <string name="foundTooManyContacts" msgid="5163335650920020220">"Знойдзена вынікаў: больш за <xliff:g id="COUNT">%d</xliff:g>."</string>
+ <string name="listFoundAllContactsZero" msgid="922980883593159444">"Кантактаў няма"</string>
+ <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> знойдзены</item>
+ <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> знойдзены</item>
+ <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> знойдзена</item>
+ <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> знойдзена</item>
+ </plurals>
+ <string name="description_quick_contact_for" msgid="6737516415168327789">"Хуткі кантакт для карыстальніка <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="missing_name" msgid="8745511583852904385">"(Без назвы)"</string>
+ <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Частая сувязь"</string>
+ <string name="description_view_contact_detail" msgid="9133251213656414807">"Прагледзець кантакт"</string>
+ <string name="list_filter_phones" msgid="735313795643493365">"Усе кантакты з нумарамі тэлефонаў"</string>
+ <string name="list_filter_phones_work" msgid="1470173699551475015">"Кантакты працоўнага профілю"</string>
+ <string name="view_updates_from_group" msgid="1782685984905600034">"Прагл. абнаўленняў"</string>
+ <string name="account_phone" msgid="7128032778471187553">"Прылада"</string>
+ <string name="nameLabelsGroup" msgid="2034640839640477827">"Імя"</string>
+ <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Псеўданiм"</string>
+ <string name="full_name" msgid="6602579550613988977">"Iмя"</string>
+ <string name="name_given" msgid="4280790853455320619">"Імя"</string>
+ <string name="name_family" msgid="7466985689626017037">"Прозвішча"</string>
+ <string name="name_prefix" msgid="59756378548779822">"Прэфікс імені"</string>
+ <string name="name_middle" msgid="8467433655992690326">"Імя па бацьку"</string>
+ <string name="name_suffix" msgid="3855278445375651441">"Суфікс да імені"</string>
+ <string name="name_phonetic" msgid="4259595234312430484">"Фанетычны запіс імя"</string>
+ <string name="name_phonetic_given" msgid="8723179018384187631">"Вымаўленне імя"</string>
+ <string name="name_phonetic_middle" msgid="8643721493320405200">"Фанетычны запіс імя па бацьку"</string>
+ <string name="name_phonetic_family" msgid="2640133663656011626">"Вымаўленне прозвішча"</string>
+ <string name="phoneLabelsGroup" msgid="6468091477851199285">"Тэлефон"</string>
+ <string name="emailLabelsGroup" msgid="8389931313045344406">"Электронная пошта"</string>
+ <string name="postalLabelsGroup" msgid="3487738141112589324">"Адрас"</string>
+ <string name="imLabelsGroup" msgid="3898238486262614027">"ІМ"</string>
+ <string name="organizationLabelsGroup" msgid="2478611760751832035">"Арганізацыя"</string>
+ <string name="relationLabelsGroup" msgid="1854373894284572781">"Сувязі"</string>
+ <string name="eventLabelsGroup" msgid="7960408705307831289">"Асаблівая дата"</string>
+ <string name="sms" msgid="1756857139634224222">"Тэкставае паведамленне"</string>
+ <string name="postal_address" msgid="8765560217149624536">"Адрас"</string>
+ <string name="ghostData_company" msgid="5414421120553765775">"Кампанія"</string>
+ <string name="ghostData_title" msgid="7496735200318496110">"Назва"</string>
+ <string name="label_notes" msgid="8337354953278341042">"Нататкі"</string>
+ <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+ <string name="websiteLabelsGroup" msgid="4202998982804009261">"Вэб-старонка"</string>
+ <string name="groupsLabel" msgid="7000816729542098972">"Меткі"</string>
+ <string name="email_home" msgid="8573740658148184279">"Паведамленне на хатні адрас электроннай пошты"</string>
+ <string name="email_mobile" msgid="2042889209787989814">"Адправіць электронную пошту на мабільны адрас"</string>
+ <string name="email_work" msgid="2807430017302722689">"Паведамленне на працоўную электронную пошту"</string>
+ <string name="email_other" msgid="3454004077967657109">"Электронная пошта"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Напiсаць паведамленне на <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email" msgid="5668400997660065897">"Электронная пошта"</string>
+ <string name="postal_street" msgid="8133143961580058972">"Вуліца"</string>
+ <string name="postal_pobox" msgid="4431938829180269821">"Паштовая скрыня"</string>
+ <string name="postal_neighborhood" msgid="1450783874558956739">"Наваколле"</string>
+ <string name="postal_city" msgid="6597491300084895548">"Горад"</string>
+ <string name="postal_region" msgid="6045263193478437672">"Штат"</string>
+ <string name="postal_postcode" msgid="572136414136673751">"Паштовы індэкс"</string>
+ <string name="postal_country" msgid="7638264508416368690">"Краіна"</string>
+ <string name="map_home" msgid="1243547733423343982">"Прагледзець хатні адрас"</string>
+ <string name="map_work" msgid="1360474076921878088">"Паглядзець працоўны адрас"</string>
+ <string name="map_other" msgid="3817820803587012641">"Прагледзець адрас"</string>
+ <string name="map_custom" msgid="6184363799976265281">"Прагледзець адрас <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="chat_aim" msgid="2588492205291249142">"Чат у AIM"</string>
+ <string name="chat_msn" msgid="8041633440091073484">"Чат у Windows Live"</string>
+ <string name="chat_yahoo" msgid="6629211142719943666">"Чат праз Yahoo"</string>
+ <string name="chat_skype" msgid="1210045020427480566">"Чат у Skype"</string>
+ <string name="chat_qq" msgid="4294637812847719693">"Чат у QQ"</string>
+ <string name="chat_gtalk" msgid="981575737258117697">"Чат у Google Talk"</string>
+ <string name="chat_icq" msgid="8438405386153745775">"Чат праз ICQ"</string>
+ <string name="chat_jabber" msgid="7561444230307829609">"Чат у Jabber"</string>
+ <string name="chat" msgid="9025361898797412245">"Чат"</string>
+ <string name="description_minus_button" msgid="6908099247930477551">"выдаліць"</string>
+ <string name="expand_collapse_name_fields_description" msgid="8682630859539604311">"Разгарнуць ці згарнуць назвы палёў"</string>
+ <string name="expand_collapse_phonetic_name_fields_description" msgid="3306777588073354509">"Разгарнуць ці згарнуць палі вымаўлення імён"</string>
+ <string name="list_filter_all_accounts" msgid="8908683398914322369">"Усе кантакты"</string>
+ <string name="list_filter_all_starred" msgid="5031734941601931356">"Пазначана"</string>
+ <string name="list_filter_customize" msgid="4789963356004169321">"Карыстальнiцкi"</string>
+ <string name="list_filter_single" msgid="5871400283515893087">"Кантакт"</string>
+ <string name="display_ungrouped" msgid="6885954210243119591">"Усе кантакты з тэчкі \"Іншыя\""</string>
+ <string name="display_all_contacts" msgid="2031647544742889505">"Усе кантакты"</string>
+ <string name="menu_sync_remove" msgid="3266725887008450161">"Выдаліць групу сінхранізацыі"</string>
+ <string name="dialog_sync_add" msgid="8267045393119375803">"Дадаць групу сінхранізацыі"</string>
+ <string name="display_more_groups" msgid="2682547080423434170">"Больш груп..."</string>
+ <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Выдаленне групы \"<xliff:g id="GROUP">%s</xliff:g>\" з сінхранізацыі таксама выдаліць любыя разгрупаваныя кантакты з сінхранізацыі."</string>
+ <string name="savingDisplayGroups" msgid="2133152192716475939">"Захаванне параметраў адлюстравання..."</string>
+ <string name="menu_done" msgid="796017761764190697">"Зроблена"</string>
+ <string name="menu_doNotSave" msgid="58593876893538465">"Адмена"</string>
+ <string name="listCustomView" msgid="1840624396582117590">"Карыстальніцкі выгляд"</string>
+ <string name="dialog_new_contact_account" msgid="4969619718062454756">"Захаваць імпартаваныя кантакты ў:"</string>
+ <string name="import_from_sim" msgid="3859272228033941659">"Імпарт з SIM-карты"</string>
+ <string name="import_from_sim_summary" msgid="5815105584445743740">"Імпартаваць з SIM-карты <xliff:g id="SIM_NAME">^1</xliff:g> – <xliff:g id="SIM_NUMBER">^2</xliff:g>"</string>
+ <string name="import_from_sim_summary_no_number" msgid="880612418352086012">"Імпартаваць з SIM-карты <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <string name="import_from_vcf_file" product="default" msgid="5304572242183878086">"Імпартаваць з файла .vcf"</string>
+ <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Адмянiць iмпарт файла <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Адмянiць экспарт файла <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Немагчыма адмяніць імпарт/экспарт vCard"</string>
+ <string name="fail_reason_unknown" msgid="1714092345030570863">"Невядомая памылка."</string>
+ <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Немагчыма адкрыць файл \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
+ <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Не атрымалася запусцiць экспарцёр: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+ <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Няма кантактаў для экспарту."</string>
+ <string name="missing_required_permission" msgid="5865884842972833120">"Вы адключылі дазвол, які патрабуецца."</string>
+ <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Памылка экспарту: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+ <string name="fail_reason_too_long_filename" msgid="3393764245254738333">"Патрабаванае імя файла (\"<xliff:g id="FILENAME">%s</xliff:g>\") занадта доўгае."</string>
+ <string name="fail_reason_io_error" msgid="6748358842976073255">"Памылка ўводу/вываду"</string>
+ <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Недастаткова памяці (магчыма, занадта вялікі файл)"</string>
+ <string name="fail_reason_vcard_parse_error" msgid="888263542360355784">"Немагчыма разабраць файл vCard па нечаканай прычыне."</string>
+ <string name="fail_reason_not_supported" msgid="8219562769267148825">"Фармат не падтрымліваецца."</string>
+ <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="6427931733267328564">"Немагчыма сабраць мета-інфармацыю з гэтых файлаў vCard."</string>
+ <string name="fail_reason_failed_to_read_files" msgid="5823434810622484922">"Адзін або некалькі файлаў не могуць быць імпартаваныя (%s)."</string>
+ <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Экспарт файла <xliff:g id="FILENAME">%s</xliff:g> завершаны."</string>
+ <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Экспартаванне кантактаў завершана."</string>
+ <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Экспартаванне кантактаў завершана, націсніце на апавяшчэнне, каб абагуліць кантакты."</string>
+ <string name="touch_to_share_contacts" msgid="4882485525268469736">"Дакраніцеся, каб абагуліць кантакты."</string>
+ <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Экспарт файла <xliff:g id="FILENAME">%s</xliff:g> адменены."</string>
+ <string name="exporting_contact_list_title" msgid="9072240631534457415">"Экспарт дадзеных кантакту"</string>
+ <string name="exporting_contact_list_message" msgid="3367949209642931952">"Кантактныя даныя экспартуюцца."</string>
+ <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Немагчыма атрымаць інфармацыю з базы дадзеных."</string>
+ <string name="composer_has_no_exportable_contact" msgid="3296493229040294335">"Няма кантактаў, якiя можна экспартаваць. Калi ў вашым тэлефоне няма кантактаў, некаторыя пастаўшчыкi дадзеных могуць забараняць экспарт кантактаў з тэлефона."</string>
+ <string name="composer_not_initialized" msgid="2321648986367005254">"Памылка запуску складальнiка файлаў vCard."</string>
+ <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Не атрымалася экспартаваць"</string>
+ <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Памылка экспарта кантактных дадзеных. \nПрычына: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+ <string name="importing_vcard_description" msgid="4245275224298571351">"Імпарт <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Немагчыма прачытаць дадзеныя vCard"</string>
+ <string name="reading_vcard_canceled_title" msgid="1925216585981542019">"Чытанне дадзеных з vCard адменена"</string>
+ <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Заканчэнне імпартавання vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+ <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Імпарт файла <xliff:g id="FILENAME">%s</xliff:g> адменены"</string>
+ <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Файл <xliff:g id="FILENAME">%s</xliff:g> будзе імпартаваны ў бліжэйшы час."</string>
+ <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файл будзе імпартаваны ў бліжэйшы час."</string>
+ <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Запыт экспарту vCard адхілены. Паспрабуйце пазней."</string>
+ <string name="vcard_export_will_start_message" msgid="2210241345252081463">"Файл <xliff:g id="FILENAME">%s</xliff:g> будзе экспартаваны ў бліжэйшы час."</string>
+ <string name="vcard_export_will_start_message_fallback" msgid="6553826997490909749">"Неўзабаве файл будзе экспартаваны."</string>
+ <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Неўзабаве кантакты будуць экспартаваны."</string>
+ <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Запыт экспарту vCard адхілены. Паспрабуйце пазней."</string>
+ <string name="vcard_unknown_filename" msgid="7171709890959915954">"кантакт"</string>
+ <string name="caching_vcard_message" msgid="4926308675041506756">"Кэшуе файлы vCard у лакальнае часовае сховішча. Фактычны імпарт пачнецца ў бліжэйшы час."</string>
+ <string name="vcard_import_failed" msgid="5223531255894842406">"Немагчыма імпартаваць vCard."</string>
+ <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Кант. атр. праз NFC"</string>
+ <string name="confirm_export_title" msgid="6834385377255286349">"Экспартаваць кантакты?"</string>
+ <string name="caching_vcard_title" msgid="1226272312940516605">"Кэшаванне..."</string>
+ <string name="progress_notifier_message" msgid="2311011466908220528">"Імпарт <xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>: <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="export_to_vcf_file" product="default" msgid="4407527157056120858">"Экспартаваць у файл .vcf"</string>
+ <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сартаваць па"</string>
+ <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Імя"</string>
+ <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Прозвішча"</string>
+ <string name="display_options_view_names_as" msgid="6514632499276563482">"Фармат імя"</string>
+ <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Спачатку імя"</string>
+ <string name="display_options_view_family_name_first" msgid="956445100777296467">"Спачатку прозвішча"</string>
+ <string name="settings_accounts" msgid="350219740670774576">"Уліковыя запісы"</string>
+ <string name="default_editor_account" msgid="699591683362420991">"Стандартны ўліковы запіс для новых кантактаў"</string>
+ <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Сінхранізаваць метаданыя кантактаў [DOGFOOD]"</string>
+ <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Сінхранізаваць метаданыя кантактаў"</string>
+ <string name="settings_my_info_title" msgid="1534272456405343119">"Мая інфармацыя"</string>
+ <string name="set_up_profile" msgid="7370213843590143771">"Наладзьце ваш профіль"</string>
+ <string name="setting_about" msgid="7014388749752042863">"Інфармацыя аб Кантактах"</string>
+ <string name="activity_title_settings" msgid="5464130076132770781">"Налады"</string>
+ <string name="share_visible_contacts" msgid="890150378880783797">"Адкрыць бачныя кантакты"</string>
+ <string name="share_visible_contacts_failure" msgid="7324717548166915560">"Збой абагульвання бачных кантактаў."</string>
+ <string name="share_favorite_contacts" msgid="4280926751003081042">"Абагуліць улюбёныя кантакты"</string>
+ <string name="share_contacts" msgid="8109287987498711664">"Абагуліць усе кантакты"</string>
+ <string name="share_contacts_failure" msgid="1216431977330560559">"Збой абагульвання кантактаў."</string>
+ <string name="dialog_import_export" msgid="4360648034889921624">"Імпарт/экспарт кантактаў"</string>
+ <string name="dialog_import" msgid="2431698729761448759">"Імпартаваць кантакты"</string>
+ <string name="share_error" msgid="948429331673358107">"Нельга падзялiцца гэтым кантактам."</string>
+ <string name="no_contact_to_share" msgid="1276397530378323033">"Няма кантактаў, якія можна абагуліць."</string>
+ <string name="menu_search" msgid="9147752853603483719">"Пошук"</string>
+ <string name="menu_contacts_filter" msgid="2165153460860262501">"Паказаць кантакты"</string>
+ <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Кантакты для адлюстр."</string>
+ <string name="custom_list_filter" msgid="2105275443109077687">"Вызначыце карыстальніцкі выгляд"</string>
+ <string name="menu_custom_filter_save" msgid="2679793632208086460">"Захаваць"</string>
+ <string name="hint_findContacts" msgid="7128627979899070325">"Шукаць у кантактах"</string>
+ <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Выбранае"</string>
+ <string name="listTotalAllContactsZero" msgid="5513001821794568211">"Няма кантактаў."</string>
+ <string name="menu_clear_frequents" msgid="7688250191932838833">"Выдалiць частыя кантакты"</string>
+ <string name="menu_select_sim" msgid="3603578201960504010">"Выбраць SIM-карту"</string>
+ <string name="menu_accounts" msgid="1424330057450189074">"Кіраваць уліковымі запісамі"</string>
+ <string name="menu_import_export" msgid="26217871113229507">"Імпарт/экспарт"</string>
+ <string name="menu_blocked_numbers" msgid="5272951629083025995">"Заблакіраваныя нумары"</string>
+ <string name="contact_status_update_attribution" msgid="752179367353018597">"праз <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+ <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> праз <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+ <string name="action_menu_back_from_search" msgid="8793348588949233348">"спыніць пошук"</string>
+ <string name="description_clear_search" msgid="688023606766232904">"Ачысціць пошук"</string>
+ <string name="settings_contact_display_options_title" msgid="4890258244494248687">"Параметры адлюстравання кантактаў"</string>
+ <string name="select_account_dialog_title" msgid="5478489655696599219">"Уліковы запіс"</string>
+ <string name="set_default_account" msgid="4311613760725609801">"Заўсёды ўжываць гэта для выклікаў"</string>
+ <string name="select_phone_account_for_calls" msgid="3810607744451014540">"Выклікаць праз"</string>
+ <string name="call_with_a_note" msgid="8389827628360791676">"Выклікаць з нататкай"</string>
+ <string name="call_subject_hint" msgid="3637498418381454511">"Увядзіце нататку, якую хочаце адправіць разам з выклікам…"</string>
+ <string name="send_and_call_button" msgid="7740295432834590737">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string>
+ <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <plurals name="tab_title_with_unread_items" formatted="false" msgid="7682024005130747825">
+ <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаны элемент. </item>
+ <item quantity="few"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаныя элементы. </item>
+ <item quantity="many"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаных элементаў. </item>
+ <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытанага элемента. </item>
+ </plurals>
+ <string name="about_build_version" msgid="1765533099416999801">"Версія зборкі"</string>
+ <string name="about_open_source_licenses" msgid="6479990452352919641">"Ліцэнзіі на ПЗ з адкрытым зыходным кодам"</string>
+ <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Звесткі аб ліцэнзіі на праграмнае забеспячэнне з адкрытым зыходным кодам"</string>
+ <string name="about_privacy_policy" msgid="3705518622499152626">"Палітыка прыватнасці"</string>
+ <string name="about_terms_of_service" msgid="4642400812150296723">"Умовы абслугоўвання"</string>
+ <string name="activity_title_licenses" msgid="5467767062737708066">"Ліцэнзіі на ПЗ з адкрытым зыходным кодам"</string>
+ <string name="url_open_error_toast" msgid="452592089815420457">"Збой адкрыцця URL-адраса."</string>
+ <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> - пазначана"</string>
+ <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> - не пазначана"</string>
+ <string name="description_search_video_call" msgid="5841525580339803272">"Пачаць відэавыклік"</string>
+ <string name="description_delete_contact" msgid="53835657343783663">"Выдаліць"</string>
+ <string name="description_no_name_header" msgid="8884991311595943271">"Шматкроп\'е"</string>
+ <!-- no translation found for callDurationSecondFormat (7067644915903528776) -->
+ <skip />
+ <!-- no translation found for callDurationMinuteFormat (4647095486747447674) -->
+ <skip />
+ <!-- no translation found for callDurationHourFormat (7392254193808506640) -->
+ <skip />
</resources>
diff --git a/res/values-bs-rBA-sw600dp/strings.xml b/res/values-bs-rBA-sw600dp/strings.xml
new file mode 100644
index 0000000..6b0ac29
--- /dev/null
+++ b/res/values-bs-rBA-sw600dp/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2012 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
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="account_phone" msgid="347665663520819575">"Uređaj"</string>
+ <string name="composer_has_no_exportable_contact" msgid="5998889616701036804">"Nema kontakata koji se mogu izvoziti. Ako imate kontakte na tabletu, neki dobavljači podataka možda ne dozvoljavaju izvoz kontakata s tableta."</string>
+</resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 67f5166..3f063dc 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -17,9 +17,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
- <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakti"</string>
- <string name="quickContactActivityLabel" msgid="7985456650689347268">"Prikaži kontakt"</string>
- <string name="editContactActivityLabel" msgid="1129944572070802839">"Uredi kontakt"</string>
<string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
<string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
@@ -31,12 +28,7 @@
<string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izaberi kontakt"</string>
<string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Odaberi"</string>
<string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Napravi novi kontakt"</string>
- <string name="starredList" msgid="4817256136413959463">"Označeno zvijezdom"</string>
- <string name="frequentList" msgid="7154768136473953056">"Često kontaktirani"</string>
- <string name="strequentList" msgid="5640192862059373511">"Favoriti"</string>
<string name="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</string>
- <string name="editContactDescription" msgid="2947202828256214947">"Uredi kontakt"</string>
- <string name="insertContactDescription" msgid="4709878105452681987">"Napravi kontakt"</string>
<string name="contactDetailAbout" msgid="5430408883907061400">"O kontaktu"</string>
<string name="contactDetailUpdates" msgid="3780588624763446941">"Ažuriranja"</string>
<string name="searchHint" msgid="8482945356247760701">"Traži kontakte"</string>
@@ -52,7 +44,7 @@
<string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
<string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji tekstualnu poruku kontaktu"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
- <string name="menu_editGroup" msgid="5062005185370983720">"Uredi"</string>
+ <string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
<string name="menu_deleteGroup" msgid="1126469629233412249">"Izbriši oznaku"</string>
<string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj kontakt"</string>
@@ -80,10 +72,15 @@
<item quantity="few">Kontakti su izbrisani</item>
<item quantity="other">Kontakti su izbrisani</item>
</plurals>
- <plurals name="contacts_count" formatted="false" msgid="3287407967505649458">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata</item>
+ <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakta</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakata</item>
+ </plurals>
+ <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+ <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
</plurals>
<string name="title_from_google" msgid="4664084747121207202">"Sa Googlea"</string>
<string name="title_from_other_accounts" msgid="8307885412426754288">"Sa računa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
@@ -111,10 +108,12 @@
<string name="customLabelPickerTitle" msgid="1081475101983255212">"Prilagođeni naziv oznake"</string>
<string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Pošalji pozive direktno na govornu poštu"</string>
<string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
- <string name="noContacts" msgid="4955659076981974652">"Nema kontakata"</string>
+ <string name="noContacts" msgid="2228592924476426108">"Spisak kontakata je prazan"</string>
<string name="noGroups" msgid="4607906327968232225">"Nema oznaka."</string>
<string name="noAccounts" msgid="7768267764545265909">"Potreban vam je račun da napravite grupe."</string>
<string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata s ovom oznakom"</string>
+ <string name="emptyAccount" msgid="6873962901497975964">"Nema kontakata na ovom računu"</string>
+ <string name="emptyMainList" msgid="2772242747899664460">"Spisak kontakata je prazan"</string>
<string name="contactSavedToast" msgid="9171862279493213075">"Kontakt je sačuvan"</string>
<string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakti su razdvojeni"</string>
<string name="contactSavedErrorToast" msgid="3207250533172944892">"Nije moguće sačuvati promjene kontakta."</string>
@@ -131,6 +130,7 @@
<string name="groupMembersRemovedToast" msgid="3510563559799376603">"Uklonjeno iz oznake"</string>
<string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano oznaci"</string>
<string name="groupSavedErrorToast" msgid="8121032018490980184">"Nije moguće sačuvati promjene oznake."</string>
+ <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta oznaka već postoji"</string>
<plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt s brojem telefona</item>
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta s brojevima telefona</item>
@@ -223,8 +223,7 @@
<string name="social_widget_loading" msgid="5327336597364074608">"Učitavanje…"</string>
<string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Napravi novi kontakt"</string>
<string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj račun"</string>
- <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Uvezi kontakte"</string>
- <string name="create_group_dialog_title" msgid="5363404287877384473">"Napravi novu oznaku"</string>
+ <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
<string name="delete_group_dialog_message" msgid="335713829185261371">"Izbrisati oznaku \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontakti neće biti izbrisani.)"</string>
<string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Upišite ime kontakta prije povezivanja s drugim kontaktom."</string>
@@ -232,24 +231,24 @@
<string name="set_default" msgid="4417505153468300351">"Postavi zadano"</string>
<string name="clear_default" msgid="7193185801596678067">"Obriši zadano"</string>
<string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
- <string name="cancel_confirmation_dialog_message" msgid="5058226498605989285">"Želite li odbaciti napravljene promjene i prekinuti uređivanje?"</string>
+ <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Odbaciti promjene?"</string>
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
- <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nastavi uređivanje"</string>
+ <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
+ <!-- no translation found for leave_customize_confirmation_dialog_message (4277114551206032979) -->
+ <skip />
<string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
<string name="enter_contact_name" msgid="4594274696120278368">"Traži kontakte"</string>
- <!-- no translation found for title_edit_group (1889302367574226969) -->
- <skip />
+ <string name="title_edit_group" msgid="8602752287270586734">"Ukloni kontakte"</string>
<string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
<string name="external_profile_title" msgid="8034998767621359438">"Moj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
<string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikazuju se svi kontakti"</string>
<string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte sigurnost svojih kontakata čak i ako izgubite telefon: sinhronizirajte ih s mrežnom uslugom."</string>
<string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodajte račun"</string>
- <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Neće biti napravljena sigurnosna kopija novog računa. Dodati račun za pravljenje sigurnosnih kopija kontakata na mreži?"</string>
+ <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojite trenutak da dodate račun putem kojeg će se kontakti sigurnosno kopirati na Google."</string>
<string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti će biti sačuvani na račun <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
<string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izaberite zadani račun za nove kontakte:"</string>
<string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj novi kontakt"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
- <string name="keep_local" msgid="1258761699192993322">"Zadrži na uređaju"</string>
<string name="add_account" msgid="8201790677994503186">"Dodajte račun"</string>
<string name="add_new_account" msgid="5748627740680940264">"Dodaj novi račun"</string>
<string name="menu_export_database" msgid="2659719297530170820">"Izvezi fajlove baze podataka"</string>
@@ -261,7 +260,6 @@
<string name="about_card_title" msgid="2920942314212825637">"O kontaktu"</string>
<string name="send_message" msgid="8938418965550543196">"Pošalji poruku"</string>
<string name="toast_making_personal_copy" msgid="288549957278065542">"Izrađivanje lične kopije u toku…"</string>
- <string name="yesterday" msgid="6840858548955018569">"Jučer"</string>
<string name="tomorrow" msgid="6241969467795308581">"Sutra"</string>
<string name="today" msgid="8041090779381781781">"Danas"</string>
<string name="today_at_time_fmt" msgid="605665249491030460">"Danas u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
@@ -346,4 +344,277 @@
<string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Događaji i poruke"</string>
<string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Događaji"</string>
<string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Poruke"</string>
+ <string name="hamburger_feature_highlight_header" msgid="7442308698936786415">"Organizirajte spisak"</string>
+ <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Uklonite duplikate i grupirajte kontakte prema oznaci"</string>
+ <!-- no translation found for undo (1425165101664071422) -->
+ <skip />
+ <string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
+ <string name="copy_text" msgid="3257145021583508761">"Kopiraj u međumemoriju"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Pozovi <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="call_home" msgid="1990519474420545392">"Pozovi kuću"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Pozovi mobitel"</string>
+ <string name="call_work" msgid="5328785911463744028">"Pozovi posao"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Pozovi poslovni faks"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Pozovi kućni faks"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Pozovi pejdžer"</string>
+ <string name="call_other" msgid="8563753966926932052">"Pozovi"</string>
+ <string name="call_callback" msgid="1910165691349426858">"Pozovi broj za uzvraćanje poziva"</string>
+ <string name="call_car" msgid="3280537320306436445">"Pozovi automobil"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Pozovi glavni broj kompanije"</string>
+ <string name="call_isdn" msgid="1541590690193403411">"Pozovi ISDN"</string>
+ <string name="call_main" msgid="6082900571803441339">"Pozovi glavni broj"</string>
+ <string name="call_other_fax" msgid="5745314124619636674">"Pozovi faks"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Pozovi radio"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Pozovi teleks"</string>
+ <string name="call_tty_tdd" msgid="8951266948204379604">"Pozovi TTY/TDD"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Pozovi poslovni mobitel"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Pozovi poslovni pejdžer"</string>
+ <string name="call_assistant" msgid="2141641383068514308">"Pozovi <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Pozovi MMS"</string>
+ <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Poziv)"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"Pošalji tekstualnu poruku na <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="sms_home" msgid="7524332261493162995">"Pošalji tekstualnu poruku na kućni broj"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"Pošalji tekstualnu poruku na mobilni"</string>
+ <string name="sms_work" msgid="2269624156655267740">"Pošalji tekstualnu poruku na poslovni broj"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"Pošalji tekstualnu poruku na poslovni faks"</string>
+ <string name="sms_fax_home" msgid="9204042076306809634">"Pošalji tekstualnu poruku na kućni faks"</string>
+ <string name="sms_pager" msgid="7730404569637015192">"Pošalji tekstualnu poruku na pejdžer"</string>
+ <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+ <string name="sms_callback" msgid="5004824430094288752">"Pošalji tekstualnu poruku na broj za povratni poziv"</string>
+ <string name="sms_car" msgid="7444227058437359641">"Pošalji tekstualnu poruku na automobil"</string>
+ <string name="sms_company_main" msgid="118970873419678087">"Pošalji tekstualnu poruku na glavni broj kompanije"</string>
+ <string name="sms_isdn" msgid="8153785037515047845">"Pošalji tekstualnu poruku na ISDN"</string>
+ <string name="sms_main" msgid="8621625784504541679">"Pošalji tekstualnu poruku na glavni broj"</string>
+ <string name="sms_other_fax" msgid="3888842199855843152">"Pošalji tekstualnu poruku na faks"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"Pošalji tekstualnu poruku na radio"</string>
+ <string name="sms_telex" msgid="9034802430065267848">"Pošalji tekstualnu poruku na teleks"</string>
+ <string name="sms_tty_tdd" msgid="6782284969132531532">"Pošalji tekstualnu poruku na TTY/TDD"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"Pošalji tekstualnu poruku na poslovni mobitel"</string>
+ <string name="sms_work_pager" msgid="5566924423316960597">"Pošalji tekstualnu poruku na poslovni pejdžer"</string>
+ <string name="sms_assistant" msgid="2773424339923116234">"Pošalji tekstualnu poruku <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="sms_mms" msgid="4069352461380762677">"Pošalji tekstualnu poruku na MMS broj"</string>
+ <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Poruka)"</string>
+ <string name="description_video_call" msgid="7120921378651700947">"Uputi videopoziv"</string>
+ <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Obrisati često kontaktirane osobe?"</string>
+ <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Obrisat ćete listu često kontaktiranih osoba u aplikaciji Kontakti i Aplikaciji za telefon, pa će aplikacije za e-poštu morati ispočetka učiti vaše postavke adresa."</string>
+ <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje često kontaktiranih osoba…"</string>
+ <string name="status_available" msgid="5586870015822828392">"Dostupno"</string>
+ <string name="status_away" msgid="1838861100379804730">"Odsutan"</string>
+ <string name="status_busy" msgid="9147992455450257136">"Zauzeto"</string>
+ <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+ <string name="local_invisible_directory" msgid="6046691709127661065">"Ostali"</string>
+ <string name="directory_search_label" msgid="1887759056597975053">"Direktorij"</string>
+ <string name="directory_search_label_work" msgid="8618292129829443176">"Poslovni imenik"</string>
+ <string name="local_search_label" msgid="2551177578246113614">"Svi kontakti"</string>
+ <string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje…"</string>
+ <string name="foundTooManyContacts" msgid="5163335650920020220">"Pronađeno je više od <xliff:g id="COUNT">%d</xliff:g>."</string>
+ <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
+ <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt pronađen</item>
+ <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta pronađena</item>
+ <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata pronađeno</item>
+ </plurals>
+ <string name="description_quick_contact_for" msgid="6737516415168327789">"Brzi kontakt za <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="missing_name" msgid="8745511583852904385">"(Bez imena)"</string>
+ <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Često kontaktirani"</string>
+ <string name="description_view_contact_detail" msgid="9133251213656414807">"Prikaži kontakt"</string>
+ <string name="list_filter_phones" msgid="735313795643493365">"Svi kontakti s brojevima telefona"</string>
+ <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakti radnog profila"</string>
+ <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaži ažuriranja"</string>
+ <string name="account_phone" msgid="7128032778471187553">"Uređaj"</string>
+ <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+ <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nadimak"</string>
+ <string name="full_name" msgid="6602579550613988977">"Ime"</string>
+ <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+ <string name="name_family" msgid="7466985689626017037">"Prezime"</string>
+ <string name="name_prefix" msgid="59756378548779822">"Prefiks imena"</string>
+ <string name="name_middle" msgid="8467433655992690326">"Srednje ime"</string>
+ <string name="name_suffix" msgid="3855278445375651441">"Sufiks imena"</string>
+ <string name="name_phonetic" msgid="4259595234312430484">"Fonetsko ime"</string>
+ <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetsko ime"</string>
+ <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetsko srednje ime"</string>
+ <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetsko prezime"</string>
+ <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefoniraj"</string>
+ <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pošta"</string>
+ <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+ <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+ <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+ <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+ <string name="eventLabelsGroup" msgid="7960408705307831289">"Posebni datum"</string>
+ <string name="sms" msgid="1756857139634224222">"Tekstualna poruka"</string>
+ <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+ <string name="ghostData_company" msgid="5414421120553765775">"Kompanija"</string>
+ <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+ <string name="label_notes" msgid="8337354953278341042">"Bilješke"</string>
+ <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+ <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web stranica"</string>
+ <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+ <string name="email_home" msgid="8573740658148184279">"Pošalji poruku e-pošte na kućnu adresu e-pošte"</string>
+ <string name="email_mobile" msgid="2042889209787989814">"Mobilna e-pošta"</string>
+ <string name="email_work" msgid="2807430017302722689">"Pošalji poruku e-pošte na poslovnu adresu e-pošte"</string>
+ <string name="email_other" msgid="3454004077967657109">"E-pošta"</string>
+ <string name="email_custom" msgid="7548003991586214105">"E-pošta <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email" msgid="5668400997660065897">"E-pošta"</string>
+ <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+ <string name="postal_pobox" msgid="4431938829180269821">"Poštanski pretinac"</string>
+ <string name="postal_neighborhood" msgid="1450783874558956739">"Naselje"</string>
+ <string name="postal_city" msgid="6597491300084895548">"Grad"</string>
+ <string name="postal_region" msgid="6045263193478437672">"Država"</string>
+ <string name="postal_postcode" msgid="572136414136673751">"Poštanski broj"</string>
+ <string name="postal_country" msgid="7638264508416368690">"Država"</string>
+ <string name="map_home" msgid="1243547733423343982">"Prikaži kućnu adresu"</string>
+ <string name="map_work" msgid="1360474076921878088">"Prikaži poslovnu adresu"</string>
+ <string name="map_other" msgid="3817820803587012641">"Prikaži adresu"</string>
+ <string name="map_custom" msgid="6184363799976265281">"Prikaži adresu <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="chat_aim" msgid="2588492205291249142">"Ćaskanje putem aplikacije AIM"</string>
+ <string name="chat_msn" msgid="8041633440091073484">"Ćaskanje putem aplikacije Windows Live"</string>
+ <string name="chat_yahoo" msgid="6629211142719943666">"Ćaskanje putem aplikacije Yahoo"</string>
+ <string name="chat_skype" msgid="1210045020427480566">"Ćaskanje putem aplikacije Skype"</string>
+ <string name="chat_qq" msgid="4294637812847719693">"Ćaskanje putem aplikacije QQ"</string>
+ <string name="chat_gtalk" msgid="981575737258117697">"Ćaskanje putem aplikacije Google Talk"</string>
+ <string name="chat_icq" msgid="8438405386153745775">"Ćaskanje putem aplikacije ICQ"</string>
+ <string name="chat_jabber" msgid="7561444230307829609">"Ćaskanje putem aplikacije Jabber"</string>
+ <string name="chat" msgid="9025361898797412245">"Ćaskanje"</string>
+ <string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
+ <string name="expand_collapse_name_fields_description" msgid="8682630859539604311">"Proširi ili skupi polja za imena"</string>
+ <string name="expand_collapse_phonetic_name_fields_description" msgid="3306777588073354509">"Proširi ili skupi polja za fonetska imena"</string>
+ <string name="list_filter_all_accounts" msgid="8908683398914322369">"Svi kontakti"</string>
+ <string name="list_filter_all_starred" msgid="5031734941601931356">"Označeno zvijezdom"</string>
+ <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+ <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+ <string name="display_ungrouped" msgid="6885954210243119591">"Svi drugi kontakti"</string>
+ <string name="display_all_contacts" msgid="2031647544742889505">"Svi kontakti"</string>
+ <string name="menu_sync_remove" msgid="3266725887008450161">"Ukloni grupu za sinhronizaciju"</string>
+ <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupu za sinhronizaciju"</string>
+ <string name="display_more_groups" msgid="2682547080423434170">"Više grupa…"</string>
+ <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Uklanjanje grupe \"<xliff:g id="GROUP">%s</xliff:g>\" iz sinhronizacije će također ukloniti sve negrupirane kontakte iz sinhronizacije."</string>
+ <string name="savingDisplayGroups" msgid="2133152192716475939">"Čuvanje opcija prikaza u toku…"</string>
+ <string name="menu_done" msgid="796017761764190697">"Gotovo"</string>
+ <string name="menu_doNotSave" msgid="58593876893538465">"Otkaži"</string>
+ <string name="listCustomView" msgid="1840624396582117590">"Prilagođeni prikaz"</string>
+ <string name="dialog_new_contact_account" msgid="4969619718062454756">"Sačuvaj uvezene kontakte na karticu:"</string>
+ <string name="import_from_sim" msgid="3859272228033941659">"Uvezi sa SIM kartice"</string>
+ <string name="import_from_sim_summary" msgid="5815105584445743740">"Uvezi sa SIM kartice <xliff:g id="SIM_NAME">^1</xliff:g> - <xliff:g id="SIM_NUMBER">^2</xliff:g>"</string>
+ <string name="import_from_sim_summary_no_number" msgid="880612418352086012">"Uvezi sa SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <string name="import_from_vcf_file" product="default" msgid="5304572242183878086">"Uvezi iz .vcf fajla"</string>
+ <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Otkazati uvoz fajla <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Otkazati izvoz fajla <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+ <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nemoguće otkazati uvoz/izvoz vCard fajla"</string>
+ <string name="fail_reason_unknown" msgid="1714092345030570863">"Nepoznata greška."</string>
+ <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nije moguće otvoriti \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+ <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nije moguće pokrenuti program za izvoz: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+ <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nema sadržaja za izvoz."</string>
+ <string name="missing_required_permission" msgid="5865884842972833120">"Onemogućili ste potrebnu dozvolu."</string>
+ <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Došlo je do greške prilikom izvoza: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+ <string name="fail_reason_too_long_filename" msgid="3393764245254738333">"Zahtijevano ime fajla je predugo (\"<xliff:g id="FILENAME">%s</xliff:g>\")."</string>
+ <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O greška"</string>
+ <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nema dovoljno memorije. Možda je fajl prevelik."</string>
+ <string name="fail_reason_vcard_parse_error" msgid="888263542360355784">"Nije moguće raščlaniti vCard fajl iz neočekivanog razloga."</string>
+ <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nije podržan."</string>
+ <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="6427931733267328564">"Nije moguće otvoriti metapodatke vCard fajl(ov)a."</string>
+ <string name="fail_reason_failed_to_read_files" msgid="5823434810622484922">"Nije moguće uvesti jedan ili više fajlova (%s)."</string>
+ <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Izvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je završen."</string>
+ <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Izvoz kontakata je završen."</string>
+ <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Izvoz kontakata je završen. Kliknite obavještenje da podijelite kontakte."</string>
+ <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dodirnite da podijelite kontakte."</string>
+ <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je otkazan."</string>
+ <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvoz podataka kontakta u toku"</string>
+ <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podaci kontakta se izvoze."</string>
+ <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nije moguće preuzeti informacije iz baze podataka."</string>
+ <string name="composer_has_no_exportable_contact" msgid="3296493229040294335">"Nema kontakata koji se mogu izvoziti. Ako imate kontakte na telefonu, neki dobavljači podataka možda ne dozvoljavaju izvoz kontakata s telefona."</string>
+ <string name="composer_not_initialized" msgid="2321648986367005254">"Program za izradu kartica vCard nije pravilno pokrenut."</string>
+ <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Izvoz nije uspio"</string>
+ <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podaci kontakta nisu izvezeni.\nRazlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+ <string name="importing_vcard_description" msgid="4245275224298571351">"Uvozi se kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Čitanje podataka vCard nije uspjelo"</string>
+ <string name="reading_vcard_canceled_title" msgid="1925216585981542019">"Čitanje vCard podataka je otkazano"</string>
+ <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Završen uvoz vCard fajla <xliff:g id="FILENAME">%s</xliff:g>"</string>
+ <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je otkazan"</string>
+ <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Fajl <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti uvezen."</string>
+ <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fajl će uskoro biti uvezen."</string>
+ <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahtjev za uvoz vCard fajla je odbijen. Pokušajte ponovo kasnije."</string>
+ <string name="vcard_export_will_start_message" msgid="2210241345252081463">"Fajl <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti izvezen."</string>
+ <string name="vcard_export_will_start_message_fallback" msgid="6553826997490909749">"Fajl će uskoro biti izvezen."</string>
+ <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakti će uskoro biti izvezeni."</string>
+ <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahtjev za izvoz vCard fajla je odbijen. Pokušajte ponovo kasnije."</string>
+ <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+ <string name="caching_vcard_message" msgid="4926308675041506756">"Spremanje vCard fajlova u lokalnu privremenu pohranu. Uvoz će započeti uskoro."</string>
+ <string name="vcard_import_failed" msgid="5223531255894842406">"Uvoz vCard kartice nije uspio."</string>
+ <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt NFC-om"</string>
+ <string name="confirm_export_title" msgid="6834385377255286349">"Izvesti kontakte?"</string>
+ <string name="caching_vcard_title" msgid="1226272312940516605">"Spremanje u privremenu pohranu u toku"</string>
+ <string name="progress_notifier_message" msgid="2311011466908220528">"Uvozi se <xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>: <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="export_to_vcf_file" product="default" msgid="4407527157056120858">"Izvezi u .vcf fajl"</string>
+ <string name="display_options_sort_list_by" msgid="7028809117272018712">"Poredaj po"</string>
+ <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+ <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Prezime"</string>
+ <string name="display_options_view_names_as" msgid="6514632499276563482">"Format imena"</string>
+ <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Ime prvo"</string>
+ <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prezime prvo"</string>
+ <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
+ <string name="default_editor_account" msgid="699591683362420991">"Zadani račun za nove kontakte"</string>
+ <string name="sync_contact_metadata_title" msgid="6957956139306960211">"Sinhroniziraj metapodatke kontakata [DOGFOOD]"</string>
+ <string name="sync_contact_metadata_dialog_title" msgid="6192335951588820553">"Sinhroniziraj metapodatke kontakata"</string>
+ <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
+ <string name="set_up_profile" msgid="7370213843590143771">"Postavite svoj profil"</string>
+ <string name="setting_about" msgid="7014388749752042863">"O kontaktima"</string>
+ <string name="activity_title_settings" msgid="5464130076132770781">"Postavke"</string>
+ <string name="share_visible_contacts" msgid="890150378880783797">"Podijeli vidljive kontakte"</string>
+ <string name="share_visible_contacts_failure" msgid="7324717548166915560">"Dijeljenje vidljivih kontakata nije uspjelo."</string>
+ <string name="share_favorite_contacts" msgid="4280926751003081042">"Dijeli omiljene kontakte"</string>
+ <string name="share_contacts" msgid="8109287987498711664">"Dijeli sve kontakte"</string>
+ <string name="share_contacts_failure" msgid="1216431977330560559">"Dijeljenje kontakata nije uspjelo."</string>
+ <string name="dialog_import_export" msgid="4360648034889921624">"Uvoz/izvoz kontakata"</string>
+ <string name="dialog_import" msgid="2431698729761448759">"Uvezi kontakte"</string>
+ <string name="share_error" msgid="948429331673358107">"Ovaj kontakt se ne može podijeliti."</string>
+ <string name="no_contact_to_share" msgid="1276397530378323033">"Nema kontakata za dijeljenje."</string>
+ <string name="menu_search" msgid="9147752853603483719">"Traži"</string>
+ <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakti za prikaz"</string>
+ <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakti za prikaz"</string>
+ <string name="custom_list_filter" msgid="2105275443109077687">"Definirajte prilagođeni prikaz"</string>
+ <string name="menu_custom_filter_save" msgid="2679793632208086460">"Sačuvaj"</string>
+ <string name="hint_findContacts" msgid="7128627979899070325">"Traži kontakte"</string>
+ <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriti"</string>
+ <string name="listTotalAllContactsZero" msgid="5513001821794568211">"Nema kontakata."</string>
+ <string name="menu_clear_frequents" msgid="7688250191932838833">"Obriši često kontaktirane"</string>
+ <string name="menu_select_sim" msgid="3603578201960504010">"Odaberi SIM karticu"</string>
+ <string name="menu_accounts" msgid="1424330057450189074">"Upravljaj računima"</string>
+ <string name="menu_import_export" msgid="26217871113229507">"Uvoz/izvoz"</string>
+ <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
+ <string name="contact_status_update_attribution" msgid="752179367353018597">"putem <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+ <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> putem <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+ <string name="action_menu_back_from_search" msgid="8793348588949233348">"zaustavi pretraživanje"</string>
+ <string name="description_clear_search" msgid="688023606766232904">"Obriši pretragu"</string>
+ <string name="settings_contact_display_options_title" msgid="4890258244494248687">"Opcije prikaza kontakata"</string>
+ <string name="select_account_dialog_title" msgid="5478489655696599219">"Račun"</string>
+ <string name="set_default_account" msgid="4311613760725609801">"Uvijek koristi ovu karticu za poziv"</string>
+ <string name="select_phone_account_for_calls" msgid="3810607744451014540">"Poziv putem"</string>
+ <string name="call_with_a_note" msgid="8389827628360791676">"Poziv s bilješkom"</string>
+ <string name="call_subject_hint" msgid="3637498418381454511">"Upišite bilješku koja će se poslati uz poziv ..."</string>
+ <string name="send_and_call_button" msgid="7740295432834590737">"POŠALJI I POZOVI"</string>
+ <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <plurals name="tab_title_with_unread_items" formatted="false" msgid="7682024005130747825">
+ <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
+ <item quantity="few"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
+ <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
+ </plurals>
+ <string name="about_build_version" msgid="1765533099416999801">"Podverzija"</string>
+ <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence otvorenog koda"</string>
+ <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalji o licenci za softver otvorenog koda"</string>
+ <string name="about_privacy_policy" msgid="3705518622499152626">"Pravila o privatnosti"</string>
+ <string name="about_terms_of_service" msgid="4642400812150296723">"Uslovi pružanja usluge"</string>
+ <string name="activity_title_licenses" msgid="5467767062737708066">"Licence otvorenog koda"</string>
+ <string name="url_open_error_toast" msgid="452592089815420457">"Otvaranje URL-a nije uspjelo."</string>
+ <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> je označen"</string>
+ <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nije označen"</string>
+ <string name="description_search_video_call" msgid="5841525580339803272">"Uputi videopoziv"</string>
+ <string name="description_delete_contact" msgid="53835657343783663">"Izbriši"</string>
+ <string name="description_no_name_header" msgid="8884991311595943271">"Elipsa"</string>
+ <!-- no translation found for callDurationSecondFormat (7067644915903528776) -->
+ <skip />
+ <!-- no translation found for callDurationMinuteFormat (4647095486747447674) -->
+ <skip />
+ <!-- no translation found for callDurationHourFormat (7392254193808506640) -->
+ <skip />
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 37ea0ba..0cba8e6 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -81,6 +81,12 @@
<!-- Color of background of all empty states. -->
<color name="empty_state_background">#efefef</color>
+ <!-- Colors of swipeRefreshLayout's spinning circle. -->
+ <color name="swipe_refresh_color1">#0f9d58</color>
+ <color name="swipe_refresh_color2">#dd4b37</color>
+ <color name="swipe_refresh_color3">#4285f4</color>
+ <color name="swipe_refresh_color4">#f4b400</color>
+
<!-- Color of hamburger icon in promo -->
<color name="hamburger_feature_highlight_inner_color">#00ffffff</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d355021..ab102fe 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -295,6 +295,9 @@
<!-- Minimum height for group name EditText -->
<dimen name="group_name_edit_text_min_height">48dp</dimen>
+ <!-- Distance to pull down before causing a refresh. -->
+ <dimen name="pull_to_refresh_distance">40dp</dimen>
+
<!-- Elevation of contact list header -->
<dimen name="contact_list_header_elevation">2dp</dimen>
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
index 1a5b346..bce50ea 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -15,6 +15,7 @@
import com.android.contacts.common.logging.Logger;
import com.android.contacts.common.preference.PreferenceManager;
+import com.android.contactsbind.search.AutocompleteHelper;
import android.content.Context;
@@ -28,4 +29,8 @@
}
public static PreferenceManager getPreferenceManager(Context context) { return null; }
+
+ public static AutocompleteHelper getAutocompleteHelper(Context context) {
+ return null;
+ }
}
diff --git a/src-bind/com/android/contactsbind/experiments/Flags.java b/src-bind/com/android/contactsbind/experiments/Flags.java
index 5bf47e8..72cf481 100644
--- a/src-bind/com/android/contactsbind/experiments/Flags.java
+++ b/src-bind/com/android/contactsbind/experiments/Flags.java
@@ -17,8 +17,6 @@
import android.content.Context;
-import com.android.contacts.common.Experiments;
-
import java.util.HashMap;
import java.util.Map;
diff --git a/src-bind/com/android/contactsbind/search/AutocompleteHelper.java b/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
new file mode 100644
index 0000000..c37a828
--- /dev/null
+++ b/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
@@ -0,0 +1,39 @@
+/*
+ * 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.contactsbind.search;
+
+import android.database.Cursor;
+
+public final class AutocompleteHelper {
+
+ public static final String TAG = "Autocomplete";
+
+ public interface Listener {
+ void onAutocompletesAvailable(Cursor cursor);
+ }
+
+ private AutocompleteHelper() {
+ }
+
+ public void setListener(Listener listener) {
+ }
+
+ public void setProjection(String[] projection) {
+ }
+
+ public void setQuery(String query) {
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 5f53396..41139d8 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -21,16 +21,19 @@
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.ActivityNotFoundException;
+import android.content.ContentResolver;
import android.content.BroadcastReceiver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
+import android.content.SyncStatusObserver;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
import android.os.Parcelable;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Intents;
@@ -44,6 +47,7 @@
import android.support.v4.view.GravityCompat;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
+import android.support.v4.widget.SwipeRefreshLayout;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
@@ -63,6 +67,7 @@
import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.TabState;
+import com.android.contacts.common.Experiments;
import com.android.contacts.common.activity.RequestPermissionsActivity;
import com.android.contacts.common.compat.CompatUtils;
import com.android.contacts.common.interactions.ImportExportDialogFragment;
@@ -96,6 +101,8 @@
import com.android.contacts.quickcontact.QuickContactActivity;
import com.android.contacts.util.DialogManager;
import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contacts.util.SyncUtil;
+import com.android.contactsbind.experiments.Flags;
import com.android.contacts.widget.FloatingActionButtonBehavior;
import com.google.android.libraries.material.featurehighlight.FeatureHighlight;
@@ -180,6 +187,54 @@
private final int mInstanceId;
private static final AtomicInteger sNextInstanceId = new AtomicInteger();
+ private Object mStatusChangeListenerHandle;
+
+ private final Handler mHandler = new Handler();
+
+ private SyncStatusObserver mSyncStatusObserver = new SyncStatusObserver() {
+ public void onStatusChanged(int which) {
+ mHandler.post(new Runnable() {
+ public void run() {
+ onSyncStateUpdated();
+ }
+ });
+ }
+ };
+
+ // Update sync status for accounts in current ContactListFilter
+ private void onSyncStateUpdated() {
+ if (mActionBarAdapter.isSearchMode() || mActionBarAdapter.isSelectionMode()) {
+ return;
+ }
+
+ final ContactListFilter filter = mContactListFilterController.getFilter();
+ if (filter != null) {
+ final SwipeRefreshLayout swipeRefreshLayout = mAllFragment.getSwipeRefreshLayout();
+ if (swipeRefreshLayout == null) {
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Can not load swipeRefreshLayout, swipeRefreshLayout is null");
+ }
+ return;
+ }
+
+ final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(this)
+ .getAccounts(/* contactsWritableOnly */ true);
+ final List<Account> syncableAccounts = filter.getSyncableAccounts(accounts);
+ // If one of the accounts is active or pending, use spinning circle to indicate one of
+ // the syncs is in progress.
+ if (syncableAccounts != null && syncableAccounts.size() > 0) {
+ for (Account account: syncableAccounts) {
+ if (SyncUtil.isSyncStatusPendingOrActive(account)
+ || SyncUtil.isUnsyncableGoogleAccount(account)) {
+ swipeRefreshLayout.setRefreshing(true);
+ return;
+ }
+ }
+ }
+ swipeRefreshLayout.setRefreshing(false);
+ }
+ }
+
public PeopleActivity() {
mInstanceId = sNextInstanceId.getAndIncrement();
mIntentResolver = new ContactsIntentResolver(this);
@@ -443,6 +498,10 @@
super.onPause();
+ if (Flags.getInstance(this).getBoolean(Experiments.PULL_TO_REFRESH)) {
+ ContentResolver.removeStatusChangeListener(mStatusChangeListenerHandle);
+ onSyncStateUpdated();
+ }
}
@Override
@@ -462,6 +521,15 @@
// Current tab may have changed since the last onSaveInstanceState(). Make sure
// the actual contents match the tab.
updateFragmentsVisibility();
+
+ if (Flags.getInstance(this).getBoolean(Experiments.PULL_TO_REFRESH)) {
+ mStatusChangeListenerHandle = ContentResolver.addStatusChangeListener(
+ ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE
+ | ContentResolver.SYNC_OBSERVER_TYPE_PENDING
+ | ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS,
+ mSyncStatusObserver);
+ onSyncStateUpdated();
+ }
maybeShowHamburgerFeatureHighlight();
mSaveServiceListener = new SaveServiceListener();
@@ -623,6 +691,10 @@
updateFragmentsVisibility();
invalidateOptionsMenu();
showFabWithAnimation(shouldShowFabForAccount());
+ // Determine whether the account has pullToRefresh feature
+ if (Flags.getInstance(this).getBoolean(Experiments.PULL_TO_REFRESH)) {
+ setSwipeRefreshLayoutEnabledOrNot(mContactListFilterController.getFilter());
+ }
break;
case ActionBarAdapter.Listener.Action.CHANGE_SEARCH_QUERY:
final String queryString = mActionBarAdapter.getQueryString();
@@ -1502,6 +1574,33 @@
.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
}
+
+ // Determine whether the account has pullToRefresh feature
+ if (Flags.getInstance(this).getBoolean(Experiments.PULL_TO_REFRESH)) {
+ setSwipeRefreshLayoutEnabledOrNot(filter);
+ }
+ }
+
+ private void setSwipeRefreshLayoutEnabledOrNot(ContactListFilter filter) {
+ final SwipeRefreshLayout swipeRefreshLayout = mAllFragment.getSwipeRefreshLayout();
+ if (swipeRefreshLayout == null) {
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Can not load swipeRefreshLayout, swipeRefreshLayout is null");
+ }
+ return;
+ }
+
+ swipeRefreshLayout.setRefreshing(false);
+ swipeRefreshLayout.setEnabled(false);
+
+ if (filter != null && !mActionBarAdapter.isSearchMode()
+ && !mActionBarAdapter.isSelectionMode()) {
+ final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(this)
+ .getAccounts(/* contactsWritableOnly */ true);
+ if (filter.isSyncable(accounts)) {
+ swipeRefreshLayout.setEnabled(true);
+ }
+ }
}
private String getActionBarTitleForAccount(ContactListFilter filter) {
diff --git a/src/com/android/contacts/common/Experiments.java b/src/com/android/contacts/common/Experiments.java
index c811e27..8932cac 100644
--- a/src/com/android/contacts/common/Experiments.java
+++ b/src/com/android/contacts/common/Experiments.java
@@ -20,6 +20,21 @@
*/
public final class Experiments {
+ /**
+ * Experiment to enable dynamic strequent shortcuts.
+ */
+ public static final String DYNAMIC_SHORTCUTS = "Shortcuts__dynamic_shortcuts";
+
+ /**
+ * Experiment to toggle contacts sync using the pull to refresh gesture.
+ */
+ public static final String PULL_TO_REFRESH = "PullToRefresh__pull_to_refresh";
+
+ /**
+ * Search study boolean indicating whether to inject yenta search results before CP2 results.
+ */
+ public static final String SEARCH_YENTA = "Search__yenta";
+
private Experiments() {
}
}
diff --git a/src/com/android/contacts/common/list/ContactEntryListFragment.java b/src/com/android/contacts/common/list/ContactEntryListFragment.java
index 0c72d68..387b303 100644
--- a/src/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -119,7 +119,7 @@
private boolean mEnabled = true;
private T mAdapter;
- private View mView;
+ protected View mView;
private ListView mListView;
/**
diff --git a/src/com/android/contacts/common/list/ContactListFilter.java b/src/com/android/contacts/common/list/ContactListFilter.java
index 6d60a82..3770cc8 100644
--- a/src/com/android/contacts/common/list/ContactListFilter.java
+++ b/src/com/android/contacts/common/list/ContactListFilter.java
@@ -16,6 +16,7 @@
package com.android.contacts.common.list;
+import android.accounts.Account;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.net.Uri;
@@ -25,6 +26,11 @@
import android.text.TextUtils;
import com.android.contacts.common.logging.ListEvent;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.common.model.account.GoogleAccountType;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* Contact list filter parameters.
@@ -364,4 +370,59 @@
return "(unknown)";
}
}
+
+ /**
+ * Returns true if this ContactListFilter contains at least one Google account.
+ * (see {@link #isGoogleAccountType)
+ */
+ public boolean isSyncable(List<AccountWithDataSet> accounts) {
+ // TODO(samchen): Check FILTER_TYPE_CUSTOM
+ if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+ return true;
+ }
+ if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+ || filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
+ if (accounts != null && accounts.size() > 0) {
+ // 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) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns the Google accounts (see {@link #isGoogleAccountType) 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) {
+ 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) {
+ syncableAccounts.add(new Account(account.name, account.type));
+ }
+ }
+ }
+ }
+ return syncableAccounts;
+ }
+
+ /**
+ * Returns true if this ContactListFilter is Google account type. (i.e. where
+ * accountType = "com.google" and dataSet = null)
+ */
+ public boolean isGoogleAccountType() {
+ return GoogleAccountType.ACCOUNT_TYPE.equals(accountType) && dataSet == null;
+ }
}
diff --git a/src/com/android/contacts/common/list/DefaultContactListAdapter.java b/src/com/android/contacts/common/list/DefaultContactListAdapter.java
index 666de8c..70e9111 100644
--- a/src/com/android/contacts/common/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/common/list/DefaultContactListAdapter.java
@@ -31,6 +31,7 @@
import android.text.TextUtils;
import android.view.View;
+import com.android.contacts.common.Experiments;
import com.android.contacts.common.compat.ContactsCompat;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.preference.ContactsPreferences;
@@ -115,6 +116,13 @@
loader.setUri(builder.build());
loader.setProjection(getProjection(true));
sortOrder = STREQUENT_SORT;
+ if (Flags.getInstance(getContext()).getBoolean(Experiments.SEARCH_YENTA)
+ && loader instanceof FavoritesAndContactsLoader
+ && directoryId == Directory.DEFAULT) {
+ final FavoritesAndContactsLoader favoritesAndContactsLoader =
+ (FavoritesAndContactsLoader) loader;
+ favoritesAndContactsLoader.setAutocompleteQuery(query);
+ }
}
} else {
final ContactListFilter filter = getFilter();
diff --git a/src/com/android/contacts/common/list/FavoritesAndContactsLoader.java b/src/com/android/contacts/common/list/FavoritesAndContactsLoader.java
index d1ae911..c679110 100644
--- a/src/com/android/contacts/common/list/FavoritesAndContactsLoader.java
+++ b/src/com/android/contacts/common/list/FavoritesAndContactsLoader.java
@@ -19,29 +19,33 @@
import android.content.CursorLoader;
import android.database.Cursor;
import android.database.MergeCursor;
-import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+import com.android.contactsbind.ObjectFactory;
+import com.android.contactsbind.search.AutocompleteHelper;
import com.google.common.collect.Lists;
import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* A loader for use in the default contact list, which will also query for favorite contacts
* if configured to do so.
*/
-public class FavoritesAndContactsLoader extends CursorLoader {
+public class FavoritesAndContactsLoader extends CursorLoader implements AutocompleteHelper.Listener {
+
+ private static final int AUTOCOMPLETE_TIMEOUT_MS = 1000;
private boolean mLoadFavorites;
private String[] mProjection;
- private Uri mExtraUri;
- private String[] mExtraProjection;
- private String mExtraSelection;
- private String[] mExtraSelectionArgs;
- private boolean mMergeExtraContactsAfterPrimary;
+ private String mAutocompleteQuery;
+ private CountDownLatch mAutocompleteLatch = new CountDownLatch(1);
+ private Cursor mAutocompleteCursor;
public FavoritesAndContactsLoader(Context context) {
super(context);
@@ -52,54 +56,51 @@
mLoadFavorites = flag;
}
+ public void setAutocompleteQuery(String autocompleteQuery) {
+ mAutocompleteQuery = autocompleteQuery;
+ }
+
public void setProjection(String[] projection) {
super.setProjection(projection);
mProjection = projection;
}
- /** Configure an extra query and merge results in before the primary results. */
- public void setLoadExtraContactsFirst(Uri uri, String[] projection) {
- mExtraUri = uri;
- mExtraProjection = projection;
- mMergeExtraContactsAfterPrimary = false;
- }
-
- /** Configure an extra query and merge results in after the primary results. */
- public void setLoadExtraContactsLast(Uri uri, String[] projection, String selection,
- String[] selectionArgs) {
- mExtraUri = uri;
- mExtraProjection = projection;
- mExtraSelection = selection;
- mExtraSelectionArgs = selectionArgs;
- mMergeExtraContactsAfterPrimary = true;
- }
-
- private boolean canLoadExtraContacts() {
- return mExtraUri != null && mExtraProjection != null;
- }
-
@Override
public Cursor loadInBackground() {
List<Cursor> cursors = Lists.newArrayList();
if (mLoadFavorites) {
cursors.add(loadFavoritesContacts());
}
- if (canLoadExtraContacts() && !mMergeExtraContactsAfterPrimary) {
- cursors.add(loadExtraContacts());
+
+ if (mAutocompleteQuery != null) {
+ final AutocompleteHelper autocompleteHelper =
+ ObjectFactory.getAutocompleteHelper(getContext());
+ if (autocompleteHelper != null) {
+ autocompleteHelper.setListener(this);
+ autocompleteHelper.setProjection(mProjection);
+ autocompleteHelper.setQuery(mAutocompleteQuery);
+ try {
+ if (!mAutocompleteLatch.await(AUTOCOMPLETE_TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+ logw("Timeout expired before receiving autocompletions");
+ }
+ } catch (InterruptedException e) {
+ logw("Interrupted while waiting for autocompletions");
+ }
+ if (mAutocompleteCursor != null) {
+ cursors.add(mAutocompleteCursor);
+ // TODO: exclude these results from the main loader results, see b/30742359
+ }
+ }
}
- // ContactsCursor.loadInBackground() can return null; MergeCursor
- // correctly handles null cursors.
- Cursor cursor = null;
- try {
- cursor = super.loadInBackground();
- } catch (NullPointerException | SecurityException e) {
- // Ignore NPEs and SecurityExceptions thrown by providers
+
+ // TODO: if the autocomplete experiment in on, only show those results even if they're empty
+ final Cursor contactsCursor = mAutocompleteQuery == null ? loadContacts() : null;
+ if (mAutocompleteQuery == null) {
+ cursors.add(contactsCursor);
}
- final Cursor contactsCursor = cursor;
- cursors.add(contactsCursor);
- if (canLoadExtraContacts() && mMergeExtraContactsAfterPrimary) {
- cursors.add(loadExtraContacts());
- }
+ // Guard against passing an empty array to the MergeCursor constructor
+ if (cursors.isEmpty()) cursors.add(null);
+
return new MergeCursor(cursors.toArray(new Cursor[cursors.size()])) {
@Override
public Bundle getExtras() {
@@ -109,9 +110,15 @@
};
}
- private Cursor loadExtraContacts() {
- return getContext().getContentResolver().query(
- mExtraUri, mExtraProjection, mExtraSelection, mExtraSelectionArgs, null);
+ private Cursor loadContacts() {
+ // ContactsCursor.loadInBackground() can return null; MergeCursor
+ // correctly handles null cursors.
+ try {
+ return super.loadInBackground();
+ } catch (NullPointerException | SecurityException e) {
+ // Ignore NPEs and SecurityExceptions thrown by providers
+ }
+ return null;
}
private Cursor loadFavoritesContacts() {
@@ -119,4 +126,20 @@
Contacts.CONTENT_URI, mProjection, Contacts.STARRED + "=?", new String[]{"1"},
getSortOrder());
}
+
+ @Override
+ public void onAutocompletesAvailable(Cursor cursor) {
+ if (cursor == null || cursor.getCount() == 0) {
+ logw("Ignoring null or empty autocompletions");
+ } else {
+ mAutocompleteCursor = cursor;
+ mAutocompleteLatch.countDown();
+ }
+ }
+
+ private static void logw(String message) {
+ if (Log.isLoggable(AutocompleteHelper.TAG, Log.WARN)) {
+ Log.w(AutocompleteHelper.TAG, message);
+ }
+ }
}
diff --git a/src/com/android/contacts/common/model/AccountTypeManager.java b/src/com/android/contacts/common/model/AccountTypeManager.java
index 3ef3502..0ed99d6 100644
--- a/src/com/android/contacts/common/model/AccountTypeManager.java
+++ b/src/com/android/contacts/common/model/AccountTypeManager.java
@@ -501,7 +501,7 @@
boolean syncable =
ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY) > 0;
- if (syncable) {
+ if (syncable || GoogleAccountType.ACCOUNT_TYPE.equals(account.type)) {
List<AccountType> accountTypes = accountTypesByType.get(account.type);
if (accountTypes != null) {
// Add an account-with-data-set entry for each account type that is
diff --git a/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java b/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
index 0634df4..6093405 100644
--- a/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
+++ b/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
@@ -17,6 +17,8 @@
package com.android.contacts.common.vcard;
import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -27,9 +29,11 @@
import android.nfc.NfcAdapter;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.os.Handler;
import android.os.IBinder;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
+import android.widget.Toast;
import com.android.contacts.common.R;
import com.android.contacts.common.activity.RequestPermissionsActivity;
@@ -59,6 +63,12 @@
private NdefRecord mRecord;
private AccountWithDataSet mAccount;
+ private Handler mHandler = new Handler();
+
+ /**
+ * Notification id used when error happened before sending an import request to VCardServer.
+ */
+ private static final int FAILURE_NOTIFICATION_ID = 1;
/* package */ class ImportTask extends AsyncTask<VCardService, Void, ImportRequest> {
@Override
@@ -81,6 +91,10 @@
@Override
public void onPostExecute(ImportRequest request) {
+ if (request == null) {
+ // Finish the activity in case of error so it doesn't stay in view.
+ finish();
+ }
unbindService(NfcImportVCardActivity.this);
}
}
@@ -111,6 +125,8 @@
parser.addInterpreter(detector);
parser.parse(is);
} catch (VCardVersionException e2) {
+ Log.e(TAG, "vCard with unsupported version.");
+ showFailureNotification(R.string.fail_reason_not_supported);
return null;
}
} finally {
@@ -120,14 +136,16 @@
}
}
} catch (IOException e) {
- Log.e(TAG, "Failed reading vcard data", e);
+ Log.e(TAG, "Failed reading vCard data", e);
+ showFailureNotification(R.string.fail_reason_io_error);
return null;
} catch (VCardNestedException e) {
Log.w(TAG, "Nested Exception is found (it may be false-positive).");
// Go through without throwing the Exception, as we may be able to detect the
// version before it
} catch (VCardException e) {
- Log.e(TAG, "Error parsing vcard", e);
+ Log.e(TAG, "Error parsing vCard", e);
+ showFailureNotification(R.string.fail_reason_not_supported);
return null;
}
@@ -242,7 +260,8 @@
Log.i(TAG, "Late import failure -- ignoring");
return;
}
- // TODO: report failure
+ showFailureNotification(R.string.vcard_import_request_rejected_message);
+ finish();
}
@Override
@@ -269,4 +288,22 @@
public void onComplete() {
// do nothing
}
+
+ /* package */ void showFailureNotification(int reasonId) {
+ final NotificationManager notificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ final Notification notification =
+ NotificationImportExportListener.constructImportFailureNotification(
+ this,
+ getString(reasonId));
+ notificationManager.notify(NotificationImportExportListener.FAILURE_NOTIFICATION_TAG,
+ FAILURE_NOTIFICATION_ID, notification);
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(NfcImportVCardActivity.this,
+ getString(R.string.vcard_import_failed), Toast.LENGTH_LONG).show();
+ }
+ });
+ }
}
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 2060068..da33b55 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -92,7 +92,7 @@
private boolean mSelectionVerified;
private int mLastSelectedPosition = -1;
private boolean mRefreshingContactUri;
- private ContactListFilter mFilter;
+ protected ContactListFilter mFilter;
private String mPersistentSelectionPrefix = PERSISTENT_SELECTION_PREFIX;
protected OnContactBrowserActionListener mListener;
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index afaafb7..a25e769 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -15,12 +15,17 @@
*/
package com.android.contacts.list;
+import android.accounts.Account;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.Directory;
+import android.support.v4.widget.SwipeRefreshLayout;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -35,12 +40,18 @@
import com.android.contacts.R;
import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.common.Experiments;
import com.android.contacts.common.list.ContactListAdapter;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.DefaultContactListAdapter;
import com.android.contacts.common.list.FavoritesAndContactsLoader;
+import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.util.SyncUtil;
+import com.android.contactsbind.experiments.Flags;
+
+import java.util.List;
/**
* Fragment containing a contact list used for browsing (as compared to
@@ -53,6 +64,7 @@
private View mEmptyHomeView;
private View mAccountFilterContainer;
private TextView mSearchProgressText;
+ private SwipeRefreshLayout mSwipeRefreshLayout;
private FeatureHighlightCallback mCallback;
public interface FeatureHighlightCallback {
@@ -91,7 +103,9 @@
private void bindListHeader(int numberOfContacts) {
final ContactListFilter filter = getFilter();
- if (!isSearchMode() && numberOfContacts <= 0) {
+ // If the phone has at least one Google account whose sync status is unsyncable or pending
+ // or active, we have to make mAccountFilterContainer visible.
+ if (!isSearchMode() && numberOfContacts <= 0 && shouldShowEmptyView(filter)) {
if (filter != null && filter.isContactsFilterType()) {
makeViewVisible(mEmptyHomeView);
} else {
@@ -114,6 +128,38 @@
}
}
+ /**
+ * If at least one Google account is unsyncable or its sync status is pending or active, we
+ * should not show empty view even if the number of contacts is 0. We should show sync status
+ * with empty list instead.
+ */
+ private boolean shouldShowEmptyView(ContactListFilter filter) {
+ if (filter == null) {
+ return true;
+ }
+ // TODO(samchen) : Check ContactListFilter.FILTER_TYPE_CUSTOM
+ if (ContactListFilter.FILTER_TYPE_DEFAULT == filter.filterType
+ || ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS == filter.filterType) {
+ final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(getContext())
+ .getAccounts(/* contactsWritableOnly */ true);
+ final List<Account> syncableAccounts = filter.getSyncableAccounts(accounts);
+
+ if (syncableAccounts != null && syncableAccounts.size() > 0) {
+ for (Account account : syncableAccounts) {
+ if (SyncUtil.isSyncStatusPendingOrActive(account)
+ || SyncUtil.isUnsyncableGoogleAccount(account)) {
+ return false;
+ }
+ }
+ }
+ } else if (ContactListFilter.FILTER_TYPE_ACCOUNT == filter.filterType) {
+ final Account account = new Account(filter.accountName, filter.accountType);
+ return !(SyncUtil.isSyncStatusPendingOrActive(account)
+ || SyncUtil.isUnsyncableGoogleAccount(account));
+ }
+ return true;
+ }
+
// Show the view that's specified by id and hide the other two.
private void makeViewVisible(View view) {
mEmptyAccountView.setVisibility(view == mEmptyAccountView ? View.VISIBLE : View.GONE);
@@ -215,6 +261,10 @@
protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
super.onCreateView(inflater, container);
+ if (Flags.getInstance(getActivity()).getBoolean(Experiments.PULL_TO_REFRESH)) {
+ initSwipeRefreshLayout();
+
+ }
// Putting the header view inside a container will allow us to make
// it invisible later. See checkHeaderViewVisibility()
FrameLayout headerContainer = new FrameLayout(inflater.getContext());
@@ -227,6 +277,55 @@
mSearchProgressText = (TextView) mSearchHeaderView.findViewById(R.id.totalContactsText);
}
+ private void initSwipeRefreshLayout() {
+ mSwipeRefreshLayout = (SwipeRefreshLayout) mView.findViewById(R.id.swipe_refresh);
+ if (mSwipeRefreshLayout == null) {
+ return;
+ }
+
+ mSwipeRefreshLayout.setEnabled(true);
+ // Request sync contacts
+ mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ syncContacts(mFilter);
+ }
+ });
+ mSwipeRefreshLayout.setColorSchemeResources(
+ R.color.swipe_refresh_color1,
+ R.color.swipe_refresh_color2,
+ R.color.swipe_refresh_color3,
+ R.color.swipe_refresh_color4);
+ mSwipeRefreshLayout.setDistanceToTriggerSync(
+ (int) getResources().getDimension(R.dimen.pull_to_refresh_distance));
+ }
+
+ /**
+ * Request sync for the Google accounts (not include Google+ accounts) specified by the given
+ * filter.
+ */
+ private void syncContacts(ContactListFilter filter) {
+ if (filter == null) {
+ return;
+ }
+ final Bundle bundle = new Bundle();
+ bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+ bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
+
+ final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(
+ getActivity()).getAccounts(/* contactsWritableOnly */ true);
+ final List<Account> syncableAccounts = filter.getSyncableAccounts(accounts);
+ if (syncableAccounts != null && syncableAccounts.size() > 0) {
+ for (Account account : syncableAccounts) {
+ // We can prioritize Contacts sync if sync is not initialized yet.
+ if (!SyncUtil.isSyncStatusPendingOrActive(account)
+ || SyncUtil.isUnsyncableGoogleAccount(account)) {
+ ContentResolver.requestSync(account, ContactsContract.AUTHORITY, bundle);
+ }
+ }
+ }
+ }
+
@Override
protected void setSearchMode(boolean flag) {
super.setSearchMode(flag);
@@ -275,4 +374,8 @@
}
}
}
-}
\ No newline at end of file
+
+ public SwipeRefreshLayout getSwipeRefreshLayout() {
+ return mSwipeRefreshLayout;
+ }
+}
diff --git a/src/com/android/contacts/util/SyncUtil.java b/src/com/android/contacts/util/SyncUtil.java
new file mode 100644
index 0000000..cef2223
--- /dev/null
+++ b/src/com/android/contacts/util/SyncUtil.java
@@ -0,0 +1,52 @@
+/*
+ * 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.util;
+
+import android.accounts.Account;
+import android.content.ContentResolver;
+import android.provider.ContactsContract;
+
+import com.android.contacts.common.model.account.GoogleAccountType;
+
+import java.util.List;
+
+/**
+ * Utilities related to sync.
+ */
+public final class SyncUtil {
+ private static final String TAG = "SyncUtil";
+
+ private SyncUtil() {
+ }
+
+ public static final boolean isSyncStatusPendingOrActive(Account account) {
+ if (account == null) {
+ return false;
+ }
+ return ContentResolver.isSyncPending(account, ContactsContract.AUTHORITY)
+ || ContentResolver.isSyncActive(account, ContactsContract.AUTHORITY);
+ }
+
+ /**
+ * Returns true if the given Google account is not syncable.
+ */
+ public static final boolean isUnsyncableGoogleAccount(Account account) {
+ if (account == null || !GoogleAccountType.ACCOUNT_TYPE.equals(account.type)) {
+ return false;
+ }
+ return ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY) <= 0;
+ }
+}
diff --git a/tests/src/com/android/contacts/util/SyncUtilTests.java b/tests/src/com/android/contacts/util/SyncUtilTests.java
new file mode 100644
index 0000000..372a652
--- /dev/null
+++ b/tests/src/com/android/contacts/util/SyncUtilTests.java
@@ -0,0 +1,51 @@
+/*
+ * 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.util;
+
+import android.accounts.Account;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for SyncUtil.
+ */
+@SmallTest
+public class SyncUtilTests extends AndroidTestCase {
+ private static final String TAG = "SyncUtilTests";
+
+ private static final String GOOGLE_TYPE = "com.google";
+ private static final String NOT_GOOGLE_TYPE = "com.abc";
+ private static final String ACCOUNT_NAME = "ACCOUNT_NAME";
+
+ private final Account mGoogleAccount;
+ private final Account mOtherAccount;
+
+ public SyncUtilTests() {
+ mGoogleAccount = new Account(ACCOUNT_NAME, GOOGLE_TYPE);
+ mOtherAccount = new Account(ACCOUNT_NAME, NOT_GOOGLE_TYPE);
+ }
+
+ public void testIsUnsyncableGoogleAccount() throws Exception {
+ // The account names of mGoogleAccount and mOtherAccount are not valid, so both accounts
+ // are not syncable.
+ assertTrue(SyncUtil.isUnsyncableGoogleAccount(mGoogleAccount));
+ assertFalse(SyncUtil.isUnsyncableGoogleAccount(mOtherAccount));
+ assertFalse(SyncUtil.isUnsyncableGoogleAccount(null));
+ }
+}