<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, 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.
*/
-->

<!-- These resources are around just to allow their values to be customized
     for different hardware and product builds. -->
<resources>
    <!-- Software blur is too slow on this device. -->
    <bool name="config_sf_slowBlur">true</bool>

    <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
         Please don't copy them, copy anything else. -->

    <!-- This string array should be overridden by the device to present a list of network
         attributes.  This is used by the connectivity manager to decide which networks can coexist
         based on the hardware -->
    <!-- An Array of "[Connection name],[ConnectivityManager connection type],
         [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet]  -->
    <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
         before automatically restore the default connection.  Set -1 if the connection
         does not require auto-restore. -->
    <!-- the 6th element indicates boot-time dependency-met value. -->
    <string-array translatable="false" name="networkAttributes">
        <item>"wifi,1,1,1,-1,true"</item>
        <item>"mobile,0,0,0,-1,true"</item>
        <item>"mobile_supl,3,0,2,60000,true"</item>
        <item>"mobile_dun,4,0,3,60000,true"</item>
        <item>"mobile_hipri,5,0,3,60000,true"</item>
        <item>"mobile_bluetooth,7,7,1,-1,true"</item>
        <item>"ethernet,9,9,1,-1,true"</item>
        <item>"wifi_p2p,13,1,0,-1,true"</item>
    </string-array>

    <!-- An Array of "[ConnectivityManager connectionType],
         [# simultaneous connection types]"  -->
    <string-array translatable="false" name="radioAttributes">
        <item>"1,1"</item>
        <item>"0,1"</item>
        <item>"7,1"</item>
        <item>"9,1"</item>
    </string-array>


    <!-- List of regexpressions describing the interface (if any) that represent tetherable
         USB interfaces.  If the device doesn't want to support tething over USB this should
         be empty.  An example would be "usb.*" -->
    <string-array translatable="false" name="config_tether_usb_regexs">
    </string-array>

    <!-- Array of allowable ConnectivityManager network types for tethering -->
    <integer-array translatable="false" name="config_tether_upstream_types">
    </integer-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
         Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
         should be empty.  An example would be "softap.*" -->
    <string-array translatable="false" name="config_tether_wifi_regexs">
    </string-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
         bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
         should be empty. -->
    <string-array translatable="false" name="config_tether_bluetooth_regexs">
    </string-array>

    <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
    <bool translatable="false" name="config_wifi_dual_band_support">false</bool>

    <!-- Boolean indicating whether the wifi chipset has background scan support -->
    <bool translatable="false" name="config_wifi_background_scan_support">true</bool>

    <!-- Device type information conforming to Annex B format in WiFi Direct specification.
    The default represents a dual-mode smartphone -->
    <string translatable="false" name="config_wifi_p2p_device_type">1-0050F204-1</string>

    <!-- List of file paths for USB host busses to exclude from USB host support.
         For example, if the first USB bus on the device is used to communicate
         with the modem or some other restricted hardware, add "/dev/bus/usb/001/"
         to this list.  If this is empty, no parts of the host USB bus will be excluded.
    -->
    <string-array name="config_usbHostBlacklist">
        <!--  
   -->
        <item>/dev/bus/usb/001</item>
    </string-array>

    <!-- Flag indicating whether the we should enable the automatic brightness in Settings.
         Software implementation will be used if config_hardware_auto_brightness_available is not set -->
    <bool name="config_automatic_brightness_available">true</bool>

    <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
         The N entries of this array define N  1 zones as follows:

         Zone 0:        0 <= LUX < array[0]
         Zone 1:        array[0] <= LUX < array[1]
         ...
         Zone N:        array[N - 1] <= LUX < array[N]
         Zone N + 1     array[N] <= LUX < infinity

         Must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessLevels">
        <item>5</item>
        <item>15</item>
        <item>50</item>
        <item>100</item>
        <item>200</item>
        <item>400</item>
        <item>1000</item>
        <item>2000</item>
        <item>3000</item>
        <item>5000</item>
        <item>10000</item>
        <item>30000</item>
    </integer-array>


    <!-- Array of output values for LCD backlight corresponding to the LUX values
         in the config_autoBrightnessLevels array.  This array should have size one greater
         than the size of the config_autoBrightnessLevels array.
         This must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessLcdBacklightValues">
        <item>5</item>    <!-- 0-5 -->
        <item>20</item>   <!-- 5-15 -->
        <item>30</item>   <!-- 15-50 -->
        <item>40</item>   <!-- 50-100 -->
        <item>50</item>   <!-- 100-200 -->
        <item>60</item>   <!-- 200-400 -->
        <item>70</item>   <!-- 400-1000 -->
        <item>80</item>   <!-- 1000-2000 -->
        <item>130</item>  <!-- 2000-3000 -->
        <item>180</item>  <!-- 3000-5000 -->
        <item>255</item>  <!-- 5000-10000 -->
        <item>255</item>  <!-- 10000-30000 -->
        <item>255</item>  <!-- 30000+ -->
    </integer-array>

    <!-- Array of output values for button backlight corresponding to the LUX values
         in the config_autoBrightnessLevels array.  This array should have size one greater
         than the size of the config_autoBrightnessLevels array.
         This must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessButtonBacklightValues">
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
        <item>0</item>
    </integer-array>

    <!-- Minimum screen brightness allowed by the power manager. -->
    <integer name="config_screenBrightnessDim">5</integer>

    <!-- This device is not "voice capable"; it's data-only. -->
    <bool name="config_voice_capable">false</bool>

    <!-- This device does allow sms service. -->
    <bool name="config_sms_capable">true</bool>

    <!-- Enable puk unlockscreen -->
    <bool name="config_enable_puk_unlock_screen">true</bool>

    <!-- Number of database connections opened and managed by framework layer
         to handle queries on each database. -->
    <integer name="db_connection_pool_size">3</integer>

    <!-- Max space (in MB) allocated to DownloadManager to store the downloaded files
         if they are to be stored in DownloadManager's data dir,
         which typically is /data/data/com.android.providers.downloads/files. -->
    <integer name="config_downloadDataDirSize">200</integer>

    <!-- When the free space available in DownloadManager's data dir falls
         below the percentage value specified by this param, DownloadManager
         starts removing files to try to make percentage of available
         free space above this threshold value. --> 
    <integer name="config_downloadDataDirLowSpaceThreshold">10</integer>

    <!-- When a database query is executed, the results retuned are paginated
         in pages of size (in KB) indicated by this value -->
    <integer name="config_cursorWindowSize">2048</integer>

    <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
    <bool name="config_intrusiveNotificationLed">false</bool>


    <!-- Base "touch slop" value used by ViewConfiguration as a
         movement threshold where scrolling should begin.

          -->
    <dimen name="config_viewConfigurationTouchSlop">12dp</dimen>

    <!-- Separate software navigation bar required on this device. -->
    <bool name="config_showNavigationBar">true</bool>

    <!-- Indicate whether closing the lid causes the device to go to sleep and opening
         it causes the device to wake up.
         The default is false. -->
    <bool name="config_lidControlsSleep">true</bool>

    <!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
    <bool name="config_unplugTurnsOnScreen">true</bool>

    <!-- Boolean indicating if current platform need do one-time bluetooth address
         re-validation -->
    <bool name="config_bluetooth_address_validation">true</bool>

    <!-- The attenuation in dB applied to the lock/unlock sounds. -->
    <integer name="config_lockSoundVolumeDb">0</integer>
    
    <!--  Maximum number of supported users -->
    <integer name="config_multiuserMaximumUsers">8</integer>

    <!-- reference volume index for music stream to limit headphone volume and display warning -->
    <integer name="config_safe_media_volume_index">6</integer>

</resources>
