<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 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>
    <!-- The EditText for entries in the ContactEditFragment -->
    <item type="id" name="data"/>
    <item type="id" name="header_phones"/>
    <item type="id" name="dialog_sync_add"/>

    <!-- For ContactDeletionInteraction -->
    <item type="id" name="dialog_delete_contact_loader_id" />

    <!-- For ContactMultiDeletionInteraction -->
    <item type="id" name="dialog_delete_multiple_contact_loader_id" />

    <!-- For PhoneNumberInteraction -->
    <item type="id" name="dialog_phone_number_call_disambiguation"/>

    <!-- For PhoneNumberMessageSendInteraction -->
    <item type="id" name="dialog_phone_number_message_disambiguation"/>

    <!-- Dialog Manager Ids -->
    <item type="id" name="dialog_manager_id_1"/>
    <item type="id" name="dialog_manager_id_2"/>

    <!-- Loader ID for contact filters -->
    <item type="id" name="contact_list_filter_loader" />

    <!-- Dialog ID for the date picker in event (birthday) editors -->
    <item type="id" name="dialog_event_date_picker" />

    <!-- An ID to be used for contents of a custom dialog so that its state be preserved -->
    <item type="id" name="custom_dialog_content" />

    <!-- Menu ID for profile item -->
    <item type="id" name="nav_myprofile" />

    <!-- Menu group ID for settings and help & feedback  -->
    <item type="id" name="nav_misc" />

    <!-- Menu ID for Contacts menu -->
    <item type="id" name="nav_all_contacts" />

    <!-- Menu ID for Suggestions menu -->
    <item type="id" name="nav_assistant" />

    <!-- Menu ID for group header -->
    <item type="id" name="nav_groups" />

    <!-- Menu ID for each group menu item -->
    <item type="id" name="nav_group" />

    <!-- Menu ID for create label menu item -->
    <item type="id" name="nav_create_label" />

    <!-- Menu ID for filter header -->
    <item type="id" name="nav_filters" />

    <!-- Menu ID for each filter menu item -->
    <item type="id" name="nav_filter" />

    <!-- Menu ID for ice item -->
    <item type="id" name="nav_emergency" />

    <!-- Menu ID for Settings menu -->
    <item type="id" name="nav_settings" />

    <!-- Menu ID for help & feedback  menu -->
    <item type="id" name="nav_help" />

    <!-- For vcard.ImportVCardActivity -->
    <item type="id" name="dialog_cache_vcard"/>
    <item type="id" name="dialog_error_with_message"/>

    <!-- For vcard.CancelActivity -->
    <item type="id" name="dialog_cancel_confirmation"/>
    <item type="id" name="dialog_cancel_failed"/>

    <!-- For ExportVCardActivity -->
    <item type="id" name="dialog_exporting_vcard"/>
    <item type="id" name="dialog_fail_to_export_with_reason"/>

    <!-- For Debug Purpose -->
    <item type="id" name="cliv_name_textview"/>
    <item type="id" name="cliv_phoneticname_textview"/>
    <item type="id" name="cliv_label_textview"/>
    <item type="id" name="cliv_data_view"/>

    <!-- For tag ids used by ContactPhotoManager to tag views with contact details -->
    <item type="id" name="tag_display_name"/>
    <item type="id" name="tag_identifier"/>
    <item type="id" name="tag_contact_type"/>

    <item type="id" name="menu_save"/>
</resources>
