DO NOT MERGE Bump version of AOSP contacts to 1.7.1
am: f06f9dc886 -s ours
Change-Id: I506a543c66fa14e5149c11015c318a654f390ad3
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 25aa0d9..eb467c3 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="10701"
- android:versionName="1.7.1">
+ android:versionCode="20000"
+ android:versionName="2.0.0">
<uses-sdk
android:minSdkVersion="21"
diff --git a/res/layout/contacts_drawer_activity.xml b/res/layout/contacts_drawer_activity.xml
index 0e77058..814109f 100644
--- a/res/layout/contacts_drawer_activity.xml
+++ b/res/layout/contacts_drawer_activity.xml
@@ -53,4 +53,4 @@
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"/>
-</android.support.v4.widget.DrawerLayout>
\ No newline at end of file
+</android.support.v4.widget.DrawerLayout>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 170fb26..477f312 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -18,21 +18,16 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
<string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+ <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj kontakt"</string>
<string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
<string name="shortcutMessageContact" msgid="2460337253595976198">"Direktna poruka"</string>
- <string name="shortcutActivityTitle" msgid="6642877210643565436">"Odaberite prečicu za kontakt"</string>
- <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Odaberite broj za poziv"</string>
- <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Odaberite broj za slanje poruka"</string>
+ <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izaberite kontakt"</string>
<string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodajte kontaktu"</string>
<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="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</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>
- <string name="menu_viewContact" msgid="2795575601596468581">"Prikaži kontakt"</string>
<string name="menu_addStar" msgid="2908478235715404876">"Dodaj u omiljene kontakte"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Ukloni iz omiljenih kontakata"</string>
<string name="description_action_menu_remove_star" msgid="4699640108012265178">"Uklonjeno je iz Omiljenog"</string>
@@ -40,9 +35,7 @@
<string name="menu_editContact" msgid="9042415603857662633">"Izmeni"</string>
<string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
<string name="menu_change_photo" msgid="7769177631511496210">"Promeni sliku"</string>
- <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Postavi na Početni ekran"</string>
- <string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji SMS kontaktu"</string>
+ <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Napravi prečicu"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
<string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
@@ -51,23 +44,27 @@
<string name="menu_selectForGroup" msgid="3999234528229376098">"Izaberi kontakte"</string>
<string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodaj kontakte"</string>
<string name="menu_removeFromGroup" msgid="6720354305399961978">"Ukloni iz oznake"</string>
- <string name="menu_new_contact_action_bar" msgid="7371001434034419566">"Dodaj kontakt"</string>
- <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Napravi novu…"</string>
+ <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Napravi oznaku"</string>
<string name="splitConfirmation" msgid="7342030840130187290">"Želite li da razdvojite ovaj kontakt u više kontakata?"</string>
<string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdvoji"</string>
<string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Želite li da sačuvate promene koje ste već obavili i razdvojite ovaj kontakt u više kontakata?"</string>
<string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Sačuvaj i razdvoji"</string>
<string name="joinConfirmation" msgid="8262614843581924365">"Želite li da sačuvate promene koje ste već obavili i objedinite ovaj kontakt sa izabranim kontaktom?"</string>
<string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Sačuvaj i objedini"</string>
+ <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezuje se"</string>
+ <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Opoziva se veza"</string>
<string name="menu_joinAggregate" msgid="3599512127797513606">"Objedini"</string>
+ <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaži objedinjene kontakte"</string>
<string name="menu_save" msgid="1727844363591825909">"Sačuvaj"</string>
<string name="titleJoinContactDataWith" msgid="6825255752748313944">"Objedinite kontakte"</string>
<string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izaberite kontakt koji želite da objedinite sa kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
- <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Prikaži sve kontakte"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
+ <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Kontakti su povezani sa <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su objedinjeni"</string>
- <string name="contact_deleted_named_toast" msgid="6558941164987421174">"<xliff:g id="NAME">%s</xliff:g> je izbrisan/a"</string>
+ <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> je izbrisan/a"</string>
+ <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g> su izbrisani"</string>
+ <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… su izbrisani"</string>
<plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
<item quantity="one">Kontakti su izbrisani</item>
<item quantity="few">Kontakti su izbrisani</item>
@@ -79,17 +76,18 @@
<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>
+ <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%2$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>
<string name="menu_set_ring_tone" msgid="8728345772068064946">"Podesi melodiju zvona"</string>
- <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Svi pozivi u govornu poštu"</string>
- <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakti sa naloga koji su samo za čitanje ne mogu da se izbrišu, ali mogu da se sakriju."</string>
- <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sakrij"</string>
- <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt koji ste izabrali za brisanje sadrži detalje sa više naloga. Detalji sa naloga koji su samo za čitanje će biti skriveni, ali ne i izbrisani."</string>
+ <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Usmeri na govornu poštu"</string>
+ <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ne usmeravaj na govornu poštu"</string>
+ <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ovaj kontakt je samo za čitanje. Ne možete da ga izbrišete, ali možete da ga sakrijete."</string>
+ <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sakrij kontakt"</string>
+ <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Nalozi koji su samo za čitanje u okviru ovog kontakta će biti skriveni, a ne izbrisani."</string>
<string name="single_delete_confirmation" msgid="3106905986948679720">"Želite li da izbrišete ovaj kontakt?"</string>
<string name="batch_delete_confirmation" msgid="3984346060324014108">"Želite li da izbrišete izabrane kontakte?"</string>
<string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakti sa naloga koji su samo za čitanje ne mogu da se izbrišu, ali mogu da se sakriju."</string>
@@ -97,21 +95,15 @@
<string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ako izbrišete ovaj kontakt, biće izbrisani detalji sa više naloga."</string>
<string name="deleteConfirmation" msgid="3512271779086656043">"Želite li da izbrišete ovaj kontakt?"</string>
<string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
- <string name="menu_discard" msgid="6854657936970228164">"Odbaci promene"</string>
<string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
<string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt je dodat na početni ekran."</string>
<string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> je dodat na početni ekran."</string>
- <string name="pickerNewContactHeader" msgid="7750705279843568147">"Napravite novi kontakt"</string>
- <string name="pickerNewContactText" msgid="6166997164401048211">"Napravi novi kontakt"</string>
<string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Slike nisu dostupne na tabletu."</string>
<string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Na telefonu nema dostupnih slika."</string>
<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 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>
@@ -124,7 +116,6 @@
<string name="contactGenericErrorToast" msgid="3885457515665783976">"Greška pri čuvanju kontakta"</string>
<string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Čuvanje promena slike kontakta nije uspelo"</string>
<string name="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspelo"</string>
- <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je sačuvana"</string>
<string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
<string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je napravljena"</string>
<string name="groupCreateFailedToast" msgid="4359093891863474299">"Pravljenje oznake nije uspelo"</string>
@@ -133,32 +124,15 @@
<string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodato je u oznaku"</string>
<string name="groupSavedErrorToast" msgid="2355891714292740162">"Č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>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata sa brojevima telefona</item>
- </plurals>
- <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata sa brojevima telefona"</string>
- <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
- <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="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Neki kontakti nemaju imejl adresu."</string>
+ <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju broj telefona."</string>
+ <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošalji imejl"</string>
+ <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošalji poruku"</string>
+ <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izaberite kontakte"</string>
+ <string name="send_to_selection" msgid="2251339182881603540">"Pošalji"</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="all_contacts_tab_label" msgid="5948889261993124839">"Sve"</string>
- <string name="callBack" msgid="5498224409038809224">"Uzvrati poziv"</string>
- <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_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>
- <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena nijedna aplikacija koja bi mogla da izvrši ovu radnju."</string>
<string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite da biste se vratili na prethodni ekran"</string>
<string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte broj telefona"</string>
<string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte imejl"</string>
@@ -174,54 +148,32 @@
<string name="dialog_new_group_account" msgid="3451312333591556651">"Izaberite nalog"</string>
<string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Napravite oznaku"</string>
<string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenujte oznaku"</string>
- <string name="group_name_dialog_hint" msgid="5122118085780669813">"Oznaka"</string>
+ <string name="group_name_dialog_hint" msgid="7624523157537700160">"Ime oznake"</string>
+ <string name="label_name_dialog_hint" msgid="1276051790427638142">"Ime oznake"</string>
<string name="audio_chat" msgid="2535716629358298691">"Audio ćaskanje"</string>
<string name="video_chat" msgid="1872255818640336072">"Video ćaskanje"</string>
- <string name="connections" msgid="8098440723172028350">"Veze"</string>
- <string name="add_connection_button" msgid="4861308615789601727">"Dodaj vezu"</string>
- <string name="recent" msgid="2659189233141493004">"Nedavno"</string>
- <string name="recent_updates" msgid="4267258535615860710">"Nedavna ažuriranja"</string>
<string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
<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">"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>
+ <string name="pick_new_photo" msgid="9122450996263688237">"Izaberi novu sliku"</string>
<string name="search_results_searching" msgid="3984833028938569930">"Pretražuje se..."</string>
- <string name="menu_display_selected" msgid="6470001164297969034">"Prikaži izabrano"</string>
- <string name="menu_display_all" msgid="8887488642609786198">"Prikaži sve"</string>
- <string name="menu_select_all" msgid="621719255150713545">"Izaberi sve"</string>
- <string name="menu_select_none" msgid="7093222469852132345">"Poništi sve izbore"</string>
- <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novo"</string>
- <string name="add_organization" msgid="7311893231158291197">"Dodaj organizaciju"</string>
<string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
<string name="group_edit_field_hint_text" msgid="8038224059926963133">"Oznaka"</string>
- <string name="change_photo" msgid="8530597935483526383">"Promeni"</string>
- <string name="description_star" msgid="2605854427360036550">"omiljeno"</string>
- <string name="edit_contact" msgid="7529281274005689512">"Izmeni kontakt"</string>
+ <string name="cancel_button_content_description" msgid="1288652456274531846">"Otkaži"</string>
+ <string name="back_arrow_content_description" msgid="4355362760545735065">"Nazad"</string>
<string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvorite"</string>
- <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite li da aktuelni kontakt objedinite sa izabranim kontaktom?"</string>
<string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Želite li da prebacite na uređivanje izabranog kontakta? Biće kopirane informacije koje ste uneli do sada."</string>
- <string name="menu_copyContact" msgid="1573960845106822639">"Kopiraj u moje kontakte"</string>
- <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj u Moje kontakte"</string>
<string name="contact_directory_description" msgid="683398073603909119">"Katalog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
<string name="activity_title_settings" msgid="5464130076132770781">"Podešavanja"</string>
<string name="menu_settings" msgid="377929915873428211">"Podešavanja"</string>
<string name="menu_help" msgid="1680178646764069976">"Pomoć i povratne informacije"</string>
- <string name="preference_displayOptions" msgid="1341720270148252393">"Opcije prikaza"</string>
<string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="1541655052330027380">"Broj telefona"</string>
<string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj u kontakte"</string>
- <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodajte kontaktu"</string>
<string name="non_phone_close" msgid="7608506439725515667">"Zatvori"</string>
- <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
<string name="date_year_toggle" msgid="7122002148518724139">"Prikaži godinu"</string>
- <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
- <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="3182801738595937144">"Uvezi"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
@@ -235,34 +187,34 @@
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
<string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
<string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Želite da odbacite prilagođavanja?"</string>
- <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>
<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="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="contact_editor_title_new_contact" msgid="3042788718983070111">"Novi kontakt"</string>
+ <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Izmenite kontakt"</string>
+ <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo pregled"</string>
+ <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izaberite kontakt za izmenu"</string>
+ <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Objedinjeni kontakti"</string>
+ <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+ <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Razdvoj"</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>
- <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodavanje novog kontakta"</string>
+ <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Napravi novi kontakt"</string>
<string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Prikaži više"</string>
<string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Prikaži manje"</string>
<string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
<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="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>
<string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sutra u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
- <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+ <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
<string name="untitled_event" msgid="3484859385405939366">"(Nenaslovljeni događaj)"</string>
<string name="date_time_set" msgid="4761419824439606690">"Podesi"</string>
<string name="header_im_entry" msgid="3581720979640225615">"Razmena trenutnih poruka"</string>
@@ -272,76 +224,42 @@
<string name="header_website_entry" msgid="1411467850000824745">"Veb-sajt"</string>
<string name="header_event_entry" msgid="6738250422744401460">"Događaj"</string>
<string name="header_relation_entry" msgid="1520292958088146460">"Odnos"</string>
- <string name="header_account_entry" msgid="2684318506427891827">"Nalog"</string>
<string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
<string name="header_email_entry" msgid="8666093061171624478">"Imejl"</string>
<string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
- <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknite da biste proširili uređivač kontakata."</string>
- <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite da biste skupili uređivač kontakata."</string>
<string name="content_description_directions" msgid="2686791825798189335">"uputstva do lokacije"</string>
- <string name="content_description_recent_sms" msgid="1666389577263317445">"Nedavni SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Kliknite za odgovor"</string>
+ <string name="content_description_recent_sms" msgid="1666389577263317445">"Nedavni SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Kliknite za odgovor"</string>
<string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"dolazni"</string>
<string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odlazni"</string>
<string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"propušteni"</string>
- <string name="content_description_recent_call" msgid="5183800406316723676">"Nedavni poziv. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Kliknite za povratni poziv"</string>
+ <string name="content_description_recent_call" msgid="5183800406316723676">"Nedavni poziv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Kliknite za povratni poziv"</string>
<string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
- <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts radi bolje kad unesete Hangouts identifikator osobe u polje za imejl adresu ili broj telefona."</string>
<string name="editor_more_fields" msgid="3630987771304393421">"Još polja"</string>
- <string name="editor_change_photo_content_description" msgid="754100561085306263">"Promenite sliku"</string>
+ <string name="editor_change_photo_content_description" msgid="820879708069864340">"Promenite sliku kontakta"</string>
+ <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodajte sliku kontakta"</string>
+ <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Slika kontakta"</string>
<string name="editor_failed_to_load" msgid="1623639078580475818">"Otvaranje uređivača nije uspelo."</string>
<string name="editor_account_selector_title" msgid="4426337993307015833">"Čuva se na"</string>
- <string name="editor_account_selector_read_only_title" msgid="8315171723911587719">"Gledate"</string>
- <string name="editor_account_selector_description" msgid="3324358600570627740">"Trenutno se čuva na <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dodirnite dvaput da biste izabrali drugi nalog."</string>
- <plurals name="editor_linked_contacts_selector_title" formatted="false" msgid="249075501821303190">
- <item quantity="one">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="few">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="other">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- </plurals>
- <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Objedinjenih kontakata: <xliff:g id="COUNT">%d</xliff:g>"</string>
- <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+ <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Nije moguće izmeniti kontakt informacije sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
<string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"OBJEDINI KONTAKTE"</string>
<string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"OTKAŽI"</string>
- <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> moguć duplikat</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> moguća duplikata</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mogućih duplikata</item>
- </plurals>
- <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> objedinjen kontakt</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> objedinjena kontakta</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> objedinjenih kontakata</item>
- </plurals>
- <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
- <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- </plurals>
- <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
<string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ovaj kontakt"</string>
<string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogući duplikati"</string>
<string name="suggestion_card_help_message" msgid="4474061044387181093">"Izgleda da su ovi kontakti ista osoba. Možete da ih objedinite u jedan kontakt."</string>
- <string name="editor_linked_contacts_title" msgid="3077479751631492125">"Objedinjeni kontakti"</string>
- <string name="from_your_accounts" msgid="1746293107836889912">"Sa vaših naloga"</string>
- <string name="photo_picker_title" msgid="5272832995550042801">"Izaberite sliku"</string>
- <string name="contact_from_account_name" msgid="2078526819634079406">"Sa <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
- <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+ <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
<string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
- <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Slika sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> naloga <xliff:g id="USER_NAME">%s </xliff:g> nije označena"</string>
- <string name="photo_view_description_checked" msgid="3906597168607472795">"Slika sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> naloga <xliff:g id="USER_NAME">%s </xliff:g> je označena"</string>
- <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Slika sa nepoznatog naloga nije označena"</string>
- <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Slika sa nepoznatog naloga je označena"</string>
- <string name="locale_change_in_progress" msgid="6975676844194755501">"Lista kontakata se ažurira da bi se primenila promena jezika.\n\nSačekajte…"</string>
- <string name="menu_duplicates" msgid="4129802988372197257">"Duplikati"</string>
+ <string name="menu_assistant" msgid="5760693735722052454">"Predlozi"</string>
+ <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
<string name="navigation_drawer_open" msgid="1126498472143250642">"Otvori fioku za navigaciju"</string>
<string name="navigation_drawer_close" msgid="4137416137011817930">"Zatvori fioku za navigaciju"</string>
<string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
<string name="menu_title_filters" msgid="8210922220185114527">"Nalozi"</string>
- <string name="permission_explanation_header" msgid="5739405825039695327">"Pregledajte istoriju zajedno"</string>
- <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Događaji i poruke"</string>
+ <string name="permission_explanation_header" msgid="5739405825039695327">"Pregledajte zajedničku istoriju"</string>
+ <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"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>
+ <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Predlozi"</string>
+ <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Neka vam kontakti budu organizovani i korisni"</string>
<string name="undo" msgid="1425165101664071422">"Opozovi"</string>
<string name="call_custom" msgid="6385303130912713318">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
<string name="call_home" msgid="1990519474420545392">"Pozovi kućni telefon"</string>
@@ -394,15 +312,13 @@
<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="local_invisible_directory" msgid="6046691709127661065">"Drugi"</string>
+ <string name="local_invisible_directory" msgid="6046691709127661065">"Drugo"</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="foundTooManyContacts" msgid="5163335650920020220">"Pronađeno je više od <xliff:g id="COUNT">%d</xliff:g>."</string>
<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>
@@ -410,7 +326,6 @@
<string name="account_sim" msgid="6519016427905087952">"SIM"</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>
@@ -421,7 +336,7 @@
<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="emailLabelsGroup" msgid="8389931313045344406">"Imejl"</string>
<string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
<string name="imLabelsGroup" msgid="3898238486262614027">"Razmena trenutnih poruka"</string>
<string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
@@ -443,8 +358,6 @@
<string name="email_custom" msgid="5536404237099078802">"Pošalji imejl na <xliff:g id="CUSTOM_LABEL">%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>
@@ -463,9 +376,9 @@
<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_name_fields_description" msgid="6883935911480726652">"Proširite polja za ime"</string>
+ <string name="expand_name_fields_description" msgid="6948274252874552543">"Prikažite još polja za ime"</string>
<string name="collapse_name_fields_description" msgid="4757877385895561556">"Skupite polja za ime"</string>
- <string name="expand_phonetic_name_fields_description" msgid="3865726859582581741">"Proširite polja za fonetsko ime"</string>
+ <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Prikažite još polja za fonetsko ime"</string>
<string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skupite polja za fonetsko ime"</string>
<string name="expand_fields_description" msgid="8129294181216760037">"Proširite"</string>
<string name="collapse_fields_description" msgid="1884143625854637874">"Skupite"</string>
@@ -482,30 +395,35 @@
<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="import_from_sim" msgid="6912071635295799131">"Sa SIM kartice"</string>
+ <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Sa SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+ <item quantity="one">%1$d kontakt</item>
+ <item quantity="few">%1$d kontakta</item>
+ <item quantity="other">%1$d kontakata</item>
+ </plurals>
+ <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+ <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakta • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakata • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ </plurals>
+ <string name="import_from_vcf_file" product="default" msgid="8662528435646418203">"Iz .vcf datoteke"</string>
+ <string name="nothing_to_import_message" msgid="1651921906873335656">"Nema ničega za uvoz"</string>
+ <string name="import_from_vcf_file_confirmation_message" product="default" msgid="967723361108008345">"Želite da uvezete kontakte iz vCard 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_open_file" msgid="2067725459821997463">"Nije moguće otvoriti datoteku „<xliff:g id="FILE_NAME">%1$s</xliff:g>“: <xliff:g id="EXACT_REASON">%2$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>
@@ -514,29 +432,25 @@
<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_has_no_exportable_contact" msgid="5712531702823346549">"Nema kontakata koje je moguće izvesti."</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="progress_notifier_message" msgid="2311011466908220528">"Uvoz <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$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>
@@ -546,31 +460,22 @@
<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="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_export" msgid="1628001095187741417">"Izvezite kontakte"</string>
- <string name="dialog_import" msgid="2431698729761448759">"Uvoz kontakata"</string>
+ <string name="dialog_import" msgid="2423592905927819672">"Uvezite kontakte"</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šite prilagođeni prikaz"</string>
+ <string name="custom_list_filter" msgid="9048525797111024204">"Prilagodite 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" msgid="6107961135813836467">"Uvezi"</string>
<string name="menu_export" msgid="2658783911863503902">"Izvezi"</string>
<string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
@@ -578,20 +483,13 @@
<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="3043028982108363572">"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">"Podaci o licenci za softver otvorenog koda"</string>
@@ -605,8 +503,33 @@
<string name="description_delete_contact" msgid="53835657343783663">"Izbrišite"</string>
<string name="description_no_name_header" msgid="8884991311595943271">"Tri tačke"</string>
<string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
- <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
- <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%s</xliff:g> s <xliff:g id="MINUTES_1">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sek"</string>
+ <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> s <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sek"</string>
<string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ova prečica je onemogućena"</string>
<string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt je uklonjen"</string>
+ <string name="sim_import_button_text" msgid="4270841592496619317">"Uvezi"</string>
+ <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Izaberite kontakte"</string>
+ <string name="sim_import_empty_message" msgid="7743815244380189651">"Nema kontakata na SIM kartici"</string>
+ <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt je već na listi"</string>
+ <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+ <item quantity="one">Uvezen je <xliff:g id="COUNT">%d</xliff:g> kontakt sa SIM kartice</item>
+ <item quantity="few">Uvezena su <xliff:g id="COUNT">%d</xliff:g> kontakta sa SIM kartice</item>
+ <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM kartice</item>
+ </plurals>
+ <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspeo"</string>
+ <string name="sim_import_title" msgid="2511154832820812822">"Uvezite sa SIM-a"</string>
+ <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Otkažite"</string>
+ <string name="auto_sync_off" msgid="2180147284456026587">"Automatska sinhronizacija je isključena. Dodirnite da biste je uključili."</string>
+ <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odbacite"</string>
+ <string name="account_sync_off" msgid="7646143254066243924">"Sinhronizacija naloga je isključena. Dodirnite da biste je uključili."</string>
+ <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite da uključite automatsku sinhronizaciju?"</string>
+ <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Na vebu i uređajima će se redovno ažurirati promene koje unosite u svim aplikacijama i na svim nalozima, a ne samo u Google kontaktima."</string>
+ <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Uključi"</string>
+ <string name="connection_error_message" msgid="7046408921529247089">"Veza nije uspostavljena"</string>
+ <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+ <string name="show_more_content_description" msgid="4277410425912984722">"Prikaži više"</string>
+ <string name="importing_sim_finished_title" msgid="5196369441294050721">"Uvoz sa SIM kartice je završen"</string>
+ <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspeo"</string>
+ <string name="importing_sim_failed_message" msgid="3345258302998021066">"Uvoz kontakata sa SIM kartice nije uspeo"</string>
+ <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvozi se sa SIM-a"</string>
</resources>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index c63f68f..22bac53 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -18,21 +18,16 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Кантакты"</string>
<string name="contactsList" msgid="8661624236494819731">"Кантакты"</string>
+ <string name="shortcut_add_contact" msgid="7476283631356909204">"Дадаць кантакт"</string>
<string name="shortcutContact" msgid="749243779392912958">"Кантакт"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Хуткі выклік"</string>
- <string name="shortcutMessageContact" msgid="2460337253595976198">"Прамое паведамленне"</string>
- <string name="shortcutActivityTitle" msgid="6642877210643565436">"Выберыце кантакт для хуткага доступу"</string>
- <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Выберыце нумар для выкліку"</string>
- <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Выберыце нумар для адпраўкi паведамлення"</string>
+ <string name="shortcutMessageContact" msgid="2460337253595976198">"Хуткае паведамл."</string>
+ <string name="shortcutActivityTitle" msgid="1504383567778497348">"Выбраць кантакт"</string>
<string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Дадаць у кантакт"</string>
<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="viewContactTitle" msgid="7989394521836644384">"Дадзеныя кантакта"</string>
- <string name="contactDetailAbout" msgid="5430408883907061400">"Інфармацыя"</string>
- <string name="contactDetailUpdates" msgid="3780588624763446941">"Абнаўленні"</string>
<string name="searchHint" msgid="8482945356247760701">"Пошук кантактаў"</string>
- <string name="menu_viewContact" msgid="2795575601596468581">"Прагледзець кантакт"</string>
<string name="menu_addStar" msgid="2908478235715404876">"Дадаць у абраныя"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Выдаліць з абраных"</string>
<string name="description_action_menu_remove_star" msgid="4699640108012265178">"Выдалена з упадабаных"</string>
@@ -40,9 +35,7 @@
<string name="menu_editContact" msgid="9042415603857662633">"Рэдагаваць"</string>
<string name="menu_deleteContact" msgid="6788644058868189393">"Выдаліць"</string>
<string name="menu_change_photo" msgid="7769177631511496210">"Змяніць фота"</string>
- <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Размясціць на галоўным экране"</string>
- <string name="menu_call" msgid="3992595586042260618">"Выклікаць кантакт"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Паведамленне кантакту"</string>
+ <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Стварыць ярлык"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Выдаліць сувязь"</string>
<string name="menu_editGroup" msgid="6696843438454341063">"Выдаліць кантакты"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Перайменаваць метку"</string>
@@ -51,23 +44,27 @@
<string name="menu_selectForGroup" msgid="3999234528229376098">"Вылучыце кантакты"</string>
<string name="menu_addContactsToGroup" msgid="655196688840626483">"Дадаць кантакты"</string>
<string name="menu_removeFromGroup" msgid="6720354305399961978">"Выдаліць з меткі"</string>
- <string name="menu_new_contact_action_bar" msgid="7371001434034419566">"Дадаць кантакт"</string>
- <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Стварыць новую..."</string>
+ <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Стварыць метку"</string>
<string name="splitConfirmation" msgid="7342030840130187290">"Раз\'яднаць гэты кантакт на некалькі кантактаў?"</string>
- <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Выдаліць сувязь"</string>
+ <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Раз\'яднаць"</string>
<string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Жадаеце захаваць змяненні, якія вы ўжо зрабілі, і развязаць гэты кантакт на некалькі кантактаў?"</string>
<string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Захаваць і развязаць"</string>
<string name="joinConfirmation" msgid="8262614843581924365">"Жадаеце захаваць змяненні, якія вы ўжо зрабілі, і спасылку на выбраны кантакт?"</string>
<string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Захаваць і звязаць"</string>
+ <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Ідзе звязванне"</string>
+ <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ідзе выдаленне сувязі"</string>
<string name="menu_joinAggregate" msgid="3599512127797513606">"Звязаць"</string>
+ <string name="menu_linkedContacts" msgid="400444389718855621">"Прагледзець звязаныя кантакты"</string>
<string name="menu_save" msgid="1727844363591825909">"Захаваць"</string>
<string name="titleJoinContactDataWith" msgid="6825255752748313944">"Звязаць кантакты"</string>
<string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Выберыце кантакт, які хочаце звязаць з iмем <xliff:g id="NAME">%s</xliff:g>:"</string>
- <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Паказаць усе кантакты"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Прапанаваныя кантакты"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Усе кантакты"</string>
+ <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Звязаны <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="contactsJoinedMessage" msgid="3343535986195643136">"Кантакты звязаны"</string>
- <string name="contact_deleted_named_toast" msgid="6558941164987421174">"Карыстальнік <xliff:g id="NAME">%s</xliff:g> выдалены"</string>
+ <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Карыстальнік <xliff:g id="NAME">%1$s</xliff:g> выдалены"</string>
+ <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Карыстальнікі <xliff:g id="NAME_0">%1$s</xliff:g> і <xliff:g id="NAME_1">%2$s</xliff:g> выдалены"</string>
+ <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Карыстальнікі <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... выдалены"</string>
<plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
<item quantity="one">Кантакты выдалены</item>
<item quantity="few">Кантакты выдалены</item>
@@ -81,18 +78,19 @@
<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>
+ <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакт · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакты · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> кантактаў · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакту · <xliff:g id="ACCOUNT_3">%2$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>
<string name="menu_set_ring_tone" msgid="8728345772068064946">"Задаць рынгтон"</string>
- <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Усе выклікі на галасавую пошту"</string>
- <string name="readOnlyContactWarning" msgid="5526727661978307833">"Кантакты з уліковых запісаў, даступных толькі для чытання, нельга выдаліць, але іх можна схаваць."</string>
- <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Схаваць"</string>
- <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Кантакт на выдаленне мае інфармацыю з некалькіх уліковых запісаў. Інфармацыя з уліковых запісаў, даступных толькі для чытання, будзе схавана, а не выдалена."</string>
+ <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Накіроўваць на галасавую пошту"</string>
+ <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Адм. накірав. на галас. пошту"</string>
+ <string name="readOnlyContactWarning" msgid="7514475664695089411">"Гэты кантакт толькі для чытання. Яго немагчыма выдаліць, але вы можаце яго схаваць."</string>
+ <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Схаваць кантакт"</string>
+ <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Уліковыя запісы толькі для чытання ў гэтым кантакце будуць схаваны, а не выдалены."</string>
<string name="single_delete_confirmation" msgid="3106905986948679720">"Выдаліць гэты кантакт?"</string>
<string name="batch_delete_confirmation" msgid="3984346060324014108">"Выдаліць выбраныя кантакты?"</string>
<string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Кантакты з уліковых запісаў, даступных толькі для чытання, нельга выдаліць, але іх можна схаваць."</string>
@@ -100,76 +98,49 @@
<string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Выдаленне гэтага кантакту выдаліць інфармацыю з некалькіх уліковых запісаў."</string>
<string name="deleteConfirmation" msgid="3512271779086656043">"Выдаліць гэты кантакт?"</string>
<string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Выдаліць"</string>
- <string name="menu_discard" msgid="6854657936970228164">"Скасаваць змены"</string>
<string name="invalidContactMessage" msgid="8215051456181842274">"Кантакт не існуе."</string>
<string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Кантакт дададзены на Галоўны экран."</string>
<string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> дададзены на Галоўны экран."</string>
- <string name="pickerNewContactHeader" msgid="7750705279843568147">"Стварыць новы кантакт"</string>
- <string name="pickerNewContactText" msgid="6166997164401048211">"Стварыць новы кантакт"</string>
<string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"На планшэце няма фатаграфій."</string>
<string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"На тэлефоне няма даступных малюнкаў."</string>
<string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фота кантакта"</string>
<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="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="contactSavedNamedToast" msgid="895136068894549611">"Кантакт <xliff:g id="DISPLAY_NAME">%s</xliff:g> захаваны"</string>
<string name="contactSavedToast" msgid="9171862279493213075">"Кантакт захаваны"</string>
- <string name="contactUnlinkedToast" msgid="7122823195786012553">"Кантакты адлучаны"</string>
+ <string name="contactUnlinkedToast" msgid="7122823195786012553">"Кантакты раз\'яднаны"</string>
<string name="contactSavedErrorToast" msgid="4827033473908688031">"Не ўдалося захаваць змены кантакту"</string>
<string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Не ўдалося скасаваць сувязь з кантактам"</string>
<string name="contactJoinErrorToast" msgid="5735129234573327701">"Не ўдалося звязаць кантакт"</string>
<string name="contactGenericErrorToast" msgid="3885457515665783976">"Памылка пры захаванні кантакту"</string>
<string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Не ўдалося захаваць змяненні фота кантакту"</string>
<string name="groupLoadErrorToast" msgid="7536267148196064554">"Збой загрузкі этыкеткі"</string>
- <string name="groupSavedToast" msgid="6491495462357722285">"Метка захавана"</string>
<string name="groupDeletedToast" msgid="520896687873262027">"Метка выдалена"</string>
<string name="groupCreatedToast" msgid="1924195126172834870">"Створана метка"</string>
<string name="groupCreateFailedToast" msgid="4359093891863474299">"Немагчыма стварыць метку"</string>
<string name="groupUpdatedToast" msgid="3667977658676267687">"Метка абноўлена"</string>
<string name="groupMembersRemovedToast" msgid="3510563559799376603">"Выдалена з меткі"</string>
- <string name="groupMembersAddedToast" msgid="4824834898718972768">"Дададзена да этыкеткі"</string>
+ <string name="groupMembersAddedToast" msgid="4824834898718972768">"Дададзена ў метку"</string>
<string name="groupSavedErrorToast" msgid="2355891714292740162">"Не ўдалося захаваць змяненні меткі"</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>
- <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="listTotalPhoneContactsZero" msgid="6968813857632984319">"Няма кантактаў з нумарамі тэлефонаў"</string>
- <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
- <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="groupExistsErrorMessage" msgid="5196811283836946189">"Гэта метка ўжо існуе"</string>
+ <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Некаторыя кантакты не маюць адрасоў электр. пошты."</string>
+ <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Некаторыя кантакты не маюць нумароў тэлефона."</string>
+ <string name="menu_sendEmailOption" msgid="5978319931321657780">"Адправіць электронны ліст"</string>
+ <string name="menu_sendMessageOption" msgid="8850168125274916426">"Адправіць паведамленне"</string>
+ <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Выберыце кантакты"</string>
+ <string name="send_to_selection" msgid="2251339182881603540">"Адправіць"</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="all_contacts_tab_label" msgid="5948889261993124839">"Усе"</string>
- <string name="callBack" msgid="5498224409038809224">"Зваротны выклік"</string>
- <string name="callAgain" msgid="3197312117049874778">"Выклікаць зноў"</string>
- <string name="returnCall" msgid="8171961914203617813">"Зваротны выклік"</string>
<string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Дадаць адрас \"<xliff:g id="EMAIL">%s</xliff:g>\" у кантакты?"</string>
- <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
- <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> з <xliff:g id="TOTAL_NUMBER">%s</xliff:g> кантактаў"</string>
<string name="search_settings_description" msgid="2675223022992445813">"Імёны вашых кантактаў"</string>
- <string name="quickcontact_missing_app" msgid="358168575340921552">"Не знойдзена прыкладанне для гэтага дзеяння."</string>
<string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Націсніце, каб вярнуцца на папярэдні экран"</string>
<string name="quickcontact_add_phone_number" msgid="731665835910658965">"Дадаць нумар тэлефона"</string>
<string name="quickcontact_add_email" msgid="739298028384348482">"Дадаць адрас электроннай пошты"</string>
<string name="missing_app" msgid="1466111003546611387">"Не знойдзена праграма для гэтага дзеяння."</string>
- <string name="menu_share" msgid="943789700636542260">"Апублікаваць"</string>
+ <string name="menu_share" msgid="943789700636542260">"Абагуліць"</string>
<string name="menu_add_contact" msgid="3198704337220892684">"Дадаць у кантакты"</string>
<string name="menu_add_contacts" msgid="4465646512002163011">"Дадаць"</string>
<plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
@@ -181,54 +152,32 @@
<string name="dialog_new_group_account" msgid="3451312333591556651">"Выбраць уліковы запіс"</string>
<string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Стварыць метку"</string>
<string name="group_name_dialog_update_title" msgid="6328021162869677383">"Перайменаваць метку"</string>
- <string name="group_name_dialog_hint" msgid="5122118085780669813">"Метка"</string>
+ <string name="group_name_dialog_hint" msgid="7624523157537700160">"Назва меткі"</string>
+ <string name="label_name_dialog_hint" msgid="1276051790427638142">"Назва меткі"</string>
<string name="audio_chat" msgid="2535716629358298691">"Галасавы чат"</string>
<string name="video_chat" msgid="1872255818640336072">"Відэачат"</string>
- <string name="connections" msgid="8098440723172028350">"Сувязi"</string>
- <string name="add_connection_button" msgid="4861308615789601727">"Дадаць кантакт"</string>
- <string name="recent" msgid="2659189233141493004">"Нядаўнія"</string>
- <string name="recent_updates" msgid="4267258535615860710">"Апошнія абнаўленні"</string>
<string name="account_type_format" msgid="718948015590343010">"Кантакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
<string name="google_account_type_format" msgid="5283997303922067997">"Уліковы запіс <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
- <!-- no translation found for from_account_format (4469138575127580203) -->
- <skip />
<string name="take_photo" msgid="7496128293167402354">"Зрабіць фота"</string>
- <string name="take_new_photo" msgid="7341354729436576304">"Зрабiце новую фатаграфію"</string>
+ <string name="take_new_photo" msgid="7341354729436576304">"Зрабiць новую фатаграфію"</string>
<string name="pick_photo" msgid="2129509985223564942">"Выбраць фота"</string>
<string name="pick_new_photo" msgid="9122450996263688237">"Выбраць новае фота"</string>
- <string name="upgrade_in_progress" msgid="474511436863451061">"Спiс кантактаў абнаўляецца."</string>
<string name="search_results_searching" msgid="3984833028938569930">"Пошук..."</string>
- <string name="menu_display_selected" msgid="6470001164297969034">"Паказаць выбраныя"</string>
- <string name="menu_display_all" msgid="8887488642609786198">"Паказаць усіх"</string>
- <string name="menu_select_all" msgid="621719255150713545">"Выбраць усе"</string>
- <string name="menu_select_none" msgid="7093222469852132345">"Адмяніць выбар для ўсіх"</string>
- <string name="add_new_entry_for_section" msgid="5223080690667565044">"Дадаць новы"</string>
- <string name="add_organization" msgid="7311893231158291197">"Дадаць арганізацыю"</string>
<string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
<string name="group_edit_field_hint_text" msgid="8038224059926963133">"Метка"</string>
- <string name="change_photo" msgid="8530597935483526383">"Змяніць"</string>
- <string name="description_star" msgid="2605854427360036550">"выбранае"</string>
- <string name="edit_contact" msgid="7529281274005689512">"Рэдагаваць кантакт"</string>
+ <string name="cancel_button_content_description" msgid="1288652456274531846">"Скасаваць"</string>
+ <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
<string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрыць"</string>
- <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Звязаць бягучы кантакт з выбраным кантактам?"</string>
<string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Пераключыцца ў рэжым рэдагавання выбранага кантакту? Інфармацыя, якую вы ўвялі да гэтага часу, будзе скапіявана."</string>
- <string name="menu_copyContact" msgid="1573960845106822639">"Капіяваць у мае кантакты"</string>
- <string name="add_to_my_contacts" msgid="1068274916793627723">"Дадаць да Маіх кантактаў"</string>
<string name="contact_directory_description" msgid="683398073603909119">"Каталог <xliff:g id="TYPE">%1$s</xliff:g>"</string>
<string name="activity_title_settings" msgid="5464130076132770781">"Налады"</string>
<string name="menu_settings" msgid="377929915873428211">"Налады"</string>
<string name="menu_help" msgid="1680178646764069976">"Даведка і водгукі"</string>
- <string name="preference_displayOptions" msgid="1341720270148252393">"Параметры адлюстравання"</string>
<string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="1541655052330027380">"Нумар тэлефона"</string>
<string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Дадаць у кантакты"</string>
- <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Дадаць у кантакт"</string>
<string name="non_phone_close" msgid="7608506439725515667">"Закрыць"</string>
- <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
<string name="date_year_toggle" msgid="7122002148518724139">"Уключыць год"</string>
- <string name="social_widget_label" msgid="6378905543028924592">"Кантакт"</string>
- <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="3182801738595937144">"Імпартаваць"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Стварыць новую..."</string>
@@ -241,35 +190,35 @@
<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="3316573928085916146">"Скасаваць"</string>
- <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Скасаваць дапасаванні?"</string>
- <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="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Скасаваць карыст. выгляд?"</string>
<string name="enter_contact_name" msgid="4594274696120278368">"Пошук кантактаў"</string>
<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="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_new_contact" msgid="3042788718983070111">"Стварыць новы кантакт"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Рэдагаваць кантакт"</string>
+ <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Толькі прагляд"</string>
+ <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Выбраць кантакт для рэдагавання"</string>
+ <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Звязаныя кантакты"</string>
+ <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Дадаць"</string>
+ <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Выдаліць сувязь"</string>
<string name="add_account" msgid="8201790677994503186">"Дадаць уліковы запіс"</string>
<string name="add_new_account" msgid="5748627740680940264">"Дадаць новы ўліковы запіс"</string>
<string name="menu_export_database" msgid="2659719297530170820">"Экспарт базы дадзеных файлаў"</string>
- <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"дадаць новы кантакт"</string>
+ <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Стварыць новы кантакт"</string>
<string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Болей"</string>
<string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Паказаць менш"</string>
<string name="recent_card_title" msgid="8982782042698001695">"Нядаўнія"</string>
<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="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>
<string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Заўтра ў перыяд <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
- <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+ <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
<string name="untitled_event" msgid="3484859385405939366">"(Падзея без назвы)"</string>
<string name="date_time_set" msgid="4761419824439606690">"Задаць"</string>
<string name="header_im_entry" msgid="3581720979640225615">"Iмгненныя паведамленні"</string>
@@ -279,80 +228,42 @@
<string name="header_website_entry" msgid="1411467850000824745">"Вэб-сайт"</string>
<string name="header_event_entry" msgid="6738250422744401460">"Падзея"</string>
<string name="header_relation_entry" msgid="1520292958088146460">"Сувязь"</string>
- <string name="header_account_entry" msgid="2684318506427891827">"Уліковы запіс"</string>
<string name="header_name_entry" msgid="1592791008096288306">"Імя"</string>
<string name="header_email_entry" msgid="8666093061171624478">"Электронная пошта"</string>
<string name="header_phone_entry" msgid="8450980572274173570">"Тэлефон"</string>
- <string name="content_description_expand_editor" msgid="1111381475901897470">"Націсніце, каб разгарнуць рэдактар кантактаў."</string>
- <string name="content_description_collapse_editor" msgid="7598061318022977825">"Націсніце, каб згарнуць рэдактар кантактаў."</string>
<string name="content_description_directions" msgid="2686791825798189335">"напрамкі да месцазнаходжання"</string>
- <string name="content_description_recent_sms" msgid="1666389577263317445">"апошнія sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. націсніце, каб адказаць"</string>
+ <string name="content_description_recent_sms" msgid="1666389577263317445">"апошнія sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. націсніце, каб адказаць"</string>
<string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"уваходны"</string>
<string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"выходны"</string>
<string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"прапушчаны"</string>
- <string name="content_description_recent_call" msgid="5183800406316723676">"апошні выклік. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. націсніце для зваротнага выкліку"</string>
+ <string name="content_description_recent_call" msgid="5183800406316723676">"апошні выклік. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. націсніце для зваротнага выкліку"</string>
<string name="message_from_you_prefix" msgid="7180706529908434482">"Вы: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
- <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts працуе лепш, калі вы ўводзіце ідэнтыфікатар асобы Hangouts у поле для адраса электроннай пошты ці тэлефона."</string>
<string name="editor_more_fields" msgid="3630987771304393421">"Дадатковыя палі"</string>
- <string name="editor_change_photo_content_description" msgid="754100561085306263">"Змяніць фота"</string>
- <string name="editor_failed_to_load" msgid="1623639078580475818">"Збой адкрыцця рэдактара."</string>
- <string name="editor_account_selector_title" msgid="4426337993307015833">"Захоўваць у:"</string>
- <string name="editor_account_selector_read_only_title" msgid="8315171723911587719">"Прагляд"</string>
- <string name="editor_account_selector_description" msgid="3324358600570627740">"Зараз захоўваецца ва ўліковы запіс <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Краніце двойчы, каб выбраць іншы ўліковы запіс."</string>
- <plurals name="editor_linked_contacts_selector_title" formatted="false" msgid="249075501821303190">
- <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="quickcontact_contacts_number" msgid="6036916944287597682">"Звязаных кантактаў: <xliff:g id="COUNT">%d</xliff:g>"</string>
- <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+ <string name="editor_change_photo_content_description" msgid="820879708069864340">"Змяніць фота кантакту"</string>
+ <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Дадаць фота кантакту"</string>
+ <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Фота кантакту"</string>
+ <string name="editor_failed_to_load" msgid="1623639078580475818">"Збой пры адкрыванні рэдактара."</string>
+ <string name="editor_account_selector_title" msgid="4426337993307015833">"Захаваць у:"</string>
+ <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Кантактную інфармацыю з <xliff:g id="ACCOUNT">%s</xliff:g> немагчыма рэдагаваць"</string>
<string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ЗВЯЗАЦЬ КАНТАКТЫ"</string>
<string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"СКАСАВАЦЬ"</string>
- <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
- <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>
- <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
- <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>
- <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
- <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="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
<string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Гэты кантакт"</string>
<string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Магчымыя дублікаты"</string>
<string name="suggestion_card_help_message" msgid="4474061044387181093">"Гэтыя кантакты могуць датычыць адной асобы. Іх можна звязаць, каб стварыць адзіны кантакт."</string>
- <string name="editor_linked_contacts_title" msgid="3077479751631492125">"Звязаныя кантакты"</string>
- <string name="from_your_accounts" msgid="1746293107836889912">"З вашых уліковых запісаў"</string>
- <string name="photo_picker_title" msgid="5272832995550042801">"Выбраць фота"</string>
- <string name="contact_from_account_name" msgid="2078526819634079406">"З уліковага запісу <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
- <string name="editor_delete_view_description" msgid="8583095381562991959">"Выдаліць <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+ <string name="editor_delete_view_description" msgid="8583095381562991959">"Выдаліць <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
<string name="editor_delete_view_description_short" msgid="7335518371270844912">"Выдаліць <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
- <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Фота з уліковага запісу <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>не пазначана"</string>
- <string name="photo_view_description_checked" msgid="3906597168607472795">"Фота з уліковага запісу <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>пазначана"</string>
- <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Фота з невядомага ўліковага запісу не пазначана"</string>
- <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Пазначана фота з невядомага ўліковага запісу"</string>
- <string name="locale_change_in_progress" msgid="6975676844194755501">"Спіс кантактаў абнаўляецца, каб адлюстраваць змяненне мовы.\n\nПачакайце..."</string>
- <string name="menu_duplicates" msgid="4129802988372197257">"Дублікаты"</string>
+ <string name="menu_assistant" msgid="5760693735722052454">"Прапановы"</string>
+ <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Новыя"</string>
<string name="navigation_drawer_open" msgid="1126498472143250642">"Адкрыць высоўнае меню навігацыі"</string>
<string name="navigation_drawer_close" msgid="4137416137011817930">"Закрыць высоўнае меню навігацыi"</string>
<string name="menu_title_groups" msgid="8356921831150278868">"Меткі"</string>
<string name="menu_title_filters" msgid="8210922220185114527">"Уліковыя запісы"</string>
- <string name="permission_explanation_header" msgid="5739405825039695327">"Праглядайце сваю гісторыю разам"</string>
- <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Падзеі і паведамленні"</string>
+ <string name="permission_explanation_header" msgid="5739405825039695327">"Паказваць усю гісторыю разам"</string>
+ <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Падзеі і паведамленні"</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>
+ <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Прапановы"</string>
+ <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Упарадкуйце свае кантакты для зручнага выкарыстання"</string>
<string name="undo" msgid="1425165101664071422">"Адрабіць"</string>
<string name="call_custom" msgid="6385303130912713318">"Выклікаць <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
<string name="call_home" msgid="1990519474420545392">"Патэлефанаваць на хатні нумар"</string>
@@ -409,11 +320,9 @@
<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="foundTooManyContacts" msgid="5163335650920020220">"Знойдзена вынікаў: больш за <xliff:g id="COUNT">%d</xliff:g>."</string>
<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>
@@ -421,16 +330,15 @@
<string name="account_sim" msgid="6519016427905087952">"SIM"</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="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>
@@ -441,7 +349,7 @@
<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="ghostData_title" msgid="7496735200318496110">"Пасада"</string>
<string name="label_notes" msgid="8337354953278341042">"Нататкі"</string>
<string name="label_custom_field" msgid="1994056912242214426">"Карыстальніцкі"</string>
<string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
@@ -454,8 +362,6 @@
<string name="email_custom" msgid="5536404237099078802">"Адправіць ліст на адрас <xliff:g id="CUSTOM_LABEL">%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>
@@ -474,10 +380,10 @@
<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_name_fields_description" msgid="6883935911480726652">"Разгарнуць палі імён"</string>
+ <string name="expand_name_fields_description" msgid="6948274252874552543">"Паказаць больш палёў імён"</string>
<string name="collapse_name_fields_description" msgid="4757877385895561556">"Згарнуць палі імён"</string>
- <string name="expand_phonetic_name_fields_description" msgid="3865726859582581741">"Разгарнуць палі вымаўлення імён"</string>
- <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Згарнуць палі вымаўлення імён"</string>
+ <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Паказаць больш палёў фанетычных імён"</string>
+ <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Згарнуць палі фанетычных імён"</string>
<string name="expand_fields_description" msgid="8129294181216760037">"Разгарнуць"</string>
<string name="collapse_fields_description" msgid="1884143625854637874">"Згарнуць"</string>
<string name="announce_expanded_fields" msgid="1075947220478530622">"Разгорнута"</string>
@@ -493,30 +399,37 @@
<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="import_from_sim" msgid="6912071635295799131">"SIM-карта"</string>
+ <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-карта <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+ <item quantity="one">%1$d кантакт</item>
+ <item quantity="few">%1$d кантакты</item>
+ <item quantity="many">%1$d кантактаў</item>
+ <item quantity="other">%1$d кантакту</item>
+ </plurals>
+ <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+ <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> кантакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> кантакты • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> кантактаў • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> кантакту • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ </plurals>
+ <string name="import_from_vcf_file" product="default" msgid="8662528435646418203">"Файл .vcf"</string>
+ <string name="nothing_to_import_message" msgid="1651921906873335656">"Няма што імпартаваць"</string>
+ <string name="import_from_vcf_file_confirmation_message" product="default" msgid="967723361108008345">"Імпартаваць кантакты з vCard?"</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_open_file" msgid="2067725459821997463">"Немагчыма адкрыць файл \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$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>
@@ -525,29 +438,25 @@
<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_has_no_exportable_contact" msgid="5712531702823346549">"Няма кантактаў, якія можна экспартаваць."</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="progress_notifier_message" msgid="2311011466908220528">"Імпарт <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$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>
@@ -557,31 +466,22 @@
<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="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_export" msgid="1628001095187741417">"Экспартаваць кантакты"</string>
- <string name="dialog_import" msgid="2431698729761448759">"Імпартаваць кантакты"</string>
+ <string name="dialog_import" msgid="2423592905927819672">"Імпартаваць кантакты з"</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="activity_title_contacts_filter" msgid="8275542497615516969">"Адлюстроўваць кантакты"</string>
+ <string name="custom_list_filter" msgid="9048525797111024204">"Наладзіць від"</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" msgid="6107961135813836467">"Імпартаваць"</string>
<string name="menu_export" msgid="2658783911863503902">"Экспартаваць"</string>
<string name="menu_blocked_numbers" msgid="5272951629083025995">"Заблакіраваныя нумары"</string>
@@ -589,27 +489,19 @@
<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="3043028982108363572">"Увесці нататку для адпраўкі з выклікам…"</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" 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="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>
@@ -617,8 +509,34 @@
<string name="description_delete_contact" msgid="53835657343783663">"Выдаліць"</string>
<string name="description_no_name_header" msgid="8884991311595943271">"Шматкроп\'е"</string>
<string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> c"</string>
- <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
- <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%s</xliff:g> гадз <xliff:g id="MINUTES_1">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+ <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> хв <xliff:g id="SECONDS">%2$s</xliff:g> с"</string>
+ <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> гадз <xliff:g id="MINUTES_1">%2$s</xliff:g> хв <xliff:g id="SECONDS">%3$s</xliff:g> с"</string>
<string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Гэта спалучэнне клавіш было адключана"</string>
<string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Кантакт быў выдалены"</string>
+ <string name="sim_import_button_text" msgid="4270841592496619317">"Імпартаваць"</string>
+ <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Выберыце кантакты"</string>
+ <string name="sim_import_empty_message" msgid="7743815244380189651">"На вашай SIM-карце няма кантактаў"</string>
+ <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Кантакт ужо ёсць у вашым спісе"</string>
+ <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> кантакт SIM-карты імпартаваны</item>
+ <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> кантакты SIM-карты імпартаваны</item>
+ <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> кантактаў SIM-карты імпартаваны</item>
+ <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> кантакту SIM-карты імпартавана</item>
+ </plurals>
+ <string name="sim_import_failed_toast" msgid="5559267299793622705">"Памылка імпарту кантактаў SIM-карты"</string>
+ <string name="sim_import_title" msgid="2511154832820812822">"Імпартаваць з SIM-карты"</string>
+ <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Скасаваць"</string>
+ <string name="auto_sync_off" msgid="2180147284456026587">"Аўтасінхранізацыя адключана. Дакраніцеся, каб уключыць яе."</string>
+ <string name="dismiss_sync_alert" msgid="8941131776605093596">"Адхіліць"</string>
+ <string name="account_sync_off" msgid="7646143254066243924">"Сінхранізацыя ўліковага запісу адключана. Дакраніцеся, каб уключыць яе."</string>
+ <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Уключыць аўтасінхранізацыю?"</string>
+ <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Змены, якія вы зрабілі ва ўсіх праграмах і ўліковых запісах, не толькі ў Кантактах Google, будуць сінхранізоўвацца паміж вэб-інтэрфейсам і вашымі прыладамі."</string>
+ <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Уключыць"</string>
+ <string name="connection_error_message" msgid="7046408921529247089">"Няма падключэння"</string>
+ <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-карта"</string>
+ <string name="show_more_content_description" msgid="4277410425912984722">"Паказаць больш"</string>
+ <string name="importing_sim_finished_title" msgid="5196369441294050721">"Імпартаванне SIM-карты скончана"</string>
+ <string name="importing_sim_failed_title" msgid="39706901030537985">"Не ўдалося імпартаваць"</string>
+ <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не ўдалося імпартаваць кантакты з SIM-карты"</string>
+ <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Імпартаванне SIM"</string>
</resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 6667bb3..ef97121 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -18,21 +18,16 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
<string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+ <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj kontakt"</string>
<string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
<string name="shortcutMessageContact" msgid="2460337253595976198">"Direktna poruka"</string>
- <string name="shortcutActivityTitle" msgid="6642877210643565436">"Izaberite prečicu kontakta"</string>
- <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Izaberite broj za pozivanje"</string>
- <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Izaberite broj da pošaljete poruku"</string>
+ <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izaberi kontakt"</string>
<string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodaj u kontakt"</string>
<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="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</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>
- <string name="menu_viewContact" msgid="2795575601596468581">"Prikaži kontakt"</string>
<string name="menu_addStar" msgid="2908478235715404876">"Dodaj u favorite"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Ukloni iz favorita"</string>
<string name="description_action_menu_remove_star" msgid="4699640108012265178">"Uklonjeno iz favorita"</string>
@@ -40,9 +35,7 @@
<string name="menu_editContact" msgid="9042415603857662633">"Uredi"</string>
<string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
<string name="menu_change_photo" msgid="7769177631511496210">"Promijeni fotografiju"</string>
- <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Postavi na Početni ekran"</string>
- <string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji tekstualnu poruku kontaktu"</string>
+ <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Napravi prečicu"</string>
<string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
<string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
<string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
@@ -51,23 +44,27 @@
<string name="menu_selectForGroup" msgid="3999234528229376098">"Odaberite kontakte"</string>
<string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodaj kontakte"</string>
<string name="menu_removeFromGroup" msgid="6720354305399961978">"Ukloni iz oznake"</string>
- <string name="menu_new_contact_action_bar" msgid="7371001434034419566">"Dodaj kontakt"</string>
- <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Napravi novu…"</string>
+ <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Napravi oznaku"</string>
<string name="splitConfirmation" msgid="7342030840130187290">"Razdvojiti ovaj kontakt na više kontakata?"</string>
<string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdvoji"</string>
<string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Želite li sačuvati promjene koje ste već načinili i razdvojiti ovaj kontakt na više kontakata?"</string>
<string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Sačuvaj i razdvoji"</string>
<string name="joinConfirmation" msgid="8262614843581924365">"Želite li sačuvati promjene koje ste već načinili i povezati s odabranim kontaktom?"</string>
<string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Sačuvaj i poveži"</string>
+ <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezivanje u toku"</string>
+ <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Prekid povezanosti u toku"</string>
<string name="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</string>
+ <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaz povezanih kontakata"</string>
<string name="menu_save" msgid="1727844363591825909">"Sačuvaj"</string>
<string name="titleJoinContactDataWith" msgid="6825255752748313944">"Poveži kontakte"</string>
<string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izaberite kontakt koji želite povezati s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
- <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Prikaži sve kontakte"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
+ <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> je povezan"</string>
<string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su povezani"</string>
- <string name="contact_deleted_named_toast" msgid="6558941164987421174">"Kontakt <xliff:g id="NAME">%s</xliff:g> je izbrisan"</string>
+ <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> je izbrisan"</string>
+ <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Kontakti <xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g> su izbrisani"</string>
+ <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Kontakti <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… su izbrisani"</string>
<plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
<item quantity="one">Kontakti su izbrisani</item>
<item quantity="few">Kontakti su izbrisani</item>
@@ -79,17 +76,18 @@
<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>
+ <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%2$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>
<string name="menu_set_ring_tone" msgid="8728345772068064946">"Postavi zvono"</string>
- <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Svi pozivi na govornu poštu"</string>
- <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakti s računa koji su samo za čitanje se ne mogu izbrisati, ali se mogu sakriti."</string>
- <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sakrij"</string>
- <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt kojeg želite izbrisati sadrži detalje s više računa. Detalji s računa koji su samo za čitanje se neće izbrisati, već sakriti."</string>
+ <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Preusmjeri na govornu poštu"</string>
+ <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Poništi preusmj. na gov. poštu"</string>
+ <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ovaj kontakt je samo za čitanje. Ne može se izbrisati, ali ga možete sakriti."</string>
+ <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sakrij kontakt"</string>
+ <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Računi koji su samo za čitanje u ovom kontaktu bit će sakriveni, ne izbrisani."</string>
<string name="single_delete_confirmation" msgid="3106905986948679720">"Izbrisati ovaj kontakt?"</string>
<string name="batch_delete_confirmation" msgid="3984346060324014108">"Izbrisati odabrane kontakte?"</string>
<string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakti s računa koji su samo za čitanje se ne mogu izbrisati, ali se mogu sakriti."</string>
@@ -97,21 +95,15 @@
<string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Brisanjem ovog kontakta ćete izbrisati detalje s više računa."</string>
<string name="deleteConfirmation" msgid="3512271779086656043">"Izbrisati ovaj kontakt?"</string>
<string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
- <string name="menu_discard" msgid="6854657936970228164">"Odbaci promjene"</string>
<string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
<string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt je dodan na Početni ekran."</string>
<string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> je dodan na Početni ekran."</string>
- <string name="pickerNewContactHeader" msgid="7750705279843568147">"Napravi novi kontakt"</string>
- <string name="pickerNewContactText" msgid="6166997164401048211">"Napravi novi kontakt"</string>
<string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Na tabletu nema dostupnih slika."</string>
<string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Na telefonu nema dostupnih slika."</string>
<string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografija kontakta"</string>
<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="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>
@@ -124,7 +116,6 @@
<string name="contactGenericErrorToast" msgid="3885457515665783976">"Greška prilikom spremanja kontakta"</string>
<string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nije moguće sačuvati promjene fotografije kontakta"</string>
<string name="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspjelo"</string>
- <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je sačuvana"</string>
<string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
<string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je napravljena"</string>
<string name="groupCreateFailedToast" msgid="4359093891863474299">"Nije moguće napraviti oznaku"</string>
@@ -133,32 +124,15 @@
<string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano oznaci"</string>
<string name="groupSavedErrorToast" msgid="2355891714292740162">"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>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata s brojevima telefona</item>
- </plurals>
- <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata s brojevima telefona"</string>
- <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
- <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="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Neki kontakti nemaju adrese e-pošte."</string>
+ <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju brojeve telefona."</string>
+ <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošalji poruku e-pošte"</string>
+ <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošalji poruku"</string>
+ <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izaberite kontakte"</string>
+ <string name="send_to_selection" msgid="2251339182881603540">"Pošalji"</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="all_contacts_tab_label" msgid="5948889261993124839">"Sve"</string>
- <string name="callBack" msgid="5498224409038809224">"Uputi povratni poziv"</string>
- <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">"Dodati \"<xliff:g id="EMAIL">%s</xliff:g>\" u kontakte?"</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> kontakata"</string>
<string name="search_settings_description" msgid="2675223022992445813">"Imena kontakata"</string>
- <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena aplikacija za obavljanje ove radnje."</string>
<string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za povratak na prethodni ekran"</string>
<string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte broj telefona"</string>
<string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte adresu e-pošte"</string>
@@ -174,54 +148,32 @@
<string name="dialog_new_group_account" msgid="3451312333591556651">"Izaberi račun"</string>
<string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Napravi oznaku"</string>
<string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenuj oznaku"</string>
- <string name="group_name_dialog_hint" msgid="5122118085780669813">"Oznaka"</string>
+ <string name="group_name_dialog_hint" msgid="7624523157537700160">"Naziv oznake"</string>
+ <string name="label_name_dialog_hint" msgid="1276051790427638142">"Naziv oznake"</string>
<string name="audio_chat" msgid="2535716629358298691">"Glasovno ćaskanje"</string>
<string name="video_chat" msgid="1872255818640336072">"Videoćaskanje"</string>
- <string name="connections" msgid="8098440723172028350">"Veze"</string>
- <string name="add_connection_button" msgid="4861308615789601727">"Dodaj vezu"</string>
- <string name="recent" msgid="2659189233141493004">"Nedavno"</string>
- <string name="recent_updates" msgid="4267258535615860710">"Nedavna ažuriranja"</string>
<string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
<string name="google_account_type_format" msgid="5283997303922067997">"Račun <xliff:g id="SOURCE">%1$s</xliff:g>"</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">"Snimi novu fotografiju"</string>
<string name="pick_photo" msgid="2129509985223564942">"Izaberi fotografiju"</string>
<string name="pick_new_photo" msgid="9122450996263688237">"Odaberi novu fotografiju"</string>
- <string name="upgrade_in_progress" msgid="474511436863451061">"Lista kontakata se ažurira."</string>
<string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje…"</string>
- <string name="menu_display_selected" msgid="6470001164297969034">"Prikaži odabrane"</string>
- <string name="menu_display_all" msgid="8887488642609786198">"Prikaži sve"</string>
- <string name="menu_select_all" msgid="621719255150713545">"Odaberi sve"</string>
- <string name="menu_select_none" msgid="7093222469852132345">"Ukloni odabir svih"</string>
- <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novi"</string>
- <string name="add_organization" msgid="7311893231158291197">"Dodaj organizaciju"</string>
<string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
<string name="group_edit_field_hint_text" msgid="8038224059926963133">"Oznaka"</string>
- <string name="change_photo" msgid="8530597935483526383">"Promijeni"</string>
- <string name="description_star" msgid="2605854427360036550">"favorit"</string>
- <string name="edit_contact" msgid="7529281274005689512">"Uredi kontakt"</string>
+ <string name="cancel_button_content_description" msgid="1288652456274531846">"Otkaži"</string>
+ <string name="back_arrow_content_description" msgid="4355362760545735065">"Nazad"</string>
<string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvori"</string>
- <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Povezati trenutni kontakt s odabranim kontaktom?"</string>
<string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Prebaciti se na uređivanje odabranog kontakta? Informacije koje ste unijeli će biti kopirane."</string>
- <string name="menu_copyContact" msgid="1573960845106822639">"Kopiraj u Moje kontakte"</string>
- <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj u Moje kontakte"</string>
<string name="contact_directory_description" msgid="683398073603909119">"Imenik <xliff:g id="TYPE">%1$s</xliff:g>"</string>
<string name="activity_title_settings" msgid="5464130076132770781">"Postavke"</string>
<string name="menu_settings" msgid="377929915873428211">"Postavke"</string>
<string name="menu_help" msgid="1680178646764069976">"Pomoć i povratne informacije"</string>
- <string name="preference_displayOptions" msgid="1341720270148252393">"Opcije prikaza"</string>
<string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="1541655052330027380">"Broj telefona"</string>
<string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj u kontakte"</string>
- <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodaj u kontakt"</string>
<string name="non_phone_close" msgid="7608506439725515667">"Zatvori"</string>
- <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
- <string name="date_year_toggle" msgid="7122002148518724139">"Uključi godine"</string>
- <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
- <string name="social_widget_loading" msgid="5327336597364074608">"Učitavanje…"</string>
- <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Napravi novi kontakt"</string>
+ <string name="date_year_toggle" msgid="7122002148518724139">"Prikaži godinu"</string>
<string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj račun"</string>
<string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
<string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
@@ -235,114 +187,80 @@
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
<string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
<string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Odbaciti prilagođavanja?"</string>
- <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>
<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="6648376557574360096">"Odvojite trenutak da dodate račun putem kojeg će se kontakti sigurnosno kopirati na Google."</string>
+ <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojite malo vremena 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_new_contact" msgid="3042788718983070111">"Napravi novi kontakt"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
+ <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo prikaz"</string>
+ <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izaberite kontakt za uređivanje"</string>
+ <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Povezani kontakti"</string>
+ <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+ <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Prekini povezanost"</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>
- <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodaj novi kontakt"</string>
+ <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Napravi novi kontakt"</string>
<string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Pogledaj više"</string>
<string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Vidi manje"</string>
<string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
<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="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>
<string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sutra u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
- <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+ <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
<string name="untitled_event" msgid="3484859385405939366">"(Događaj bez naslova)"</string>
<string name="date_time_set" msgid="4761419824439606690">"Postavi"</string>
<string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
<string name="header_organization_entry" msgid="8515394955666265406">"Organizacija"</string>
<string name="header_nickname_entry" msgid="6743561883967451485">"Nadimak"</string>
<string name="header_note_entry" msgid="4320190426480612344">"Bilješka"</string>
- <string name="header_website_entry" msgid="1411467850000824745">"Web stranica"</string>
+ <string name="header_website_entry" msgid="1411467850000824745">"Web lokacija"</string>
<string name="header_event_entry" msgid="6738250422744401460">"Događaj"</string>
<string name="header_relation_entry" msgid="1520292958088146460">"Odnos"</string>
- <string name="header_account_entry" msgid="2684318506427891827">"Račun"</string>
<string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
<string name="header_email_entry" msgid="8666093061171624478">"E-pošta"</string>
<string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
- <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknite da proširite uređivač kontakata."</string>
- <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite da skupite uređivač kontakata."</string>
<string name="content_description_directions" msgid="2686791825798189335">"smjernice do lokacije"</string>
- <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms-ovi. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite da odgovorite"</string>
+ <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms-ovi. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite da odgovorite"</string>
<string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"dolazni"</string>
<string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odlazni"</string>
<string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"propušteni"</string>
- <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni poziv. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite da uputite povratni poziv"</string>
+ <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni poziv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite da uputite povratni poziv"</string>
<string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
- <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funkcionira bolje kada unesete Hangouts identifikator osobe u polje za adresu e-pošte ili telefon."</string>
<string name="editor_more_fields" msgid="3630987771304393421">"Više polja"</string>
- <string name="editor_change_photo_content_description" msgid="754100561085306263">"Promijeni fotografiju"</string>
+ <string name="editor_change_photo_content_description" msgid="820879708069864340">"Promijenite fotografiju kontakta"</string>
+ <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodajte fotografiju kontakta"</string>
+ <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografija kontakta"</string>
<string name="editor_failed_to_load" msgid="1623639078580475818">"Otvaranje uređivača nije uspjelo."</string>
<string name="editor_account_selector_title" msgid="4426337993307015833">"Sačuvaj na"</string>
- <string name="editor_account_selector_read_only_title" msgid="8315171723911587719">"Prikazuje se"</string>
- <string name="editor_account_selector_description" msgid="3324358600570627740">"Trenutno se sprema na račun <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dodirnite dvaput da izaberete drugi račun."</string>
- <plurals name="editor_linked_contacts_selector_title" formatted="false" msgid="249075501821303190">
- <item quantity="one">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="few">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="other">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
- </plurals>
- <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Povezani kontakti: <xliff:g id="COUNT">%d</xliff:g>"</string>
- <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+ <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Informacije o kontaktu s <xliff:g id="ACCOUNT">%s</xliff:g> nije moguće uređivati"</string>
<string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POVEŽI KONTAKTE"</string>
<string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"OTKAŽI"</string>
- <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> Mogući duplikat</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> Moguća duplikata</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Mogućih duplikata</item>
- </plurals>
- <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
- <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> povezan kontakt</item>
- <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> povezana kontakta</item>
- <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> povezanih kontakata</item>
- </plurals>
- <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
- <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
- </plurals>
- <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
<string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ovaj kontakt"</string>
<string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogući duplikati"</string>
<string name="suggestion_card_help_message" msgid="4474061044387181093">"Moguće je da su ovi kontakti ista osoba. Možete ih povezati u jedan kontakt."</string>
- <string name="editor_linked_contacts_title" msgid="3077479751631492125">"Povezani kontakti"</string>
- <string name="from_your_accounts" msgid="1746293107836889912">"S vaših računa"</string>
- <string name="photo_picker_title" msgid="5272832995550042801">"Izaberi fotografiju"</string>
- <string name="contact_from_account_name" msgid="2078526819634079406">"Od kontakta <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
- <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+ <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
<string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
- <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotografija s računa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>nije označena"</string>
- <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotografija s računa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>je označena"</string>
- <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotografija s nepoznatog računa nije označena"</string>
- <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotografija s nepoznatog računa je označena"</string>
- <string name="locale_change_in_progress" msgid="6975676844194755501">"Lista kontakata se ažurira u skladu s promjenom jezika.\n\nPričekajte…"</string>
- <string name="menu_duplicates" msgid="4129802988372197257">"Duplikati"</string>
+ <string name="menu_assistant" msgid="5760693735722052454">"Prijedlozi"</string>
+ <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
<string name="navigation_drawer_open" msgid="1126498472143250642">"Otvori panel za navigaciju"</string>
<string name="navigation_drawer_close" msgid="4137416137011817930">"Zatvori panel za navigaciju"</string>
<string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
<string name="menu_title_filters" msgid="8210922220185114527">"Računi"</string>
<string name="permission_explanation_header" msgid="5739405825039695327">"Pogledajte historiju kalendara i SMS-a"</string>
- <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Događaji i poruke"</string>
+ <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"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>
- <string name="undo" msgid="1425165101664071422">"Opozovi radnju"</string>
+ <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Prijedlozi"</string>
+ <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Neka vam kontakti budu organizirani i korisni"</string>
+ <string name="undo" msgid="1425165101664071422">"Poništi"</string>
<string name="call_custom" msgid="6385303130912713318">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
<string name="call_home" msgid="1990519474420545392">"Pozovi kuću"</string>
<string name="call_mobile" msgid="7502236805487609178">"Pozovi mobitel"</string>
@@ -394,15 +312,13 @@
<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="local_invisible_directory" msgid="6046691709127661065">"Ostali"</string>
+ <string name="local_invisible_directory" msgid="6046691709127661065">"Ostalo"</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="foundTooManyContacts" msgid="5163335650920020220">"Pronađeno je više od <xliff:g id="COUNT">%d</xliff:g>."</string>
<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>
@@ -410,17 +326,16 @@
<string name="account_sim" msgid="6519016427905087952">"SIM"</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_prefix" msgid="59756378548779822">"Titula ispred imena"</string>
<string name="name_middle" msgid="8467433655992690326">"Srednje ime"</string>
- <string name="name_suffix" msgid="3855278445375651441">"Sufiks imena"</string>
+ <string name="name_suffix" msgid="3855278445375651441">"Titula iza 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="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
<string name="emailLabelsGroup" msgid="8389931313045344406">"E-pošta"</string>
<string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
<string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
@@ -434,7 +349,7 @@
<string name="label_notes" msgid="8337354953278341042">"Bilješke"</string>
<string name="label_custom_field" msgid="1994056912242214426">"Prilagođeno"</string>
<string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
- <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web stranica"</string>
+ <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web lokacija"</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>
@@ -443,8 +358,6 @@
<string name="email_custom" msgid="5536404237099078802">"Pošalji poruku e-pošte na <xliff:g id="CUSTOM_LABEL">%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>
@@ -463,9 +376,9 @@
<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_name_fields_description" msgid="6883935911480726652">"Proširi polja za imena"</string>
+ <string name="expand_name_fields_description" msgid="6948274252874552543">"Prikaži više polja za ime"</string>
<string name="collapse_name_fields_description" msgid="4757877385895561556">"Skupi polja za imena"</string>
- <string name="expand_phonetic_name_fields_description" msgid="3865726859582581741">"Proširi polja za fonetska imena"</string>
+ <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Prikaži više polja za fonetsko ime"</string>
<string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skupi polja za fonetska imena"</string>
<string name="expand_fields_description" msgid="8129294181216760037">"Proširi"</string>
<string name="collapse_fields_description" msgid="1884143625854637874">"Skupi"</string>
@@ -482,30 +395,35 @@
<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="import_from_sim" msgid="6912071635295799131">"SIM kartice"</string>
+ <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+ <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+ <item quantity="one">%1$d kontakt</item>
+ <item quantity="few">%1$d kontakta</item>
+ <item quantity="other">%1$d kontakata</item>
+ </plurals>
+ <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+ <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakta • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakata • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+ </plurals>
+ <string name="import_from_vcf_file" product="default" msgid="8662528435646418203">".vcf fajla"</string>
+ <string name="nothing_to_import_message" msgid="1651921906873335656">"Nema ništa za uvoz"</string>
+ <string name="import_from_vcf_file_confirmation_message" product="default" msgid="967723361108008345">"Uvesti kontakte iz vCard 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_open_file" msgid="2067725459821997463">"Nije moguće otvoriti \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$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>
@@ -514,31 +432,27 @@
<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_has_no_exportable_contact" msgid="5712531702823346549">"Nema kontakata za izvoz."</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="progress_notifier_message" msgid="2311011466908220528">"Uvozi se <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$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_list_by" msgid="7028809117272018712">"Poredano 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>
@@ -546,31 +460,22 @@
<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="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_export" msgid="1628001095187741417">"Izvezi kontakte"</string>
- <string name="dialog_import" msgid="2431698729761448759">"Uvezi kontakte"</string>
+ <string name="dialog_import" msgid="2423592905927819672">"Uvezi kontakte sa"</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="custom_list_filter" msgid="9048525797111024204">"Prilagodi 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" msgid="6107961135813836467">"Uvezi"</string>
<string name="menu_export" msgid="2658783911863503902">"Izvezi"</string>
<string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
@@ -578,20 +483,13 @@
<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="3043028982108363572">"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>
@@ -605,8 +503,33 @@
<string name="description_delete_contact" msgid="53835657343783663">"Izbriši"</string>
<string name="description_no_name_header" msgid="8884991311595943271">"Elipsa"</string>
<string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
- <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
- <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%s</xliff:g> h <xliff:g id="MINUTES_1">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> sek."</string>
+ <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
<string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ova prečica je onemogućena"</string>
<string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt je uklonjen"</string>
+ <string name="sim_import_button_text" msgid="4270841592496619317">"Uvezi"</string>
+ <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Odaberite kontakte"</string>
+ <string name="sim_import_empty_message" msgid="7743815244380189651">"Nema kontakata na SIM kartici"</string>
+ <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt se već nalazi na listi"</string>
+ <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+ <item quantity="one">Uvezen je <xliff:g id="COUNT">%d</xliff:g> kontakt sa SIM kartice</item>
+ <item quantity="few">Uvezena su <xliff:g id="COUNT">%d</xliff:g> kontakta sa SIM kartice</item>
+ <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM kartice</item>
+ </plurals>
+ <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspio"</string>
+ <string name="sim_import_title" msgid="2511154832820812822">"Uvezi sa SIM kartice"</string>
+ <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Otkaži"</string>
+ <string name="auto_sync_off" msgid="2180147284456026587">"Automatska sinhronizacija je isključena. Dodirnite da je uključite."</string>
+ <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odbaci"</string>
+ <string name="account_sync_off" msgid="7646143254066243924">"Sinhronizacija računa je isključena. Dodirnite da je uključite."</string>
+ <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite li uključiti automatsko sinhroniziranje?"</string>
+ <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Promjene koje načinite u svim aplikacijama i računima, ne samo u Google kontaktima, bit će ažurirani i na internetu i na vašim uređajima."</string>
+ <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Uključi"</string>
+ <string name="connection_error_message" msgid="7046408921529247089">"Niste povezani na mrežu"</string>
+ <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+ <string name="show_more_content_description" msgid="4277410425912984722">"Prikaži više"</string>
+ <string name="importing_sim_finished_title" msgid="5196369441294050721">"Uvoz sa SIM kartice je dovršen"</string>
+ <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspio"</string>
+ <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nije moguće uvesti kontakte sa SIM kartice"</string>
+ <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvoz sa SIM kartice"</string>
</resources>
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
index 41e9df4..5fbab3e 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -20,7 +20,6 @@
import com.android.contacts.logging.Logger;
import com.android.contacts.util.DeviceLocalAccountTypeFactory;
-import com.android.contactsbind.search.AutocompleteHelper;
/**
* Creates default bindings for overlays.
@@ -31,10 +30,6 @@
return null;
}
- public static AutocompleteHelper getAutocompleteHelper(Context context) {
- return null;
- }
-
public static DeviceLocalAccountTypeFactory getDeviceLocalAccountTypeFactory(Context context) {
return new DeviceLocalAccountTypeFactory.Default(context);
}
diff --git a/src-bind/com/android/contactsbind/search/AutocompleteHelper.java b/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
index ff0678c..c37a828 100644
--- a/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
+++ b/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
@@ -25,7 +25,7 @@
void onAutocompletesAvailable(Cursor cursor);
}
- public AutocompleteHelper() {
+ private AutocompleteHelper() {
}
public void setListener(Listener listener) {
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
new file mode 100644
index 0000000..ad4c2ac
--- /dev/null
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -0,0 +1,720 @@
+/*
+ * 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;
+
+import android.accounts.Account;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.ContactsContract.Intents;
+import android.support.annotation.LayoutRes;
+import android.support.design.widget.NavigationView;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.view.MenuItemCompat;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.SubMenu;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.contacts.activities.ActionBarAdapter;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.editor.SelectAccountDialogFragment;
+import com.android.contacts.group.GroupListItem;
+import com.android.contacts.group.GroupMembersFragment;
+import com.android.contacts.group.GroupMetaData;
+import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.group.GroupsFragment;
+import com.android.contacts.group.GroupsFragment.GroupsListener;
+import com.android.contacts.interactions.AccountFiltersFragment;
+import com.android.contacts.interactions.AccountFiltersFragment.AccountFiltersListener;
+import com.android.contacts.list.AccountFilterActivity;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.list.DefaultContactBrowseListFragment;
+import com.android.contacts.list.MultiSelectContactsListFragment;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountDisplayInfo;
+import com.android.contacts.model.account.AccountDisplayInfoFactory;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferenceActivity;
+import com.android.contacts.util.AccountFilterUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.MaterialColorMapUtils;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contacts.util.ViewUtil;
+import com.android.contactsbind.HelpUtils;
+import com.android.contactsbind.ObjectFactory;
+import com.google.common.util.concurrent.Futures;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * A common superclass for Contacts activities with a navigation drawer.
+ */
+public abstract class ContactsDrawerActivity extends AppCompatContactsActivity implements
+ AccountFiltersListener,
+ GroupsListener,
+ NavigationView.OnNavigationItemSelectedListener,
+ SelectAccountDialogFragment.Listener {
+
+ /** Possible views of Contacts app. */
+ public enum ContactsView {
+ NONE,
+ ALL_CONTACTS,
+ ASSISTANT,
+ GROUP_VIEW,
+ ACCOUNT_VIEW,
+ }
+
+ protected static String TAG = "ContactsDrawerActivity";
+
+ private static final String TAG_GROUPS = "groups";
+ private static final String TAG_FILTERS = "filters";
+ private static final String TAG_SELECT_ACCOUNT_DIALOG = "selectAccountDialog";
+ private static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
+
+ private static final String KEY_NEW_GROUP_ACCOUNT = "newGroupAccount";
+ private static final String KEY_CONTACTS_VIEW = "contactsView";
+
+ private static final long DRAWER_CLOSE_DELAY = 300L;
+
+ protected ContactsView mCurrentView;
+
+ private class ContactsActionBarDrawerToggle extends ActionBarDrawerToggle {
+ private boolean mMenuClickedBefore = SharedPreferenceUtil.getHamburgerMenuClickedBefore(
+ ContactsDrawerActivity.this);
+
+ public ContactsActionBarDrawerToggle(AppCompatActivity activity, DrawerLayout drawerLayout,
+ Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) {
+ super(activity, drawerLayout, toolbar, openDrawerContentDescRes,
+ closeDrawerContentDescRes);
+ }
+
+ @Override
+ public void onDrawerOpened(View drawerView) {
+ super.onDrawerOpened(drawerView);
+ if (!mMenuClickedBefore) {
+ SharedPreferenceUtil.setHamburgerMenuClickedBefore(ContactsDrawerActivity.this);
+ mMenuClickedBefore = true;
+ }
+ invalidateOptionsMenu();
+ // Stop search and selection mode like Gmail and Keep. Otherwise, if user switches to
+ // another fragment in navigation drawer, the current search/selection mode will be
+ // overlaid by the action bar of the newly-created fragment.
+ stopSearchAndSelection();
+ updateStatusBarBackground();
+ }
+
+ private void stopSearchAndSelection() {
+ final MultiSelectContactsListFragment listFragment;
+ if (isAllContactsView() || isAccountView()) {
+ listFragment = getAllFragment();
+ } else if (isGroupView()) {
+ listFragment = getGroupFragment();
+ } else {
+ listFragment = null;
+ }
+ if (listFragment == null) {
+ return;
+ }
+ final ActionBarAdapter actionBarAdapter = listFragment.getActionBarAdapter();
+ if (actionBarAdapter == null) {
+ return;
+ }
+ if (actionBarAdapter.isSearchMode()) {
+ actionBarAdapter.setSearchMode(false);
+ } else if (actionBarAdapter.isSelectionMode()) {
+ actionBarAdapter.setSelectionMode(false);
+ }
+ }
+
+ @Override
+ public void onDrawerClosed(View view) {
+ super.onDrawerClosed(view);
+ invalidateOptionsMenu();
+ }
+
+ @Override
+ public void onDrawerStateChanged(int newState) {
+ super.onDrawerStateChanged(newState);
+ // Set transparent status bar when drawer starts to move.
+ if (newState != DrawerLayout.STATE_IDLE) {
+ updateStatusBarBackground();
+ }
+ initializeAssistantNewBadge();
+ }
+ }
+
+ protected ContactListFilterController mContactListFilterController;
+ protected DrawerLayout mDrawer;
+ protected ContactsActionBarDrawerToggle mToggle;
+ protected Toolbar mToolbar;
+ protected NavigationView mNavigationView;
+ protected GroupsFragment mGroupsFragment;
+ protected AccountFiltersFragment mAccountFiltersFragment;
+
+ // The account the new group will be created under.
+ private AccountWithDataSet mNewGroupAccount;
+
+ // Recycle badge if possible
+ private TextView mAssistantNewBadge;
+
+ // Checkable menu item lookup maps. Every map declared here should be added to
+ // clearCheckedMenus() so that they can be cleared.
+ // TODO find a better way to handle selected menu item state, when switching to fragments.
+ protected Map<Long, MenuItem> mGroupMenuMap = new HashMap<>();
+ protected Map<ContactListFilter, MenuItem> mFilterMenuMap = new HashMap<>();
+ protected Map<Integer, MenuItem> mIdMenuMap = new HashMap<>();
+
+ @Override
+ protected void onCreate(Bundle savedState) {
+ super.onCreate(savedState);
+
+ mContactListFilterController = ContactListFilterController.getInstance(this);
+ mContactListFilterController.checkFilterValidity(false);
+
+ super.setContentView(R.layout.contacts_drawer_activity);
+
+ // Set up the action bar.
+ mToolbar = getView(R.id.toolbar);
+ setSupportActionBar(mToolbar);
+
+ // Add shadow under toolbar.
+ ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+
+ // Set up hamburger button.
+ mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ mToggle = new ContactsActionBarDrawerToggle(this, mDrawer, mToolbar,
+ R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+
+ mDrawer.setDrawerListener(mToggle);
+ // Set fallback handler for when drawer is disabled.
+ mToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onBackPressed();
+ }
+ });
+
+ // Set up navigation mode.
+ if (savedState != null) {
+ mCurrentView = ContactsView.values()[savedState.getInt(KEY_CONTACTS_VIEW)];
+ } else {
+ mCurrentView = ContactsView.ALL_CONTACTS;
+ }
+
+ // Set up hamburger menu items.
+ mNavigationView = (NavigationView) findViewById(R.id.nav_view);
+ mNavigationView.setNavigationItemSelectedListener(this);
+ setUpMenu();
+
+ initializeAssistantNewBadge();
+ loadGroupsAndFilters();
+
+ if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
+ mNewGroupAccount = AccountWithDataSet.unstringify(
+ savedState.getString(KEY_NEW_GROUP_ACCOUNT));
+ }
+ }
+
+ private void initializeAssistantNewBadge() {
+ if (mNavigationView == null) {
+ return;
+ }
+ final MenuItem assistantMenu = mNavigationView.getMenu().findItem(R.id.nav_assistant);
+ if (assistantMenu == null) {
+ return;
+ }
+ final LinearLayout newBadgeFrame =
+ (LinearLayout) MenuItemCompat.getActionView(assistantMenu);
+ final boolean showWelcomeBadge = !SharedPreferenceUtil.isWelcomeCardDismissed(this);
+ if (showWelcomeBadge && newBadgeFrame.getChildCount() == 0) {
+ if (mAssistantNewBadge == null) {
+ mAssistantNewBadge = (TextView) LayoutInflater.from(this)
+ .inflate(R.layout.assistant_new_badge, null);
+ }
+ newBadgeFrame.setGravity(Gravity.CENTER_VERTICAL);
+ newBadgeFrame.addView(mAssistantNewBadge);
+ } else if (!showWelcomeBadge && newBadgeFrame.getChildCount() > 0) {
+ newBadgeFrame.removeAllViews();
+ }
+ }
+
+ public void setDrawerLockMode(boolean enabled) {
+ // Prevent drawer from being opened by sliding from the start of screen.
+ mDrawer.setDrawerLockMode(enabled ? DrawerLayout.LOCK_MODE_UNLOCKED
+ : DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+
+ // Order of these statements matter.
+ // Display back button and disable drawer indicator.
+ if (enabled) {
+ getSupportActionBar().setDisplayHomeAsUpEnabled(false);
+ mToggle.setDrawerIndicatorEnabled(true);
+ } else {
+ mToggle.setDrawerIndicatorEnabled(false);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ }
+ }
+
+ private void setUpMenu() {
+ final Menu menu = mNavigationView.getMenu();
+
+ if (ObjectFactory.getAssistantFragment() == null) {
+ menu.removeItem(R.id.nav_assistant);
+ } else {
+ final int id = R.id.nav_assistant;
+ final MenuItem assistantMenu = menu.findItem(id);
+ mIdMenuMap.put(id, assistantMenu);
+ if (isAssistantView()) {
+ updateMenuSelection(assistantMenu);
+ }
+ }
+
+ if (!HelpUtils.isHelpAndFeedbackAvailable()) {
+ menu.removeItem(R.id.nav_help);
+ }
+
+ final MenuItem allContactsMenu = menu.findItem(R.id.nav_all_contacts);
+ mIdMenuMap.put(R.id.nav_all_contacts, allContactsMenu);
+ if (isAllContactsView()) {
+ updateMenuSelection(allContactsMenu);
+ }
+ }
+
+ public Toolbar getToolbar() {
+ return mToolbar;
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ if (mNewGroupAccount != null) {
+ outState.putString(KEY_NEW_GROUP_ACCOUNT, mNewGroupAccount.stringify());
+ }
+ outState.putInt(KEY_CONTACTS_VIEW, mCurrentView.ordinal());
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+ updateStatusBarBackground();
+ }
+ }
+
+ public void updateStatusBarBackground() {
+ updateStatusBarBackground(/* color */ -1);
+ }
+
+ public void updateStatusBarBackground(int color) {
+ if (!CompatUtils.isLollipopCompatible()) return;
+ if (color == -1) {
+ mDrawer.setStatusBarBackgroundColor(MaterialColorMapUtils.getStatusBarColor(this));
+ } else {
+ mDrawer.setStatusBarBackgroundColor(color);
+ }
+ mDrawer.invalidate();
+ getWindow().setStatusBarColor(Color.TRANSPARENT);
+ }
+
+ @Override
+ protected void onPostCreate(Bundle savedInstanceState) {
+ super.onPostCreate(savedInstanceState);
+ mToggle.syncState();
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ mToggle.onConfigurationChanged(newConfig);
+ }
+
+ // Set up fragment manager to load groups and filters.
+ protected void loadGroupsAndFilters() {
+ final FragmentManager fragmentManager = getFragmentManager();
+ final FragmentTransaction transaction = fragmentManager.beginTransaction();
+ addGroupsAndFiltersFragments(transaction);
+ transaction.commitAllowingStateLoss();
+ fragmentManager.executePendingTransactions();
+ }
+
+ @Override
+ public void setContentView(@LayoutRes int layoutResID) {
+ final ViewGroup parent = (ViewGroup) findViewById(R.id.content_frame);
+ if (parent != null) {
+ parent.removeAllViews();
+ }
+ LayoutInflater.from(this).inflate(layoutResID, parent);
+ }
+
+ protected void addGroupsAndFiltersFragments(FragmentTransaction transaction) {
+ final FragmentManager fragmentManager = getFragmentManager();
+ mGroupsFragment = (GroupsFragment) fragmentManager.findFragmentByTag(TAG_GROUPS);
+ if (mGroupsFragment == null) {
+ mGroupsFragment = new GroupsFragment();
+ transaction.add(mGroupsFragment, TAG_GROUPS);
+ }
+ mGroupsFragment.setListener(this);
+
+ mAccountFiltersFragment = (AccountFiltersFragment)
+ fragmentManager.findFragmentByTag(TAG_FILTERS);
+ if (mAccountFiltersFragment == null) {
+ mAccountFiltersFragment = new AccountFiltersFragment();
+ transaction.add(mAccountFiltersFragment, TAG_FILTERS);
+ }
+ mAccountFiltersFragment.setListener(this);
+ }
+
+ @Override
+ public void onGroupsLoaded(List<GroupListItem> groupListItems,
+ boolean areGroupWritableAccountsAvailable) {
+ final Menu menu = mNavigationView.getMenu();
+ final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
+ final SubMenu subMenu = groupsMenuItem.getSubMenu();
+ subMenu.removeGroup(R.id.nav_groups_items);
+ mGroupMenuMap = new HashMap<>();
+
+ final GroupMetaData groupMetaData = getGroupMetaData();
+
+ if (groupListItems != null) {
+ // Add each group
+ for (final GroupListItem groupListItem : groupListItems) {
+ if (GroupUtil.isEmptyFFCGroup(groupListItem)) {
+ continue;
+ }
+ final String title = groupListItem.getTitle();
+ final MenuItem menuItem =
+ subMenu.add(R.id.nav_groups_items, Menu.NONE, Menu.NONE, title);
+ mGroupMenuMap.put(groupListItem.getGroupId(), menuItem);
+ if (isGroupView() && groupMetaData != null
+ && groupMetaData.groupId == groupListItem.getGroupId()) {
+ updateMenuSelection(menuItem);
+ }
+ menuItem.setIcon(R.drawable.quantum_ic_label_vd_theme_24);
+ menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ onGroupMenuItemClicked(groupListItem.getGroupId(),
+ groupListItem.getTitle());
+ updateMenuSelection(menuItem);
+ mDrawer.closeDrawer(GravityCompat.START);
+ return true;
+ }
+ });
+
+ updateMenuContentDescription(menuItem,
+ getString(R.string.group_edit_field_hint_text));
+ }
+ }
+
+ // Don't show "Create new..." menu if there's no group-writable accounts available.
+ if (!areGroupWritableAccountsAvailable) {
+ return;
+ }
+
+ // Create a menu item in the sub menu to add new groups
+ final MenuItem menuItem = subMenu.add(R.id.nav_groups_items, Menu.NONE,
+ Menu.NONE, getString(R.string.menu_new_group_action_bar));
+ menuItem.setIcon(R.drawable.quantum_ic_add_vd_theme_24);
+ menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ onCreateGroupMenuItemClicked();
+ mDrawer.closeDrawer(GravityCompat.START);
+ return true;
+ }
+ });
+
+ if (isGroupView() && groupMetaData != null) {
+ updateGroupMenu(groupMetaData);
+ }
+ }
+
+ public void updateGroupMenu(GroupMetaData groupMetaData) {
+ clearCheckedMenus();
+ if (groupMetaData != null && mGroupMenuMap != null
+ && mGroupMenuMap.get(groupMetaData.groupId) != null) {
+ setMenuChecked(mGroupMenuMap.get(groupMetaData.groupId), true);
+ }
+ }
+
+ protected GroupMetaData getGroupMetaData() {
+ return null;
+ }
+
+ public boolean isGroupView() {
+ return mCurrentView == ContactsView.GROUP_VIEW;
+ }
+
+ protected boolean isAssistantView() {
+ return mCurrentView == ContactsView.ASSISTANT;
+ }
+
+ protected boolean isAllContactsView() {
+ return mCurrentView == ContactsView.ALL_CONTACTS;
+ }
+
+ protected boolean isAccountView() {
+ return mCurrentView == ContactsView.ACCOUNT_VIEW;
+ }
+
+ public boolean isInSecondLevel() {
+ return isGroupView() || isAssistantView();
+ }
+
+ protected abstract void onGroupMenuItemClicked(long groupId, String title);
+
+ protected void onCreateGroupMenuItemClicked() {
+ // Select the account to create the group
+ final Bundle extras = getIntent().getExtras();
+ final Account account = extras == null ? null :
+ (Account) extras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
+ if (account == null) {
+ selectAccountForNewGroup();
+ } else {
+ final String dataSet = extras == null
+ ? null : extras.getString(Intents.Insert.EXTRA_DATA_SET);
+ final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
+ account.name, account.type, dataSet);
+ onAccountChosen(accountWithDataSet, /* extraArgs */ null);
+ }
+ }
+
+ @Override
+ public void onFiltersLoaded(List<ContactListFilter> accountFilterItems) {
+ final AccountDisplayInfoFactory accountDisplayFactory = AccountDisplayInfoFactory.
+ fromListFilters(this, accountFilterItems);
+
+ final Menu menu = mNavigationView.getMenu();
+ final MenuItem filtersMenuItem = menu.findItem(R.id.nav_filters);
+ final SubMenu subMenu = filtersMenuItem.getSubMenu();
+ subMenu.removeGroup(R.id.nav_filters_items);
+ mFilterMenuMap = new HashMap<>();
+
+ if (accountFilterItems == null || accountFilterItems.size() < 2) {
+ return;
+ }
+
+ for (int i = 0; i < accountFilterItems.size(); i++) {
+ final ContactListFilter filter = accountFilterItems.get(i);
+ final AccountDisplayInfo displayableAccount =
+ accountDisplayFactory.getAccountDisplayInfoFor(filter);
+ final CharSequence menuName = displayableAccount.getNameLabel();
+ final MenuItem menuItem = subMenu.add(R.id.nav_filters_items, Menu.NONE,
+ Menu.NONE, menuName);
+ if (isAccountView() && filter == mContactListFilterController.getFilter()) {
+ updateMenuSelection(menuItem);
+ }
+ mFilterMenuMap.put(filter, menuItem);
+ final Intent intent = new Intent();
+ intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+ menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ onFilterMenuItemClicked(intent);
+ updateMenuSelection(menuItem);
+ mDrawer.closeDrawer(GravityCompat.START);
+ return true;
+ }
+ });
+ if (displayableAccount.getIcon() != null) {
+ menuItem.setIcon(displayableAccount.getIcon());
+ // Get rid of the default menu item overlay and show original account icons.
+ menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
+ }
+
+ updateMenuContentDescription(menuItem, displayableAccount.getTypeLabel());
+ }
+
+ if (isAccountView()) {
+ updateFilterMenu(mContactListFilterController.getFilter());
+ }
+ }
+
+ private void updateMenuContentDescription(MenuItem menuItem, CharSequence contentDescription) {
+ // Create a dummy action view to attach extra hidden content description to the menuItem
+ // for Talkback. We want Talkback to read out the account type but not have it be part
+ // of the menuItem title.
+ final LinearLayout view = (LinearLayout) LayoutInflater.from(this)
+ .inflate(R.layout.menu_item_action_view, null);
+ view.setContentDescription(contentDescription);
+ view.setVisibility(View.VISIBLE);
+ menuItem.setActionView(view);
+ }
+
+ public void updateFilterMenu(ContactListFilter filter) {
+ clearCheckedMenus();
+ if (filter != null && filter.isContactsFilterType()) {
+ if (mIdMenuMap != null && mIdMenuMap.get(R.id.nav_all_contacts) != null) {
+ setMenuChecked(mIdMenuMap.get(R.id.nav_all_contacts), true);
+ }
+ } else {
+ if (mFilterMenuMap != null && mFilterMenuMap.get(filter) != null) {
+ setMenuChecked(mFilterMenuMap.get(filter), true);
+ }
+ }
+ }
+
+ protected void onFilterMenuItemClicked(Intent intent) {
+ AccountFilterUtil.handleAccountFilterResult(mContactListFilterController,
+ AppCompatActivity.RESULT_OK, intent);
+ }
+
+ @Override
+ public boolean onNavigationItemSelected(final MenuItem item) {
+ final int id = item.getItemId();
+
+ if (id == R.id.nav_settings) {
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ startActivity(createPreferenceIntent());
+ }
+ }, DRAWER_CLOSE_DELAY);
+ } else if (id == R.id.nav_help) {
+ HelpUtils.launchHelpAndFeedbackForMainScreen(ContactsDrawerActivity.this);
+ } else if (id == R.id.nav_all_contacts) {
+ switchToAllContacts();
+ } else if (id == R.id.nav_assistant) {
+ if (!isAssistantView()) {
+ launchAssistant();
+ updateMenuSelection(item);
+ }
+ } else if (item.getIntent() != null) {
+ ImplicitIntentsUtil.startActivityInApp(ContactsDrawerActivity.this,
+ item.getIntent());
+ } else {
+ Log.w(TAG, "Unhandled navigation view item selection");
+ }
+
+ mDrawer.closeDrawer(GravityCompat.START);
+ return true;
+ }
+
+ private Intent createPreferenceIntent() {
+ final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
+ intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
+ ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
+ return intent;
+ }
+
+ public void switchToAllContacts() {
+ resetFilter();
+
+ final Menu menu = mNavigationView.getMenu();
+ final MenuItem allContacts = menu.findItem(R.id.nav_all_contacts);
+ updateMenuSelection(allContacts);
+
+ setTitle(getString(R.string.contactsList));
+ }
+
+ private void resetFilter() {
+ final Intent intent = new Intent();
+ final ContactListFilter filter = AccountFilterUtil.createContactsFilter(this);
+ intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+ AccountFilterUtil.handleAccountFilterResult(
+ mContactListFilterController, AppCompatActivity.RESULT_OK, intent);
+ }
+
+ protected abstract void launchAssistant();
+
+ protected abstract DefaultContactBrowseListFragment getAllFragment();
+
+ protected abstract GroupMembersFragment getGroupFragment();
+
+ public abstract void showFabWithAnimation(boolean showFab);
+
+ private void clearCheckedMenus() {
+ clearCheckedMenu(mFilterMenuMap);
+ clearCheckedMenu(mGroupMenuMap);
+ clearCheckedMenu(mIdMenuMap);
+ }
+
+ private void clearCheckedMenu(Map<?, MenuItem> map) {
+ final Iterator it = map.entrySet().iterator();
+ while (it.hasNext()) {
+ Entry pair = (Entry) it.next();
+ setMenuChecked(map.get(pair.getKey()), false);
+ }
+ }
+
+ private void setMenuChecked(MenuItem menuItem, boolean checked) {
+ menuItem.setCheckable(checked);
+ menuItem.setChecked(checked);
+ }
+
+ private void selectAccountForNewGroup() {
+ // This should never block because the GroupsFragment loads the accounts and the
+ // "Create Label" item only exists when that loading finishes
+ final List<AccountInfo> accounts = Futures.getUnchecked(AccountTypeManager.getInstance(this)
+ .filterAccountsAsync(AccountTypeManager.AccountFilter.GROUPS_WRITABLE));
+ if (accounts.isEmpty()) {
+ // We shouldn't present the add group button if there are no writable accounts
+ // but check it since it's possible we are started with an Intent.
+ Toast.makeText(this, R.string.groupCreateFailedToast, Toast.LENGTH_SHORT).show();
+ return;
+ }
+ // If there is a single writable account, use it w/o showing a dialog.
+ if (accounts.size() == 1) {
+ onAccountChosen(accounts.get(0).getAccount(), /* extraArgs */ null);
+ return;
+ }
+ SelectAccountDialogFragment.show(getFragmentManager(), R.string.dialog_new_group_account,
+ AccountTypeManager.AccountFilter.GROUPS_WRITABLE, /* extraArgs */ null,
+ TAG_SELECT_ACCOUNT_DIALOG);
+ }
+
+ @Override
+ public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
+ mNewGroupAccount = account;
+ GroupNameEditDialogFragment.newInstanceForCreation(
+ mNewGroupAccount, GroupUtil.ACTION_CREATE_GROUP)
+ .show(getFragmentManager(), TAG_GROUP_NAME_EDIT_DIALOG);
+ }
+
+ @Override
+ public void onAccountSelectorCancelled() {
+ }
+
+ private void updateMenuSelection(MenuItem menuItem) {
+ clearCheckedMenus();
+ setMenuChecked(menuItem, true);
+ }
+}
diff --git a/src/com/android/contacts/Experiments.java b/src/com/android/contacts/Experiments.java
index 9dbe1bf..97b0474 100644
--- a/src/com/android/contacts/Experiments.java
+++ b/src/com/android/contacts/Experiments.java
@@ -48,16 +48,6 @@
public static final String PULL_TO_REFRESH_CANCEL_REFRESH_MILLIS =
"PullToRefresh__cancel_refresh_millis";
- /**
- * Search study boolean indicating whether to inject yenta search results before CP2 results.
- */
- public static final String SEARCH_YENTA = "Search__yenta";
-
- /**
- * The time to wait for Yenta search results before giving up.
- */
- public static final String SEARCH_YENTA_TIMEOUT_MILLIS = "Search__yenta_timeout";
-
private Experiments() {
}
}
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 27bcc7a..cea2ea8 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -44,9 +44,9 @@
import android.widget.SearchView.OnCloseListener;
import android.widget.TextView;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
-import com.android.contacts.activities.PeopleActivity;
import com.android.contacts.compat.CompatUtils;
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.util.MaterialColorMapUtils;
@@ -507,8 +507,8 @@
if (shouldAnimate) {
runStatusBarAnimation(/* colorTo */
MaterialColorMapUtils.getStatusBarColor(mActivity));
- } else if (mActivity instanceof PeopleActivity) {
- ((PeopleActivity) mActivity).updateStatusBarBackground();
+ } else if (mActivity instanceof ContactsDrawerActivity) {
+ ((ContactsDrawerActivity) mActivity).updateStatusBarBackground();
}
}
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index d2157ea..66cad46 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -16,7 +16,6 @@
package com.android.contacts.activities;
-import android.accounts.Account;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
@@ -27,139 +26,78 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SyncStatusObserver;
-import android.content.res.Configuration;
-import android.graphics.Color;
-import android.graphics.PorterDuff;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.ContactsContract;
-import android.provider.ContactsContract.Intents;
import android.provider.ContactsContract.ProviderStatus;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
import android.support.design.widget.CoordinatorLayout;
-import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.view.GravityCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
import android.util.Log;
-import android.view.Gravity;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
-import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.widget.ImageButton;
-import android.widget.LinearLayout;
-import android.widget.TextView;
import android.widget.Toast;
-import com.android.contacts.AppCompatContactsActivity;
import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.R;
import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.editor.ContactEditorFragment;
-import com.android.contacts.editor.SelectAccountDialogFragment;
-import com.android.contacts.group.GroupListItem;
import com.android.contacts.group.GroupMembersFragment;
import com.android.contacts.group.GroupMetaData;
-import com.android.contacts.group.GroupNameEditDialogFragment;
import com.android.contacts.group.GroupUtil;
-import com.android.contacts.group.GroupsFragment;
-import com.android.contacts.group.GroupsFragment.GroupsListener;
-import com.android.contacts.interactions.AccountFiltersFragment;
-import com.android.contacts.interactions.AccountFiltersFragment.AccountFiltersListener;
-import com.android.contacts.interactions.ContactDeletionInteraction;
-import com.android.contacts.list.AccountFilterActivity;
import com.android.contacts.list.ContactListFilter;
-import com.android.contacts.list.ContactListFilterController;
import com.android.contacts.list.ContactListFilterController.ContactListFilterListener;
import com.android.contacts.list.ContactsIntentResolver;
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.list.ContactsUnavailableFragment;
import com.android.contacts.list.DefaultContactBrowseListFragment;
-import com.android.contacts.list.MultiSelectContactsListFragment;
import com.android.contacts.list.ProviderStatusWatcher;
import com.android.contacts.list.ProviderStatusWatcher.ProviderStatusListener;
import com.android.contacts.logging.Logger;
import com.android.contacts.logging.ScreenEvent.ScreenType;
import com.android.contacts.model.AccountTypeManager;
-import com.android.contacts.model.account.AccountDisplayInfo;
-import com.android.contacts.model.account.AccountDisplayInfoFactory;
import com.android.contacts.model.account.AccountInfo;
import com.android.contacts.model.account.AccountWithDataSet;
-import com.android.contacts.preference.ContactsPreferenceActivity;
import com.android.contacts.util.AccountFilterUtil;
import com.android.contacts.util.Constants;
import com.android.contacts.util.ImplicitIntentsUtil;
-import com.android.contacts.util.MaterialColorMapUtils;
-import com.android.contacts.util.SharedPreferenceUtil;
import com.android.contacts.util.SyncUtil;
-import com.android.contacts.util.ViewUtil;
import com.android.contacts.widget.FloatingActionButtonController;
import com.android.contactsbind.FeatureHighlightHelper;
-import com.android.contactsbind.HelpUtils;
import com.android.contactsbind.ObjectFactory;
-import com.google.common.util.concurrent.Futures;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Displays a list to browse contacts.
*/
-public class PeopleActivity extends AppCompatContactsActivity implements
- AccountFiltersListener,
- GroupsListener,
- NavigationView.OnNavigationItemSelectedListener,
- SelectAccountDialogFragment.Listener {
-
- /** Possible views of Contacts app. */
- public enum ContactsView {
- NONE,
- ALL_CONTACTS,
- ASSISTANT,
- GROUP_VIEW,
- ACCOUNT_VIEW,
- }
+public class PeopleActivity extends ContactsDrawerActivity {
private static final String TAG = "PeopleActivity";
private static final String TAG_ALL = "contacts-all";
private static final String TAG_UNAVAILABLE = "contacts-unavailable";
private static final String TAG_GROUP_VIEW = "contacts-groups";
- private static final String TAG_GROUPS = "groups";
- private static final String TAG_FILTERS = "filters";
- private static final String TAG_SELECT_ACCOUNT_DIALOG = "selectAccountDialog";
- private static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
-
public static final String TAG_ASSISTANT = "contacts-assistant";
public static final String TAG_SECOND_LEVEL = "second-level";
public static final String TAG_THIRD_LEVEL = "third-level";
+
public static final String TAG_DUPLICATES = "DuplicatesFragment";
public static final String TAG_DUPLICATES_UTIL = "DuplicatesUtilFragment";
private static final String KEY_GROUP_URI = "groupUri";
- private static final String KEY_CONTACTS_VIEW = "contactsView";
- private static final String KEY_NEW_GROUP_ACCOUNT = "newGroupAccount";
-
- private static final long DRAWER_CLOSE_DELAY = 300L;
private ContactsIntentResolver mIntentResolver;
private ContactsRequest mRequest;
@@ -176,14 +114,12 @@
private boolean mShouldSwitchToGroupView;
- private ContactsView mCurrentView;
-
private CoordinatorLayout mLayoutRoot;
/**
* Showing a list of Contacts. Also used for showing search results in search mode.
*/
- private DefaultContactBrowseListFragment mContactsListFragment;
+ private DefaultContactBrowseListFragment mAllFragment;
private GroupMembersFragment mMembersFragment;
private Uri mGroupUri;
@@ -199,26 +135,6 @@
private final int mInstanceId;
private static final AtomicInteger sNextInstanceId = new AtomicInteger();
- /** Navigation drawer related */
- private ContactListFilterController mContactListFilterController;
- private DrawerLayout mDrawerLayout;
- private ContactsActionBarDrawerToggle mToggle;
- private Toolbar mToolbar;
- private NavigationView mNavigationView;
-
- // The account the new group will be created under.
- private AccountWithDataSet mNewGroupAccount;
-
- // Recycle badge if possible
- private TextView mAssistantNewBadge;
-
- // Checkable menu item lookup maps. Every map declared here should be added to
- // clearCheckedMenus() so that they can be cleared.
- // TODO find a better way to handle selected menu item state, when switching to fragments.
- private Map<Long, MenuItem> mGroupMenuMap = new HashMap<>();
- private Map<ContactListFilter, MenuItem> mFilterMenuMap = new HashMap<>();
- private Map<Integer, MenuItem> mIdMenuMap = new HashMap<>();
-
private Object mStatusChangeListenerHandle;
private final Handler mHandler = new Handler();
@@ -235,14 +151,13 @@
// Update sync status for accounts in current ContactListFilter
private void onSyncStateUpdated() {
- if (isListFragmentInSearchMode() || isListFragmentInSelectionMode()) {
+ if (isAllFragmentInSearchMode() || isAllFragmentInSelectionMode()) {
return;
}
final ContactListFilter filter = mContactListFilterController.getFilter();
if (filter != null) {
- final SwipeRefreshLayout swipeRefreshLayout =
- mContactsListFragment.getSwipeRefreshLayout();
+ final SwipeRefreshLayout swipeRefreshLayout = mAllFragment.getSwipeRefreshLayout();
if (swipeRefreshLayout == null) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Can not load swipeRefreshLayout, swipeRefreshLayout is null");
@@ -289,72 +204,6 @@
}
};
- private class ContactsActionBarDrawerToggle extends ActionBarDrawerToggle {
- private boolean mMenuClickedBefore = SharedPreferenceUtil.getHamburgerMenuClickedBefore(
- PeopleActivity.this);
-
- public ContactsActionBarDrawerToggle(AppCompatActivity activity, DrawerLayout drawerLayout,
- Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) {
- super(activity, drawerLayout, toolbar, openDrawerContentDescRes,
- closeDrawerContentDescRes);
- }
-
- @Override
- public void onDrawerOpened(View drawerView) {
- super.onDrawerOpened(drawerView);
- if (!mMenuClickedBefore) {
- SharedPreferenceUtil.setHamburgerMenuClickedBefore(PeopleActivity.this);
- mMenuClickedBefore = true;
- }
- invalidateOptionsMenu();
- // Stop search and selection mode like Gmail and Keep. Otherwise, if user switches to
- // another fragment in navigation drawer, the current search/selection mode will be
- // overlaid by the action bar of the newly-created fragment.
- stopSearchAndSelection();
- updateStatusBarBackground();
- }
-
- private void stopSearchAndSelection() {
- final MultiSelectContactsListFragment listFragment;
- if (isAllContactsView() || isAccountView()) {
- listFragment = getListFragment();
- } else if (isGroupView()) {
- listFragment = getGroupFragment();
- } else {
- listFragment = null;
- }
- if (listFragment == null) {
- return;
- }
- final ActionBarAdapter actionBarAdapter = listFragment.getActionBarAdapter();
- if (actionBarAdapter == null) {
- return;
- }
- if (actionBarAdapter.isSearchMode()) {
- actionBarAdapter.setSearchMode(false);
- } else if (actionBarAdapter.isSelectionMode()) {
- actionBarAdapter.setSelectionMode(false);
- }
- }
-
- @Override
- public void onDrawerClosed(View view) {
- super.onDrawerClosed(view);
- invalidateOptionsMenu();
- }
-
- @Override
- public void onDrawerStateChanged(int newState) {
- super.onDrawerStateChanged(newState);
- // Set transparent status bar when drawer starts to move.
- if (newState != DrawerLayout.STATE_IDLE) {
- updateStatusBarBackground();
- }
- initializeAssistantNewBadge();
- }
- }
-
-
public PeopleActivity() {
mInstanceId = sNextInstanceId.getAndIncrement();
mIntentResolver = new ContactsIntentResolver(this);
@@ -388,52 +237,6 @@
return;
}
- mContactListFilterController = ContactListFilterController.getInstance(this);
- mContactListFilterController.checkFilterValidity(false);
-
- super.setContentView(R.layout.contacts_drawer_activity);
-
- // Set up the action bar.
- mToolbar = getView(R.id.toolbar);
- setSupportActionBar(mToolbar);
-
- // Add shadow under toolbar.
- ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
-
- // Set up hamburger button.
- mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
- mToggle = new ContactsActionBarDrawerToggle(this, mDrawerLayout, mToolbar,
- R.string.navigation_drawer_open, R.string.navigation_drawer_close);
-
- mDrawerLayout.setDrawerListener(mToggle);
- // Set fallback handler for when drawer is disabled.
- mToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- onBackPressed();
- }
- });
-
- // Set up navigation mode.
- if (savedState != null) {
- mCurrentView = ContactsView.values()[savedState.getInt(KEY_CONTACTS_VIEW)];
- } else {
- mCurrentView = ContactsView.ALL_CONTACTS;
- }
-
- // Set up hamburger menu items.
- mNavigationView = (NavigationView) findViewById(R.id.nav_view);
- mNavigationView.setNavigationItemSelectedListener(this);
- setUpMenu();
-
- initializeAssistantNewBadge();
- loadGroupsAndFilters();
-
- if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
- mNewGroupAccount = AccountWithDataSet.unstringify(
- savedState.getString(KEY_NEW_GROUP_ACCOUNT));
- }
-
mContactListFilterController.addListener(mFilterListener);
mProviderStatusWatcher.addListener(mProviderStatusListener);
@@ -451,33 +254,6 @@
getWindow().setBackgroundDrawable(null);
}
- private void loadGroupsAndFilters() {
- final FragmentManager fragmentManager = getFragmentManager();
- final FragmentTransaction transaction = fragmentManager.beginTransaction();
- addGroupsAndFiltersFragments(transaction);
- transaction.commitAllowingStateLoss();
- fragmentManager.executePendingTransactions();
- }
-
- private void addGroupsAndFiltersFragments(FragmentTransaction transaction) {
- final FragmentManager fragmentManager = getFragmentManager();
- GroupsFragment groupsFragment =
- (GroupsFragment) fragmentManager.findFragmentByTag(TAG_GROUPS);
- if (groupsFragment == null) {
- groupsFragment = new GroupsFragment();
- transaction.add(groupsFragment, TAG_GROUPS);
- }
- groupsFragment.setListener(this);
-
- AccountFiltersFragment accountFiltersFragment =
- (AccountFiltersFragment) fragmentManager.findFragmentByTag(TAG_FILTERS);
- if (accountFiltersFragment == null) {
- accountFiltersFragment = new AccountFiltersFragment();
- transaction.add(accountFiltersFragment, TAG_FILTERS);
- }
- accountFiltersFragment.setListener(this);
- }
-
@Override
protected void onNewIntent(Intent intent) {
final String action = intent.getAction();
@@ -525,9 +301,8 @@
// Re-initialize ActionBarAdapter because {@link #onNewIntent(Intent)} doesn't invoke
// {@link Fragment#onActivityCreated(Bundle)} where we initialize ActionBarAdapter
// initially.
- mContactsListFragment.setParameters(/* ContactsRequest */ mRequest,
- /* fromOnNewIntent */ true);
- mContactsListFragment.initializeActionBarAdapter(null);
+ mAllFragment.setParameters(/* ContactsRequest */ mRequest, /* fromOnNewIntent */ true);
+ mAllFragment.initializeActionBarAdapter(null);
}
initializeFabVisibility();
@@ -591,7 +366,7 @@
final FragmentManager fragmentManager = getFragmentManager();
- setUpListFragment(fragmentManager);
+ setUpAllFragment(fragmentManager);
mMembersFragment = (GroupMembersFragment) fragmentManager.findFragmentByTag(TAG_GROUP_VIEW);
@@ -620,32 +395,22 @@
}
}
- @Override
- public void setContentView(@LayoutRes int layoutResID) {
- final ViewGroup parent = (ViewGroup) findViewById(R.id.content_frame);
- if (parent != null) {
- parent.removeAllViews();
- }
- LayoutInflater.from(this).inflate(layoutResID, parent);
- }
-
- private void setUpListFragment(FragmentManager fragmentManager) {
- mContactsListFragment = (DefaultContactBrowseListFragment)
+ private void setUpAllFragment(FragmentManager fragmentManager) {
+ mAllFragment = (DefaultContactBrowseListFragment)
fragmentManager.findFragmentByTag(TAG_ALL);
- if (mContactsListFragment == null) {
- mContactsListFragment = new DefaultContactBrowseListFragment();
- mContactsListFragment.setAnimateOnLoad(true);
+ if (mAllFragment == null) {
+ mAllFragment = new DefaultContactBrowseListFragment();
+ mAllFragment.setAnimateOnLoad(true);
fragmentManager.beginTransaction()
- .add(R.id.contacts_list_container, mContactsListFragment, TAG_ALL)
+ .add(R.id.contacts_list_container, mAllFragment, TAG_ALL)
.commit();
fragmentManager.executePendingTransactions();
}
- mContactsListFragment.setContactsAvailable(areContactsAvailable());
- mContactsListFragment.setListType(mContactListFilterController.getFilterListType());
- mContactsListFragment.setParameters(/* ContactsRequest */ mRequest,
- /* fromOnNewIntent */ false);
+ mAllFragment.setContactsAvailable(areContactsAvailable());
+ mAllFragment.setListType(mContactListFilterController.getFilterListType());
+ mAllFragment.setParameters(/* ContactsRequest */ mRequest, /* fromOnNewIntent */ false);
}
@Override
@@ -669,10 +434,6 @@
protected void onResume() {
super.onResume();
- if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
- updateStatusBarBackground();
- }
-
if (mShouldSwitchToAllContacts) {
switchToAllContacts();
}
@@ -695,22 +456,6 @@
new IntentFilter(ContactSaveService.BROADCAST_GROUP_DELETED));
}
- public void updateStatusBarBackground() {
- updateStatusBarBackground(/* color */ -1);
- }
-
- public void updateStatusBarBackground(int color) {
- if (!CompatUtils.isLollipopCompatible()) return;
- if (color == -1) {
- mDrawerLayout.setStatusBarBackgroundColor(
- MaterialColorMapUtils.getStatusBarColor(this));
- } else {
- mDrawerLayout.setStatusBarBackgroundColor(color);
- }
- mDrawerLayout.invalidate();
- getWindow().setStatusBarColor(Color.TRANSPARENT);
- }
-
@Override
protected void onDestroy() {
mProviderStatusWatcher.removeListener(mProviderStatusListener);
@@ -726,20 +471,19 @@
private void initializeHomeVisibility() {
// Remove the navigation icon if we return to the fragment in a search or select state
- if (getToolbar() != null && (isListFragmentInSelectionMode()
- || isListFragmentInSearchMode() || isGroupsFragmentInSelectionMode()
+ if (getToolbar() != null && (isAllFragmentInSelectionMode()
+ || isAllFragmentInSearchMode() || isGroupsFragmentInSelectionMode()
|| isGroupsFragmentInSearchMode())) {
getToolbar().setNavigationIcon(null);
}
}
private boolean shouldHideFab() {
- if (mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() == null
+ if (mAllFragment != null && mAllFragment.getActionBarAdapter() == null
|| isInSecondLevel()) {
return true;
}
- return isListFragmentInSearchMode()
- || isListFragmentInSelectionMode();
+ return isAllFragmentInSearchMode() || isAllFragmentInSelectionMode();
}
public void showFabWithAnimation(boolean showFab) {
@@ -789,26 +533,26 @@
// So we need to handle the case where provider status is STATUS_EMPTY and there is
// actually at least one real account (not "local" account) on device.
if (shouldShowList()) {
- if (mContactsListFragment != null) {
+ if (mAllFragment != null) {
final Fragment unavailableFragment = fragmentManager
.findFragmentByTag(TAG_UNAVAILABLE);
if (unavailableFragment != null) {
transaction.remove(unavailableFragment);
}
- if (mContactsListFragment.isHidden()) {
- transaction.show(mContactsListFragment);
+ if (mAllFragment.isHidden()) {
+ transaction.show(mAllFragment);
}
- mContactsListFragment.setContactsAvailable(areContactsAvailable());
- mContactsListFragment.setEnabled(true);
+ mAllFragment.setContactsAvailable(areContactsAvailable());
+ mAllFragment.setEnabled(true);
}
} else {
// Setting up the page so that the user can still use the app
// even without an account.
- if (mContactsListFragment != null) {
- mContactsListFragment.setEnabled(false);
+ if (mAllFragment != null) {
+ mAllFragment.setEnabled(false);
}
final ContactsUnavailableFragment fragment = new ContactsUnavailableFragment();
- transaction.hide(mContactsListFragment);
+ transaction.hide(mAllFragment);
transaction.replace(R.id.contacts_unavailable_container, fragment, TAG_UNAVAILABLE);
fragment.updateStatus(mProviderStatus);
}
@@ -828,9 +572,8 @@
}
private void invalidateOptionsMenuIfNeeded() {
- if (mContactsListFragment != null
- && mContactsListFragment.getOptionsMenuContactsAvailable()
- != areContactsAvailable()) {
+ if (mAllFragment != null
+ && mAllFragment.getOptionsMenuContactsAvailable() != areContactsAvailable()) {
invalidateOptionsMenu();
}
}
@@ -843,7 +586,7 @@
// If COMBINING_ACCENT is set, it's not a unicode character.
&& ((unicodeChar & KeyCharacterMap.COMBINING_ACCENT) == 0)
&& !Character.isWhitespace(unicodeChar)) {
- if (mContactsListFragment.onKeyDown(unicodeChar)) {
+ if (mAllFragment.onKeyDown(unicodeChar)) {
return true;
}
}
@@ -858,8 +601,8 @@
}
// Handle the back event in drawer first.
- if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
- mDrawerLayout.closeDrawer(GravityCompat.START);
+ if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+ mDrawer.closeDrawer(GravityCompat.START);
return;
}
@@ -874,14 +617,13 @@
return;
}
- // If feature highlight is present, let it handle the back event before
- // mContactsListFragment.
+ // If feature highlight is present, let it handle the back event before mAllFragment.
if (FeatureHighlightHelper.tryRemoveHighlight(this)) {
return;
}
- // Handle the back event in "first level" - mContactsListFragment.
- if (maybeHandleInListFragment()) {
+ // Handle the back event in "first level" - mAllFragment.
+ if (maybeHandleInAllFragment()) {
return;
}
@@ -910,26 +652,26 @@
}
// Returns true if back event is handled in this method.
- private boolean maybeHandleInListFragment() {
- if (isListFragmentInSelectionMode()) {
- mContactsListFragment.getActionBarAdapter().setSelectionMode(false);
+ private boolean maybeHandleInAllFragment() {
+ if (isAllFragmentInSelectionMode()) {
+ mAllFragment.getActionBarAdapter().setSelectionMode(false);
return true;
}
- if (isListFragmentInSearchMode()) {
- mContactsListFragment.getActionBarAdapter().setSearchMode(false);
- if (mContactsListFragment.wasSearchResultClicked()) {
- mContactsListFragment.resetSearchResultClicked();
+ if (isAllFragmentInSearchMode()) {
+ mAllFragment.getActionBarAdapter().setSearchMode(false);
+ if (mAllFragment.wasSearchResultClicked()) {
+ mAllFragment.resetSearchResultClicked();
} else {
Logger.logScreenView(this, ScreenType.SEARCH_EXIT);
- Logger.logSearchEvent(mContactsListFragment.createSearchState());
+ Logger.logSearchEvent(mAllFragment.createSearchState());
}
return true;
}
if (!AccountFilterUtil.isAllContactsFilter(mContactListFilterController.getFilter())
- && !mContactsListFragment.isHidden()) {
- // If mContactsListFragment is hidden, then mContactsUnavailableFragment is visible so we
+ && !mAllFragment.isHidden()) {
+ // If mAllFragment is hidden, then mContactsUnavailableFragment is visible so we
// don't need to switch to all contacts.
switchToAllContacts();
return true;
@@ -938,14 +680,14 @@
return false;
}
- private boolean isListFragmentInSelectionMode() {
- return mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() != null
- && mContactsListFragment.getActionBarAdapter().isSelectionMode();
+ private boolean isAllFragmentInSelectionMode() {
+ return mAllFragment != null && mAllFragment.getActionBarAdapter() != null
+ && mAllFragment.getActionBarAdapter().isSelectionMode();
}
- private boolean isListFragmentInSearchMode() {
- return mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() != null
- && mContactsListFragment.getActionBarAdapter().isSearchMode();
+ private boolean isAllFragmentInSearchMode() {
+ return mAllFragment != null && mAllFragment.getActionBarAdapter() != null
+ && mAllFragment.getActionBarAdapter().isSearchMode();
}
private boolean isGroupsFragmentInSelectionMode() {
@@ -961,10 +703,6 @@
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- if (mNewGroupAccount != null) {
- outState.putString(KEY_NEW_GROUP_ACCOUNT, mNewGroupAccount.stringify());
- }
- outState.putInt(KEY_CONTACTS_VIEW, mCurrentView.ordinal());
outState.putParcelable(KEY_GROUP_URI, mGroupUri);
}
@@ -1011,7 +749,8 @@
}
}
- private void onGroupMenuItemClicked(long groupId, String title) {
+ @Override
+ protected void onGroupMenuItemClicked(long groupId, String title) {
if (isGroupView() && mMembersFragment != null
&& mMembersFragment.isCurrentGroup(groupId)) {
return;
@@ -1020,8 +759,9 @@
switchToOrUpdateGroupView(GroupUtil.ACTION_SWITCH_GROUP);
}
- private void onFilterMenuItemClicked(Intent intent) {
- // We must pop second level first to "restart" mContactsListFragment before changing filter.
+ @Override
+ protected void onFilterMenuItemClicked(Intent intent) {
+ // We must pop second level first to "restart" mAllFragment, before changing filter.
if (isInSecondLevel()) {
popSecondLevel();
showFabWithAnimation(/* showFab */ true);
@@ -1033,8 +773,7 @@
mContactListFilterController.setContactListFilter(current, false);
}
mCurrentView = ContactsView.ACCOUNT_VIEW;
- AccountFilterUtil.handleAccountFilterResult(mContactListFilterController,
- AppCompatActivity.RESULT_OK, intent);
+ super.onFilterMenuItemClicked(intent);
}
private void switchToOrUpdateGroupView(String action) {
@@ -1046,6 +785,7 @@
}
}
+ @Override
protected void launchAssistant() {
switchView(ContactsView.ASSISTANT);
}
@@ -1078,6 +818,7 @@
showFabWithAnimation(/* showFab */ false);
}
+ @Override
public void switchToAllContacts() {
if (isInSecondLevel()) {
popSecondLevel();
@@ -1085,23 +826,9 @@
mShouldSwitchToAllContacts = false;
mCurrentView = ContactsView.ALL_CONTACTS;
showFabWithAnimation(/* showFab */ true);
- mContactsListFragment.scrollToTop();
+ mAllFragment.scrollToTop();
- resetFilter();
-
- final Menu menu = mNavigationView.getMenu();
- final MenuItem allContacts = menu.findItem(R.id.nav_all_contacts);
- updateMenuSelection(allContacts);
-
- setTitle(getString(R.string.contactsList));
- }
-
- private void resetFilter() {
- final Intent intent = new Intent();
- final ContactListFilter filter = AccountFilterUtil.createContactsFilter(this);
- intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
- AccountFilterUtil.handleAccountFilterResult(
- mContactListFilterController, AppCompatActivity.RESULT_OK, intent);
+ super.switchToAllContacts();
}
private boolean popThirdLevel() {
@@ -1123,23 +850,26 @@
updateStatusBarBackground(ContextCompat.getColor(this, R.color.primary_color_dark));
}
- protected DefaultContactBrowseListFragment getListFragment() {
- return mContactsListFragment;
+ @Override
+ protected DefaultContactBrowseListFragment getAllFragment() {
+ return mAllFragment;
}
+ @Override
protected GroupMembersFragment getGroupFragment() {
return mMembersFragment;
}
+ @Override
protected GroupMetaData getGroupMetaData() {
return mMembersFragment == null ? null : mMembersFragment.getGroupMetaData();
}
private void handleFilterChangeForFragment(ContactListFilter filter) {
- if (mContactsListFragment.canSetActionBar()) {
- mContactsListFragment.setFilterAndUpdateTitle(filter);
+ if (mAllFragment.canSetActionBar()) {
+ mAllFragment.setFilterAndUpdateTitle(filter);
// Scroll to top after filter is changed.
- mContactsListFragment.scrollToTop();
+ mAllFragment.scrollToTop();
}
}
@@ -1161,374 +891,4 @@
}
invalidateOptionsMenu();
}
-
- private void initializeAssistantNewBadge() {
- if (mNavigationView == null) {
- return;
- }
- final MenuItem assistantMenu = mNavigationView.getMenu().findItem(R.id.nav_assistant);
- if (assistantMenu == null) {
- return;
- }
- final LinearLayout newBadgeFrame =
- (LinearLayout) MenuItemCompat.getActionView(assistantMenu);
- final boolean showWelcomeBadge = !SharedPreferenceUtil.isWelcomeCardDismissed(this);
- if (showWelcomeBadge && newBadgeFrame.getChildCount() == 0) {
- if (mAssistantNewBadge == null) {
- mAssistantNewBadge = (TextView) LayoutInflater.from(this)
- .inflate(R.layout.assistant_new_badge, null);
- }
- newBadgeFrame.setGravity(Gravity.CENTER_VERTICAL);
- newBadgeFrame.addView(mAssistantNewBadge);
- } else if (!showWelcomeBadge && newBadgeFrame.getChildCount() > 0) {
- newBadgeFrame.removeAllViews();
- }
- }
-
- public void setDrawerLockMode(boolean enabled) {
- // Prevent drawer from being opened by sliding from the start of screen.
- mDrawerLayout.setDrawerLockMode(enabled ? DrawerLayout.LOCK_MODE_UNLOCKED
- : DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
-
- // Order of these statements matter.
- // Display back button and disable drawer indicator.
- if (enabled) {
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
- mToggle.setDrawerIndicatorEnabled(true);
- } else {
- mToggle.setDrawerIndicatorEnabled(false);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- }
- }
-
- private void setUpMenu() {
- final Menu menu = mNavigationView.getMenu();
-
- if (ObjectFactory.getAssistantFragment() == null) {
- menu.removeItem(R.id.nav_assistant);
- } else {
- final int id = R.id.nav_assistant;
- final MenuItem assistantMenu = menu.findItem(id);
- mIdMenuMap.put(id, assistantMenu);
- if (isAssistantView()) {
- updateMenuSelection(assistantMenu);
- }
- }
-
- if (!HelpUtils.isHelpAndFeedbackAvailable()) {
- menu.removeItem(R.id.nav_help);
- }
-
- final MenuItem allContactsMenu = menu.findItem(R.id.nav_all_contacts);
- mIdMenuMap.put(R.id.nav_all_contacts, allContactsMenu);
- if (isAllContactsView()) {
- updateMenuSelection(allContactsMenu);
- }
- }
-
- public Toolbar getToolbar() {
- return mToolbar;
- }
-
- @Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
- mToggle.syncState();
- }
-
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- mToggle.onConfigurationChanged(newConfig);
- }
-
- @Override
- public void onGroupsLoaded(List<GroupListItem> groupListItems,
- boolean areGroupWritableAccountsAvailable) {
- final Menu menu = mNavigationView.getMenu();
- final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
- final SubMenu subMenu = groupsMenuItem.getSubMenu();
- subMenu.removeGroup(R.id.nav_groups_items);
- mGroupMenuMap = new HashMap<>();
-
- final GroupMetaData groupMetaData = getGroupMetaData();
-
- if (groupListItems != null) {
- // Add each group
- for (final GroupListItem groupListItem : groupListItems) {
- if (GroupUtil.isEmptyFFCGroup(groupListItem)) {
- continue;
- }
- final String title = groupListItem.getTitle();
- final MenuItem menuItem =
- subMenu.add(R.id.nav_groups_items, Menu.NONE, Menu.NONE, title);
- mGroupMenuMap.put(groupListItem.getGroupId(), menuItem);
- if (isGroupView() && groupMetaData != null
- && groupMetaData.groupId == groupListItem.getGroupId()) {
- updateMenuSelection(menuItem);
- }
- menuItem.setIcon(R.drawable.quantum_ic_label_vd_theme_24);
- menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- onGroupMenuItemClicked(groupListItem.getGroupId(),
- groupListItem.getTitle());
- updateMenuSelection(menuItem);
- mDrawerLayout.closeDrawer(GravityCompat.START);
- return true;
- }
- });
-
- updateMenuContentDescription(menuItem,
- getString(R.string.group_edit_field_hint_text));
- }
- }
-
- // Don't show "Create label" menu if there's no group-writable accounts available.
- if (!areGroupWritableAccountsAvailable) {
- return;
- }
-
- // Create a menu item in the sub menu to add new groups
- final MenuItem menuItem = subMenu.add(R.id.nav_groups_items, Menu.NONE,
- Menu.NONE, getString(R.string.menu_new_group_action_bar));
- menuItem.setIcon(R.drawable.quantum_ic_add_vd_theme_24);
- menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- onCreateGroupMenuItemClicked();
- mDrawerLayout.closeDrawer(GravityCompat.START);
- return true;
- }
- });
-
- if (isGroupView() && groupMetaData != null) {
- updateGroupMenu(groupMetaData);
- }
- }
-
- public void updateGroupMenu(GroupMetaData groupMetaData) {
- clearCheckedMenus();
- if (groupMetaData != null && mGroupMenuMap != null
- && mGroupMenuMap.get(groupMetaData.groupId) != null) {
- setMenuChecked(mGroupMenuMap.get(groupMetaData.groupId), true);
- }
- }
-
- private void updateMenuContentDescription(MenuItem menuItem, CharSequence contentDescription) {
- // Create a dummy action view to attach extra hidden content description to the menuItem
- // for Talkback. We want Talkback to read out the account type but not have it be part
- // of the menuItem title.
- final LinearLayout view = (LinearLayout) LayoutInflater.from(this)
- .inflate(R.layout.menu_item_action_view, null);
- view.setContentDescription(contentDescription);
- view.setVisibility(View.VISIBLE);
- menuItem.setActionView(view);
- }
-
- protected void onCreateGroupMenuItemClicked() {
- // Select the account to create the group
- final Bundle extras = getIntent().getExtras();
- final Account account = extras == null ? null :
- (Account) extras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
- if (account == null) {
- selectAccountForNewGroup();
- } else {
- final String dataSet = extras == null
- ? null : extras.getString(Intents.Insert.EXTRA_DATA_SET);
- final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
- account.name, account.type, dataSet);
- onAccountChosen(accountWithDataSet, /* extraArgs */ null);
- }
- }
-
- private void selectAccountForNewGroup() {
- // This should never block because the GroupsFragment loads the accounts and the
- // "Create Label" item only exists when that loading finishes
- final List<AccountInfo> accounts = Futures.getUnchecked(AccountTypeManager.getInstance(this)
- .filterAccountsAsync(AccountTypeManager.AccountFilter.GROUPS_WRITABLE));
- if (accounts.isEmpty()) {
- // We shouldn't present the add group button if there are no writable accounts
- // but check it since it's possible we are started with an Intent.
- Toast.makeText(this, R.string.groupCreateFailedToast, Toast.LENGTH_SHORT).show();
- return;
- }
- // If there is a single writable account, use it w/o showing a dialog.
- if (accounts.size() == 1) {
- onAccountChosen(accounts.get(0).getAccount(), /* extraArgs */ null);
- return;
- }
- SelectAccountDialogFragment.show(getFragmentManager(), R.string.dialog_new_group_account,
- AccountTypeManager.AccountFilter.GROUPS_WRITABLE, /* extraArgs */ null,
- TAG_SELECT_ACCOUNT_DIALOG);
- }
-
- @Override
- public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
- mNewGroupAccount = account;
- GroupNameEditDialogFragment.newInstanceForCreation(
- mNewGroupAccount, GroupUtil.ACTION_CREATE_GROUP)
- .show(getFragmentManager(), TAG_GROUP_NAME_EDIT_DIALOG);
- }
-
- @Override
- public void onAccountSelectorCancelled() {
- }
-
- @Override
- public void onFiltersLoaded(List<ContactListFilter> accountFilterItems) {
- final AccountDisplayInfoFactory accountDisplayFactory = AccountDisplayInfoFactory.
- fromListFilters(this, accountFilterItems);
-
- final Menu menu = mNavigationView.getMenu();
- final MenuItem filtersMenuItem = menu.findItem(R.id.nav_filters);
- final SubMenu subMenu = filtersMenuItem.getSubMenu();
- subMenu.removeGroup(R.id.nav_filters_items);
- mFilterMenuMap = new HashMap<>();
-
- if (accountFilterItems == null || accountFilterItems.size() < 2) {
- return;
- }
-
- for (int i = 0; i < accountFilterItems.size(); i++) {
- final ContactListFilter filter = accountFilterItems.get(i);
- final AccountDisplayInfo displayableAccount =
- accountDisplayFactory.getAccountDisplayInfoFor(filter);
- final CharSequence menuName = displayableAccount.getNameLabel();
- final MenuItem menuItem = subMenu.add(R.id.nav_filters_items, Menu.NONE,
- Menu.NONE, menuName);
- if (isAccountView() && filter == mContactListFilterController.getFilter()) {
- updateMenuSelection(menuItem);
- }
- mFilterMenuMap.put(filter, menuItem);
- final Intent intent = new Intent();
- intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
- menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- onFilterMenuItemClicked(intent);
- updateMenuSelection(menuItem);
- mDrawerLayout.closeDrawer(GravityCompat.START);
- return true;
- }
- });
- if (displayableAccount.getIcon() != null) {
- menuItem.setIcon(displayableAccount.getIcon());
- // Get rid of the default menu item overlay and show original account icons.
- menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
- }
-
- updateMenuContentDescription(menuItem, displayableAccount.getTypeLabel());
- }
-
- if (isAccountView()) {
- updateFilterMenu(mContactListFilterController.getFilter());
- }
- }
-
- public void updateFilterMenu(ContactListFilter filter) {
- clearCheckedMenus();
- if (filter != null && filter.isContactsFilterType()) {
- if (mIdMenuMap != null && mIdMenuMap.get(R.id.nav_all_contacts) != null) {
- setMenuChecked(mIdMenuMap.get(R.id.nav_all_contacts), true);
- }
- } else {
- if (mFilterMenuMap != null && mFilterMenuMap.get(filter) != null) {
- setMenuChecked(mFilterMenuMap.get(filter), true);
- }
- }
- }
-
- private void clearCheckedMenus() {
- clearCheckedMenu(mFilterMenuMap);
- clearCheckedMenu(mGroupMenuMap);
- clearCheckedMenu(mIdMenuMap);
- }
-
- private void clearCheckedMenu(Map<?, MenuItem> map) {
- final Iterator it = map.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry pair = (Map.Entry) it.next();
- setMenuChecked(map.get(pair.getKey()), false);
- }
- }
-
- private void setMenuChecked(MenuItem menuItem, boolean checked) {
- if (menuItem == null) {
- return;
- }
- menuItem.setCheckable(checked);
- menuItem.setChecked(checked);
- }
-
- public boolean isGroupView() {
- return mCurrentView == ContactsView.GROUP_VIEW;
- }
-
- protected boolean isAssistantView() {
- return mCurrentView == ContactsView.ASSISTANT;
- }
-
- protected boolean isAllContactsView() {
- return mCurrentView == ContactsView.ALL_CONTACTS;
- }
-
- protected boolean isAccountView() {
- return mCurrentView == ContactsView.ACCOUNT_VIEW;
- }
-
- public boolean isInSecondLevel() {
- return isGroupView() || isAssistantView();
- }
-
- @Override
- public boolean onNavigationItemSelected(@NonNull final MenuItem item) {
- final int id = item.getItemId();
-
- if (id == R.id.nav_settings) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- startActivity(createPreferenceIntent());
- }
- }, DRAWER_CLOSE_DELAY);
- } else if (id == R.id.nav_help) {
- HelpUtils.launchHelpAndFeedbackForMainScreen(this);
- } else if (id == R.id.nav_all_contacts) {
- switchToAllContacts();
- } else if (id == R.id.nav_assistant) {
- if (!isAssistantView()) {
- launchAssistant();
- updateMenuSelection(item);
- }
- } else if (item.getIntent() != null) {
- ImplicitIntentsUtil.startActivityInApp(this, item.getIntent());
- } else {
- Log.w(TAG, "Unhandled navigation view item selection");
- }
-
- mDrawerLayout.closeDrawer(GravityCompat.START);
- return true;
- }
-
- private void updateMenuSelection(MenuItem menuItem) {
- clearCheckedMenus();
- setMenuChecked(menuItem, true);
- }
-
- private Intent createPreferenceIntent() {
- final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
- intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
- ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
- return intent;
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == DefaultContactBrowseListFragment.ACTIVITY_REQUEST_QUICK_CONTACT &&
- resultCode == ContactDeletionInteraction.RESULT_CODE_DELETED &&
- mContactsListFragment != null) {
- mContactsListFragment.maybeRestartDefaultDirectoryPartitionLoader();
- }
- }
}
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index 31938d7..004e0f4 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -49,11 +49,11 @@
import android.widget.Toast;
import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.ContactsUtils;
import com.android.contacts.GroupMetaDataLoader;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter;
-import com.android.contacts.activities.PeopleActivity;
import com.android.contacts.group.GroupMembersAdapter.GroupMembersQuery;
import com.android.contacts.interactions.GroupDeletionDialogFragment;
import com.android.contacts.list.ContactsRequest;
@@ -220,7 +220,7 @@
private ActionBarAdapter mActionBarAdapter;
- private PeopleActivity mActivity;
+ private ContactsDrawerActivity mActivity;
private Uri mGroupUri;
@@ -614,7 +614,7 @@
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- mActivity = (PeopleActivity) getActivity();
+ mActivity = (ContactsDrawerActivity) getActivity();
mActionBarAdapter = new ActionBarAdapter(mActivity, mActionBarListener,
mActivity.getSupportActionBar(), mActivity.getToolbar(),
R.string.enter_contact_name);
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index e63fca4..161571c 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -81,10 +81,6 @@
private static final int COLUMN_INDEX_DISPLAY_NAME = 5;
private static final int COLUMN_INDEX_DISPLAY_NAME_ALT = 6;
- public interface Listener {
- void onDeletionFinished();
- }
-
private boolean mActive;
private Uri mContactUri;
private String mDisplayName;
@@ -92,7 +88,6 @@
private boolean mFinishActivityWhenDone;
private Context mContext;
private AlertDialog mDialog;
- private Listener mListener;
/** This is a wrapper around the fragment's loader manager to be used only during testing. */
private TestLoaderManagerBase mTestLoaderManager;
@@ -351,9 +346,6 @@
protected void doDeleteContact(Uri contactUri) {
mContext.startService(ContactSaveService.createDeleteContactIntent(mContext, contactUri));
- if (mListener != null) {
- mListener.onDeletionFinished();
- }
if (isAdded() && mFinishActivityWhenDone) {
getActivity().setResult(RESULT_CODE_DELETED);
getActivity().finish();
@@ -370,8 +362,4 @@
Toast.makeText(mContext, deleteToastMessage, Toast.LENGTH_LONG).show();
}
}
-
- public void setListener(Listener listener) {
- mListener = listener;
- }
}
diff --git a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
index 3e1dd5d..695e9f6 100644
--- a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
@@ -313,9 +313,7 @@
protected void doDeleteContact(long[] contactIds, final String[] names) {
mContext.startService(ContactSaveService.createDeleteMultipleContactsIntent(mContext,
contactIds, names));
- if (mListener != null) {
- mListener.onDeletionFinished();
- }
+ mListener.onDeletionFinished();
}
public void setListener(MultiContactDeleteListener listener) {
diff --git a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
index 01361b2..5c5609d 100644
--- a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
@@ -23,8 +23,8 @@
import android.os.Bundle;
import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.R;
-import com.android.contacts.activities.PeopleActivity;
/**
* A dialog for deleting a group.
@@ -65,7 +65,7 @@
protected void deleteGroup() {
final long groupId = getArguments().getLong(ARG_GROUP_ID);
- final PeopleActivity activity = ((PeopleActivity) getActivity());
+ final ContactsDrawerActivity activity = ((ContactsDrawerActivity) getActivity());
activity.startService(ContactSaveService.createGroupDeletionIntent(
getActivity(), groupId));
activity.switchToAllContacts();
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index d8620a8..6115b50 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -348,22 +348,6 @@
mLoadPriorityDirectoriesOnly = false;
}
- /** Restarts the {@link DirectoryPartition} with {@link Directory#DEFAULT} directory ID. */
- protected void restartDefaultDirectoryPartitionLoader() {
- if (mAdapter == null) return;
- int partitionCount = mAdapter.getPartitionCount();
- for (int i = 0; i < partitionCount; i++) {
- final Partition partition = mAdapter.getPartition(i);
- if (partition instanceof DirectoryPartition) {
- final DirectoryPartition directoryPartition = (DirectoryPartition) partition;
- long directoryId = directoryPartition.getDirectoryId();
- if (directoryId == Directory.DEFAULT) {
- loadDirectoryPartitionDelayed(i, directoryPartition);
- }
- }
- }
- }
-
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (id == DIRECTORY_LOADER_ID) {
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index a174b91..e16b2ca 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -57,6 +57,7 @@
import android.widget.Toast;
import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.Experiments;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter;
@@ -97,7 +98,6 @@
private static final String KEY_SEARCH_RESULT_CLICKED = "search_result_clicked";
private static final int ACTIVITY_REQUEST_CODE_SHARE = 0;
- public static final int ACTIVITY_REQUEST_QUICK_CONTACT = 1000;
private View mSearchHeaderView;
private View mSearchProgress;
@@ -154,7 +154,7 @@
private boolean mSearchResultClicked;
private ActionBarAdapter mActionBarAdapter;
- private PeopleActivity mActivity;
+ private ContactsDrawerActivity mActivity;
private ContactsRequest mContactsRequest;
private ContactListFilterController mContactListFilterController;
@@ -661,7 +661,7 @@
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- mActivity = (PeopleActivity) getActivity();
+ mActivity = (ContactsDrawerActivity) getActivity();
mActionBarAdapter = new ActionBarAdapter(mActivity, mActionBarListener,
mActivity.getSupportActionBar(), mActivity.getToolbar(),
R.string.enter_contact_name);
@@ -943,24 +943,14 @@
/* count */ getAdapter().getCount(),
/* clickedIndex */ position, /* numSelected */ 0);
- // Start QuickContact "for result" in case we're using yenta search and need
- // to manually reload the default directory partition when contacts are deleted.
- // The QuickContact Activity result is handled in PeopleActivity.
- ImplicitIntentsUtil.startQuickContactForResult(getActivity(), contactLookupUri,
- previousScreen, ACTIVITY_REQUEST_QUICK_CONTACT);
+ ImplicitIntentsUtil.startQuickContact(
+ getActivity(), contactLookupUri, previousScreen);
}
}
@Override
public void onDeleteContactAction(Uri contactUri) {
- final ContactDeletionInteraction interacton =
- ContactDeletionInteraction.start(mActivity, contactUri, false);
- interacton.setListener(new ContactDeletionInteraction.Listener() {
- @Override
- public void onDeletionFinished() {
- maybeRestartDefaultDirectoryPartitionLoader();
- }
- });
+ ContactDeletionInteraction.start(mActivity, contactUri, false);
}
@Override
@@ -1168,16 +1158,6 @@
/* numSelected */ getSelectedContactIds().size());
mActionBarAdapter.setSelectionMode(false);
mIsDeletionInProgress = false;
- maybeRestartDefaultDirectoryPartitionLoader();
- }
- }
-
- // Because the yenta search loader is not automatically restarted when contacts are deleted
- // we must manually restart it when contacts displayed in yenta search results are deleted
- // either on this fragment directly or after opening QuickContact.
- public void maybeRestartDefaultDirectoryPartitionLoader() {
- if (isSearchMode() && Flags.getInstance().getBoolean(Experiments.SEARCH_YENTA)) {
- restartDefaultDirectoryPartitionLoader();
}
}
@@ -1204,7 +1184,7 @@
/* listType */ getListTypeIncludingSearch(),
/* count */ getAdapter().getCount(), /* clickedIndex */ -1,
/* numSelected */ getAdapter().getSelectedContactIds().size());
- break;
+
// TODO fix or remove multipicker code: ag/54762
// else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {
// // Finish the activity if the sub activity was canceled as back key is used
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index d8344c6..bc76331 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -31,11 +31,9 @@
import android.text.TextUtils;
import android.view.View;
-import com.android.contacts.Experiments;
import com.android.contacts.compat.ContactsCompat;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.preference.ContactsPreferences;
-import com.android.contactsbind.experiments.Flags;
import java.util.ArrayList;
import java.util.List;
@@ -116,13 +114,6 @@
loader.setUri(builder.build());
loader.setProjection(getProjection(true));
sortOrder = STREQUENT_SORT;
- if (Flags.getInstance().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/list/FavoritesAndContactsLoader.java b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
index 5868d29..54e5f3f 100644
--- a/src/com/android/contacts/list/FavoritesAndContactsLoader.java
+++ b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
@@ -22,38 +22,24 @@
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
-import android.util.Log;
-import com.android.contacts.Experiments;
-import com.android.contactsbind.ObjectFactory;
-import com.android.contactsbind.experiments.Flags;
-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 implements
- AutocompleteHelper.Listener {
+public class FavoritesAndContactsLoader extends CursorLoader {
private boolean mLoadFavorites;
private String[] mProjection;
- private String mAutocompleteQuery;
- private CountDownLatch mAutocompleteLatch = new CountDownLatch(1);
- private Cursor mAutocompleteCursor;
- private int mAutocompleteTimeout;
public FavoritesAndContactsLoader(Context context) {
super(context);
- mAutocompleteTimeout = Flags.getInstance().getInteger(
- Experiments.SEARCH_YENTA_TIMEOUT_MILLIS);
}
/** Whether to load favorites and merge results in before any other results. */
@@ -61,10 +47,6 @@
mLoadFavorites = flag;
}
- public void setAutocompleteQuery(String autocompleteQuery) {
- mAutocompleteQuery = autocompleteQuery;
- }
-
public void setProjection(String[] projection) {
super.setProjection(projection);
mProjection = projection;
@@ -76,36 +58,8 @@
if (mLoadFavorites) {
cursors.add(loadFavoritesContacts());
}
-
- 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(mAutocompleteTimeout, 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
- }
- }
- }
-
- // 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);
- }
- // Guard against passing an empty array to the MergeCursor constructor
- if (cursors.isEmpty()) cursors.add(null);
-
+ final Cursor contactsCursor = loadContacts();
+ cursors.add(contactsCursor);
return new MergeCursor(cursors.toArray(new Cursor[cursors.size()])) {
@Override
public Bundle getExtras() {
@@ -139,18 +93,4 @@
Contacts.CONTENT_URI, mProjection, selection.toString(), new String[]{"1"},
getSortOrder());
}
-
- @Override
- public void onAutocompletesAvailable(Cursor cursor) {
- if (cursor != null && cursor.getCount() > 0) {
- 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/util/MaterialColorMapUtils.java b/src/com/android/contacts/util/MaterialColorMapUtils.java
index 39f69c2..b54ec0e 100644
--- a/src/com/android/contacts/util/MaterialColorMapUtils.java
+++ b/src/com/android/contacts/util/MaterialColorMapUtils.java
@@ -24,8 +24,8 @@
import android.os.Trace;
import android.support.v4.content.ContextCompat;
+import com.android.contacts.ContactsDrawerActivity;
import com.android.contacts.R;
-import com.android.contacts.activities.PeopleActivity;
public class MaterialColorMapUtils {
private final TypedArray sPrimaryColors;
@@ -185,8 +185,8 @@
* Returns status bar color for group view and non-group views.
*/
public static int getStatusBarColor(Activity activity) {
- final boolean isGroupView = activity instanceof PeopleActivity
- && ((PeopleActivity) activity).isGroupView();
+ final boolean isGroupView = activity instanceof ContactsDrawerActivity
+ && ((ContactsDrawerActivity) activity).isGroupView();
return isGroupView
? ContextCompat.getColor(activity, R.color.group_primary_color_dark)
: ContextCompat.getColor(activity, R.color.primary_color_dark);
@@ -196,8 +196,8 @@
* Returns toolbar color for group view and non-group views.
*/
public static int getToolBarColor(Activity activity) {
- final boolean isGroupView = activity instanceof PeopleActivity
- && ((PeopleActivity) activity).isGroupView();
+ final boolean isGroupView = activity instanceof ContactsDrawerActivity
+ && ((ContactsDrawerActivity) activity).isGroupView();
return isGroupView
? ContextCompat.getColor(activity, R.color.group_primary_color)
: ContextCompat.getColor(activity, R.color.primary_color);