<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2011 Google Inc.
     Licensed to 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>
    <!-- Boolean value indicating whether the tablet UI should be used. -->
    <integer name="use_tablet_ui">0</integer>
    <integer name="conversation_list_header_mode">1</integer>
    <integer name="conversation_header_mode">1</integer>

    <!-- Boolean value indicating whether hardware acceleration should be used. -->
    <integer name="use_hardware_acceleration">1</integer>

    <!-- left/right conversations will auto-load if they have no more than this number of messages -->
    <integer name="max_auto_load_messages">20</integer>

    <!-- Frequency (in milliseconds) for the refresh of timestamps in conversation list fragments. -->
    <integer name="timestamp_update_interval">60000</integer>

    <!-- Boolean value indicating whether the conversation list be
         removed from the UI. This is something only tablets can do,
         so false in the default case.  Set this true for tablets. -->
    <integer name="conversation_list_collapsible">0</integer>
    <!-- Relative weights of the different views.  These three
         determine how much of the screen width is taken by the
         different views. For the default layout (phone), these values
         are equal. These are only used in TwoPaneLayout, so they need
         to be specified for sw600dp and sw720dp layouts. -->
    <integer name="folder_list_weight">1</integer>
    <integer name="conversation_list_weight">1</integer>
    <integer name="conversation_view_weight">1</integer>
    <!-- Max unread count to show for a folder -->
    <integer name="maxUnreadCount">999</integer>
    <integer name="swipeScrollSlop">2</integer>
   <!-- <integer name="widget_refresh_delay_ms">4000</integer>-->
    <integer name="widget_folder_refresh_delay_ms">500</integer>
    <!-- We don't want the unread count to flicker too much in the action bar, when a lot of
    activity.  Throttle loader updates. -->
    <integer name="folder_item_refresh_delay_ms">500</integer>
    <integer name="conversation_text_zoom_percent">87</integer>

    <!-- Whether the list is collapsed in conversation view mode -->
    <bool name="list_collapsed">true</bool>

    <!-- Whether to show single or 2 pane search results -->
    <bool name="show_two_pane_search_results">false</bool>

    <!-- Whether to show conversation subject in conversation view -->
    <bool name="show_conversation_subject">true</bool>

    <!-- Amount of memory in bytes allocated for image cache -->
    <integer name="config_image_cache_max_bytes">1500000</integer>

    <!-- Number of decoded contact photo bitmaps retained in an LRU cache -->
    <integer name="config_image_cache_max_bitmaps">24</integer>

    <!-- Whether to display folder colors in the widget -->
    <bool name="display_folder_colors_in_widget">false</bool>
</resources>
