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

    <!-- 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="widget_refresh_delay_ms">4000</integer>-->
    <integer name="widget_folder_refresh_delay_ms">500</integer>
    <item type="id" name="folder"/>
</resources>
