<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->

<resources>

    <!-- Help URL pointing to main TOC for People. This is intentionally empty because
         the overlay will fill this in during build time. -->
    <string name="help_url_people_main"></string>

    <!-- File Authority for the photo picker -->
    <string name="photo_file_provider_authority">com.android.contacts.files</string>

    <!-- File Authority for AOSP Contacts files -->
    <string name="contacts_file_provider_authority">com.android.contacts.files</string>

    <!-- SDN Authority for carrier SDN -->
    <string name="contacts_sdn_provider_authority">com.android.contacts.sdn</string>

    <!-- Flag indicating whether Contacts app is allowed to import contacts -->
    <bool name="config_allow_import_from_vcf_file">true</bool>

    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
    <bool name="config_sort_order_user_changeable">true</bool>

    <!-- If true, the default sort order is primary (i.e. by given name) -->
    <bool name="config_default_sort_order_primary">true</bool>

    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
    <bool name="config_display_order_user_changeable">true</bool>

    <!-- If true, the default sort order is primary (i.e. by given name) -->
    <bool name="config_default_display_order_primary">true</bool>

    <!-- If true, an option is shown in Display Options UI to choose a phonetic name display preference -->
    <bool name="config_phonetic_name_display_user_changeable">true</bool>

    <!-- If true, phonetic name fields are not visible when empty -->
    <bool name="config_default_hide_phonetic_name_if_empty">true</bool>

    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
    <bool name="config_editor_field_order_primary">true</bool>

    <!-- If true, an option is shown in Display Options UI to choose a default account -->
    <bool name="config_default_account_user_changeable">true</bool>

    <!-- Contacts preferences key for contact editor default account -->
    <string name="contact_editor_default_account_key">ContactEditorUtils_default_account</string>

    <!-- The type of VCard for export. If you want to let the app emit vCard which is
    specific to some vendor (like DoCoMo), specify this type (e.g. "docomo") -->
    <string name="config_export_vcard_type" translatable="false">default</string>

    <!-- The filename that is suggested that users use when exporting vCards. Should include the .vcf extension. -->
    <string name="exporting_vcard_filename" translatable="false">contacts.vcf</string>

    <!-- Flag indicating whether Contacts app is allowed to export contacts -->
    <bool name="config_allow_export">true</bool>

    <!-- Flag indicating whether Contacts app is allowed to share contacts with devices outside -->
    <bool name="config_allow_share_contacts">true</bool>

    <string name="pref_build_version_key">pref_build_version</string>
    <string name="pref_open_source_licenses_key">pref_open_source_licenses</string>
    <string name="pref_privacy_policy_key">pref_privacy_policy</string>
    <string name="pref_terms_of_service_key">pref_terms_of_service</string>
</resources>
