<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright (C) 2015 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>

    <!-- Preference keys for user-visible settings -->
    <!-- Application-wide settings -->
    <string name="notifications_category_pref_key" translatable="false">notifications_category</string>
    <string name="mms_messaging_category_pref_key" translatable="false">mms_messaging_category</string>
    <string name="advanced_category_pref_key" translatable="false">advanced_category</string>
    <string name="notifications_pref_key" translatable="false">notifications_enabled</string>
    <string name="notification_sound_pref_key" translatable="false">notification_sound</string>
    <string name="notification_vibration_pref_key" translatable="false">notification_vibration</string>
    <bool name="notification_vibration_pref_default" translatable="false">true</bool>
    <string name="sms_disabled_pref_key" translatable="false">sms_disabled</string>
    <string name="sms_enabled_pref_key" translatable="false">sms_enabled</string>
    <string name="send_sound_pref_key" translatable="false">send_sound</string>
    <bool name="send_sound_pref_default" translatable="false">true</bool>
    <string name="advanced_pref_key" translatable="false">advanced_prefs</string>

    <!-- Subscription-specific settings. The values of these pref keys must be prefixed with
         "buglesub_" to allow for runtime checks -->
    <string name="delivery_reports_pref_key" translatable="false">buglesub_delivery_reports</string>
    <bool name="delivery_reports_pref_default" translatable="false">false</bool>
    <string name="auto_retrieve_mms_pref_key" translatable="false">buglesub_auto_retrieve_mms</string>
    <bool name="auto_retrieve_mms_pref_default" translatable="false">true</bool>
    <string name="auto_retrieve_mms_when_roaming_pref_key" translatable="false">buglesub_auto_retrieve_mms_when_roaming</string>
    <bool name="auto_retrieve_mms_when_roaming_pref_default" translatable="false">false</bool>
    <string name="group_mms_pref_key" translatable="false">buglesub_group_messaging</string>
    <bool name="group_mms_pref_default" translatable="false">true</bool>
    <string name="mms_phone_number_pref_key" translatable="false">buglesub_mms_phone_number</string>
    <string name="wireless_alerts_key" translatable="false">buglesub_wireless_alerts_key</string>
    <string name="apn_list_pref_key" translatable="false">buglesub_apn_list</string>

    <!-- Debug preferences -->
    <string name="debug_pref_key" translatable="false">debug_category</string>
    <string name="dump_sms_pref_key" translatable="false">dump_sms</string>
    <bool name="dump_sms_pref_default" translatable="false">false</bool>
    <string name="dump_mms_pref_key" translatable="false">dump_mms</string>
    <bool name="dump_mms_pref_default" translatable="false">false</bool>


    <!-- SMS/MMS settings keys -->
    <!--
    TODO: Several of these are currently unused but are expected to be needed to
    implement SMS/MMS delivery and basic settings. Once we have the core functionality in place
    we should do a pass to remove any unused values here.
    -->
    <string name="sms_apns_key" translatable="false">sms_apns_key</string>
    <string name="use_local_apn_pref_key" translatable="false">use_local_apn_pref_key</string>
    <bool name="use_local_apn_pref_default" translatable="false">false</bool>

    <integer name="mediapicker_transition_duration">600</integer><!-- ms -->
    <integer name="asyncimage_transition_duration">300</integer><!-- ms -->
    <integer name="compose_transition_duration">300</integer><!-- ms -->
    <integer name="camera_shutter_duration">200</integer><!-- ms -->
    <fraction name="camera_shutter_max_alpha">70%</fraction>

    <integer name="snackbar_translation_duration_ms">300</integer>

    <!-- Notification preferences -->
    <string name="notifications_group_children_key" translatable="false">notifications_group_children</string>

    <!-- format string for creating new image files. Passed to java.text.SimpleDateFormat. -->
    <string name="new_image_file_name_format" translatable="false">"'IMG'_yyyyMMdd_HHmmss"</string>
    <!-- format string for creating new files of unknown type. Passed to java.text.SimpleDateFormat. -->
    <string name="new_file_name_format" translatable="false">"yyyyMMdd_HHmmss"</string>

    <!-- Swipe to Archive consts -->
    <integer name="swipe_duration_ms">300</integer>
    <integer name="swipe_max_fling_velocity_px_per_s">4000</integer>

    <!-- Fab animation const -->
    <integer name="fab_animation_duration_ms">300</integer>

    <!-- Conversation list -> conversation animation const -->
    <integer name="list_to_conversation_animation_duration_ms">300</integer>

    <!-- Generic reveal view animation duration -->
    <integer name="reveal_view_animation_duration">300</integer>
</resources>
