<?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>

    <!-- Do not change any of the values in this array without checking/changing -->
    <!-- related values in: AccountSetupBasics.java & AccountSetupOptions.java  -->
    
    <!-- In particular, 15 minutes is hardcoded as the default for new accounts. -->
    
    <string-array name="account_settings_check_frequency_entries">
        <item>@string/account_setup_options_mail_check_frequency_never</item>
        <item>@string/account_setup_options_mail_check_frequency_5min</item>
        <item>@string/account_setup_options_mail_check_frequency_10min</item>
        <item>@string/account_setup_options_mail_check_frequency_15min</item>
        <item>@string/account_setup_options_mail_check_frequency_30min</item>
        <item>@string/account_setup_options_mail_check_frequency_1hour</item>
    </string-array>

    <string-array name="account_settings_check_frequency_values" translatable="false">
        <item>-1</item>
        <item>5</item>
        <item>10</item>
        <item>15</item>
        <item>30</item>
        <item>60</item>  
    </string-array>
    
    
    <!-- The arrays that are presented to push-enabled accounts -->
    <string-array name="account_settings_check_frequency_entries_push">
        <item>@string/account_setup_options_mail_check_frequency_push</item>
        <item>@string/account_setup_options_mail_check_frequency_never</item>
        <item>@string/account_setup_options_mail_check_frequency_5min</item>
        <item>@string/account_setup_options_mail_check_frequency_10min</item>
        <item>@string/account_setup_options_mail_check_frequency_15min</item>
        <item>@string/account_setup_options_mail_check_frequency_30min</item>
        <item>@string/account_setup_options_mail_check_frequency_1hour</item>
    </string-array>

    <string-array name="account_settings_check_frequency_values_push" translatable="false">
        <item>-2</item>
        <item>-1</item>
        <item>5</item>
        <item>10</item>
        <item>15</item>
        <item>30</item>
        <item>60</item>  
    </string-array>
    
    <!-- Mail sync window sizes for EAS accounts -->
    <!-- Note, "all" (value 6) is not presented in UI. -->
    <string-array name="account_settings_mail_window_entries">
        <item>@string/account_setup_options_mail_window_1day</item>
        <item>@string/account_setup_options_mail_window_3days</item>
        <item>@string/account_setup_options_mail_window_1week</item>
        <item>@string/account_setup_options_mail_window_2weeks</item>
        <item>@string/account_setup_options_mail_window_1month</item>
    </string-array>

    <!-- Mail sync window size codes for EAS accounts -->
    <!-- Note, "all" (value 6) is not presented in UI. -->
    <string-array name="account_settings_mail_window_values" translatable="false">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>5</item>
    </string-array>

    <!-- The vibrate notification modes -->
    <string-array name="account_settings_vibrate_when_entries">
        <!-- Always -->
        <item>@string/account_settings_vibrate_when_always</item>
        <!-- Only when the phone is in Silent mode -->
        <item>@string/account_settings_vibrate_when_silent</item>
        <!-- Never -->
        <item>@string/account_settings_vibrate_when_never</item>
    </string-array>

    <!-- The vibrate notification values -->
    <string-array translatable="false" name="account_settings_vibrate_when_values">
        <item>always</item>
        <item>silent</item>
        <item>never</item>
    </string-array>

    <!-- Arrays "mailbox_display_names" and "mailbox_display_icons" MUST match the order
         of the types of mailboxes defined in EmailContent -->
    <string-array name="mailbox_display_names" translatable="false">
        <!-- TYPE_INBOX = 0 -->
        <item>@string/mailbox_name_display_inbox</item>
        <!-- TYPE_MAIL = 1 -->
        <item></item>
        <!-- TYPE_PARENT = 2 -->
        <item></item>
        <!-- TYPE_DRAFTS = 3 -->
        <item>@string/mailbox_name_display_drafts</item>
        <!-- TYPE_OUTBOX = 4 -->
        <item>@string/mailbox_name_display_outbox</item>
        <!-- TYPE_SENT = 5 -->
        <item>@string/mailbox_name_display_sent</item>
        <!-- TYPE_TRASH = 6 -->
        <item>@string/mailbox_name_display_trash</item>
        <!-- TYPE_JUNK = 7 -->
        <item>@string/mailbox_name_display_junk</item>
    </string-array>

    <!-- Arrays "mailbox_display_names" and "mailbox_display_icons" MUST match the order
         of the types of mailboxes defined in EmailContent -->
    <array name="mailbox_display_icons" translatable="false">
        <!-- TYPE_INBOX = 0 -->
        <item>@drawable/ic_list_inbox</item>
        <!-- TYPE_MAIL = 1 -->
        <item>@drawable/ic_list_folder</item>
        <!-- TYPE_PARENT = 2 -->
        <item>@drawable/ic_list_folder</item>
        <!-- TYPE_DRAFTS = 3 -->
        <item>@drawable/ic_list_drafts</item>
        <!-- TYPE_OUTBOX = 4 -->
        <item>@drawable/ic_list_outbox</item>
        <!-- TYPE_SENT = 5 -->
        <item>@drawable/ic_list_sent</item>
        <!-- TYPE_TRASH = 6 -->
        <item>@drawable/ic_list_trash</item>
        <!-- TYPE_JUNK = 7 -->
        <item>@drawable/ic_list_spam</item>
    </array>
</resources>
