<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

    <!-- If false, MIN is displayed. If true, MSID is displayed. -->
    <bool name="config_msid_enable" translatable="false">false</bool>

    <string name="additional_system_update" translatable="false"></string>
    <string name="additional_system_update_menu" translatable="false"></string>

    <!-- TODO: This is purely enforced by the interface, and does not affect what
         strings may be inserted into the actual content provider.
         With the addition of shortcuts, it seems more likely that users will
         find this limiting; it would be good to have the interface work with
         very long strings too. -->
    <integer name="maximum_user_dictionary_word_length" translatable="false">48</integer>

    <!-- Carrier_enabled editable -->
    <bool name="config_allow_edit_carrier_enabled" translatable="false">false</bool>

    <!-- When true enable color temperature setting. -->
    <bool name="config_enableColorTemperature">false</bool>

    <!-- Whether to show Camera laser sensor switch in Developer Options -->
    <bool name="config_show_camera_laser_sensor">false</bool>

    <!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated. -->
    <string name="config_featureFactory" translatable="false">com.android.settings.overlay.FeatureFactoryImpl</string>

    <!-- Package name and fully-qualified class name for the wallpaper picker activity. -->
    <string name="config_wallpaper_picker_package" translatable="false">com.android.settings</string>
    <string name="config_wallpaper_picker_class" translatable="false">com.android.settings.Settings$WallpaperSettingsActivity</string>
    <!-- Fully-qualified class name for the styles & wallpaper picker activity. -->
    <string name="config_styles_and_wallpaper_picker_class" translatable="false"></string>
    <!-- Action name for the wallpaper picker activity. -->
    <string name="config_wallpaper_picker_action" translatable="false"></string>
    <!-- Action name for the styles & wallpaper picker activity. -->
    <string name="config_styles_and_wallpaper_picker_action" translatable="false"></string>
    <!-- Intent extra for wallpaper picker activity. -->
    <string name="config_wallpaper_picker_launch_extra" translatable="false">com.android.wallpaper.LAUNCH_SOURCE</string>

    <!-- Manufacturer backup settings to launch -->
    <string name="config_backup_settings_intent" translatable="false"></string>

    <!-- Manufacturer backup settings label -->
    <string name="config_backup_settings_label" translatable="true"></string>

    <!-- Double twist sensor type and vendor used by gesture setting -->
    <string name="gesture_double_twist_sensor_type" translatable="false"></string>
    <string name="gesture_double_twist_sensor_vendor" translatable="false"></string>

    <!-- If the Storage Manager settings are enabled. -->
    <bool name="config_storage_manager_settings_enabled">false</bool>

    <!-- If the support features are enabled. -->
    <bool name="config_support_enabled">false</bool>

    <!-- List containing the component names of pre-installed screen reader services. -->
    <string-array name="config_preinstalled_screen_reader_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the component names of pre-installed captioning services. -->
    <string-array name="config_preinstalled_captions_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the component names of pre-installed audio and captioning services. -->
    <string-array name="config_preinstalled_audio_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the component names of pre-installed display services. -->
    <string-array name="config_preinstalled_display_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the component names of pre-installed speech services. -->
    <string-array name="config_preinstalled_speech_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the component names of pre-installed interaction control services. -->
    <string-array name="config_preinstalled_interaction_control_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the order of services in screen reader category by {@link ComponentName}.
         All {@link ComponentName} in a category need to be specified to guarantee correct
         behavior.-->
    <string-array name="config_order_screen_reader_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        -->
    </string-array>

    <!-- List containing the order of services in captions category by preference key or
         {@link ComponentName}. All preference keys in a category need to be specified to guarantee
         correct behavior.-->
    <string-array name="config_order_captions_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        <item>captioning_preference_screen</item>
        <item>rtt_setting</item>
        <item>...</item>
        -->
    </string-array>

    <!-- List containing the order of services in audio and caption category by preference key or
         {@link ComponentName}. All preference keys in a category need to be specified to guarantee
         correct behavior.-->
    <string-array name="config_order_audio_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        <item>toggle_primary_mono</item>
        <item>seekbar_primary_balance</item>
        <item>...</item>
        -->
    </string-array>

    <!-- List containing the order of services in display category by preference key or
         {@link ComponentName}. All preference keys in a category need to be specified to guarantee
         correct behavior.-->
    <string-array name="config_order_display_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        <item>font_size_preference_screen</item>
        <item>dark_ui_mode_accessibility</item>
        <item>...</item>
        -->
    </string-array>

    <!-- List containing the order of services in speech category by preference key or
         {@link ComponentName}. All preference keys in a category need to be specified to guarantee
         correct behavior.-->
    <string-array name="config_order_speech_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        <item>font_size_preference_screen</item>
        <item>dark_ui_mode_accessibility</item>
        <item>...</item>
        -->
    </string-array>

    <!-- List containing the order of services in interaction control category by preference key or
         {@link ComponentName}. All preference keys in a category need to be specified to guarantee
         correct behavior.-->
    <string-array name="config_order_interaction_control_services" translatable="false">
        <!--
        <item>com.example.package.first/com.example.class.FirstService</item>
        <item>com.example.package.second/com.example.class.SecondService</item>
        <item>autoclick_preference</item>
        <item>toggle_power_button_ends_call_preference</item>
        <item>...</item>
        -->
    </string-array>

    <!-- List of packages that should be allowlisted for slice uri access. Do not translate -->
    <string-array name="slice_allowlist_package_names" translatable="false"/>

    <!-- Whether to use a UI variant that minimizes the number of UI elements on screen. This is
         typically used when there is not enough space to display everything, because pattern view
         doesn't interact well with scroll view -->
    <bool name="config_lock_pattern_minimal_ui">true</bool>

    <!-- List of a11y components on the device allowed to be enabled by Settings Slices -->
    <string-array name="config_settings_slices_accessibility_components" translatable="false"/>

    <!-- Whether or not to show the night light suggestion. -->
    <bool name="config_night_light_suggestion_enabled">true</bool>

    <!-- The number of vibration intensity levels supported by the device.

         Note that this should correspond to the ability to vary the vibration amplitude, with
         enough dynamic range to have at least as many distinct intensity levels as defined here.

         Supported values are 1, 2, 3. If '1', the settings app will use a toggle for the settings,
         otherwise a slider. If '3', the settings app maps intensities directly to the levels
         supported by the Vibrator HAL APIs. If '2', then the levels will be mapped to
         VIBRATION_INTENSITY_LOW and VIBRATION_INTENSITY_HIGH, which gives the most range for
         scaling vibrations. The medium intensity will be skipped.

         The default intensity values are configured at
         frameworks/base/core/res/res/values/config.xml's config_default[type]VibrationIntensity.
         Make sure that each default intensity value is consistent with the supported levels set
         here. If this settings supports only 2 levels, for example, then the default intensity
         should be either LOW (1) or HIGH (3).
    -->
    <integer name="config_vibration_supported_intensity_levels">1</integer>

    <!-- Whether or not to show Media vibration settings in the vibration and haptics screen.
         Can be overridden for specific product builds if the target device does not support it -->
    <bool name="config_media_vibration_supported">true</bool>

    <!--
        Whether or not the homepage should be powered by legacy suggestion (versus contextual cards)
        Default to true as not all devices support contextual cards.
    -->
    <bool name="config_use_legacy_suggestion">true</bool>

    <!-- Whether or not homepage should display user's account avatar -->
    <bool name="config_show_avatar_in_homepage">false</bool>

    <!-- Whether or not emergency info tile should display in device info page -->
    <bool name="config_show_emergency_info_in_device_info">true</bool>

    <!-- Whether or not branded account info tile should display in device info page -->
    <bool name="config_show_branded_account_in_device_info">true</bool>

    <!-- Whether or not device header widget tile should display in device info page -->
    <bool name="config_show_device_header_in_device_info">true</bool>

    <!-- Whether or not TopLevelSettings should force rounded icon for injected tiles -->
    <bool name="config_force_rounded_icon_TopLevelSettings">true</bool>

    <!-- Whether dismissal timestamp should be kept before deletion -->
    <bool name="config_keep_contextual_card_dismissal_timestamp">false</bool>

    <!-- Settings intelligence package name -->
    <string name="config_settingsintelligence_package_name" translatable="false">
        com.android.settings.intelligence
    </string>

    <!-- Whether the confirmation for sim deletion is defaulted to be on or off-->
    <bool name="config_sim_deletion_confirmation_default_on">false</bool>

    <!-- Package Installer package name -->
    <string name="config_package_installer_package_name" translatable="false">
        com.android.packageinstaller
    </string>

    <!-- Settings intelligence interaction log intent action -->
    <string name="config_settingsintelligence_log_action" translatable="false"></string>

    <!-- Whether Settings intelligence supports presenting Slices. -->
    <bool name="config_settingsintelligence_slice_supported">false</bool>

    <!-- AOSP Emergency app package name -->
    <string name="config_aosp_emergency_package_name" translatable="false">
        com.android.emergency
    </string>

    <!-- AOSP Emergency app intent action -->
    <string name="config_aosp_emergency_intent_action" translatable="false">
        android.settings.EDIT_EMERGENCY_INFO
    </string>

    <!-- Emergency app package name -->
    <string name="config_emergency_package_name" translatable="false">
        com.android.emergency
    </string>

    <!-- Emergency app intent action -->
    <string name="config_emergency_intent_action" translatable="false">
        android.settings.EDIT_EMERGENCY_INFO
    </string>

    <!-- Email address for the homepage contextual cards feedback -->
    <string name="config_contextual_card_feedback_email" translatable="false"></string>

    <!-- ComponentName to launch a vendor-specific enrollment activity if available -->
    <string name="config_face_enroll" translatable="false"></string>

    <!-- ComponentName to launch a vendor-specific posture guidance activity if available -->
    <string name="config_face_enroll_guidance_page" translatable="false"></string>

    <!-- Whether to support posture listening for face auth, default is 0(DEVICE_POSTURE_UNKNOWN)
     means setting will try listening on device posture changes.
     0 : DEVICE_POSTURE_UNKNOWN
     1 : DEVICE_POSTURE_CLOSED
     2 : DEVICE_POSTURE_HALF_OPENED
     3 : DEVICE_POSTURE_OPENED
     4 : DEVICE_POSTURE_FLIPPED
     -->
    <integer name="config_face_enroll_supported_posture">0</integer>

    <!-- Whether to show the "less secure" info section on the face enroll intro screen -->
    <bool name="config_face_intro_show_less_secure">false</bool>

    <!-- Whether to show the "require eyes" info section on the face enroll intro screen -->
    <bool name="config_face_intro_show_require_eyes">true</bool>

    <!-- Whether to use the Lottie animation for the face education enrollment screen -->
    <bool name="config_face_education_use_lottie">false</bool>

    <!-- Whether to support enrollment during setup wizard flow -->
    <bool name="config_suw_support_face_enroll">true</bool>

    <!-- App intent -->
    <string name="config_account_intent_uri" translatable="false"></string>

    <!-- Whether or not the dock settings are to be displayed for this device when docked -->
    <bool name="has_dock_settings">false</bool>
    <!-- Whether there is a boot sounds checkbox -->
    <bool name="has_boot_sounds">false</bool>

    <!-- Display additional System Update menu if true -->
    <bool name="config_additional_system_update_setting_enable">false</bool>

    <!-- Whether the bluetooth activation confirmation dialogs should be auto dismissed.
         Can be overridden for specific product builds. -->
    <bool name="auto_confirm_bluetooth_activation_dialog">false</bool>

    <!-- Whether the device name is shown in About device or not -->
    <bool name="config_show_device_name">true</bool>

    <!-- Whether to show a preference item for the manual in About phone -->
    <bool name="config_show_manual">false</bool>
    <!-- Whether to show a preference item for regulatory information in About phone -->
    <bool name="config_show_regulatory_info">false</bool>
    <!-- Package name of regulatory information overlay which provides mapping and contents.
         Fetch resource from overlay package directly if this is set. -->
    <string name="config_regulatory_info_overlay_package_name" translatable="false" />

    <!-- Whether to show a preference item for mobile plan -->
    <bool name="config_show_mobile_plan">true</bool>

    <!-- Whether none security option is hide or not  (country specific). -->
    <bool name="config_hide_none_security_option">false</bool>

    <!-- Whether swipe security option is hidden or not -->
    <bool name="config_hide_swipe_security_option">false</bool>

    <!-- Whether Wi-Fi settings should be shown or not.
    This also controls whether Wi-fi related sub-settings (e.g. Wi-Fi preferences) will
    surface in search results or not.-->
    <bool name="config_show_wifi_settings">true</bool>

    <!-- Whether Wi-Fi hotspot settings should be shown or not. -->
    <bool name="config_show_wifi_hotspot_settings">true</bool>

    <!-- Whether Wi-Fi hotspot speed should be shown or not. -->
    <bool name="config_show_wifi_hotspot_speed">true</bool>

    <!-- Whether toggle_airplane is available or not. -->
    <bool name="config_show_toggle_airplane">true</bool>

    <!-- Whether private_dns_settings is available or not. -->
    <bool name="config_show_private_dns_settings">true</bool>

    <!-- Whether memory from app_info_settings is available or not. -->
    <bool name="config_show_app_info_settings_memory">false</bool>

    <!-- Whether battery from app_info_settings is available or not. -->
    <bool name="config_show_app_info_settings_battery">true</bool>

    <!-- Whether location scanning is available or not. -->
    <bool name="config_show_location_scanning">true</bool>

    <!-- Whether media_volume should be shown or not. -->
    <bool name="config_show_media_volume">true</bool>

    <!-- Whether alarm_volume should be shown or not. -->
    <bool name="config_show_alarm_volume">true</bool>

    <!-- Whether call_volume should be shown or not. -->
    <bool name="config_show_call_volume">true</bool>

    <!-- Whether notification_volume should be shown or not. -->
    <bool name="config_show_notification_volume">true</bool>

    <!-- Whether notification_ringtone should be shown or not. -->
    <bool name="config_show_notification_ringtone">true</bool>

    <!-- Whether screen_locking_sounds should be shown or not. -->
    <bool name="config_show_screen_locking_sounds">true</bool>

    <!-- Whether charging_sounds should be shown or not. -->
    <bool name="config_show_charging_sounds">true</bool>

    <!-- Whether touch_sounds should be shown or not. -->
    <bool name="config_show_touch_sounds">true</bool>

    <!-- Whether encryption_and_credentials_encryption_status should be shown or not. -->
    <bool name="config_show_encryption_and_credentials_encryption_status">true</bool>

    <!-- Whether premium_sms should be shown or not. -->
    <bool name="config_show_premium_sms">true</bool>

    <!-- Whether data_saver should be shown or not. -->
    <bool name="config_show_data_saver">true</bool>

    <!-- Whether enabled_vr_listeners should be shown or not. -->
    <bool name="config_show_enabled_vr_listeners">true</bool>

    <!-- Whether phone_language should be shown or not. -->
    <bool name="config_show_phone_language">true</bool>

    <!-- Whether virtual_keyboard_pref should be shown or not. -->
    <bool name="config_show_virtual_keyboard_pref">true</bool>

    <!-- Whether physical_keyboard_pref should be shown or not. -->
    <bool name="config_show_physical_keyboard_pref">true</bool>

    <!-- Whether spellcheckers_settings should be shown or not. -->
    <bool name="config_show_spellcheckers_settings">true</bool>

    <!-- Whether tts_settings_summary should be shown or not. -->
    <bool name="config_show_tts_settings_summary">true</bool>

    <!-- Whether pointer_speed should be shown or not. -->
    <bool name="config_show_pointer_speed">true</bool>

    <!-- Whether vibrate_input_devices should be shown or not. -->
    <bool name="config_show_vibrate_input_devices">true</bool>

    <!-- Whether manage_device_admin should be shown or not. -->
    <bool name="config_show_manage_device_admin">true</bool>

    <!-- Whether unlock_set_or_change should be shown or not. -->
    <bool name="config_show_unlock_set_or_change">true</bool>

    <!-- Whether screen_pinning_settings should be shown or not. -->
    <bool name="config_show_screen_pinning_settings">true</bool>

    <!-- Whether manage_trust_agents should be shown or not. -->
    <bool name="config_show_manage_trust_agents">true</bool>

    <!-- Whether show_password should be shown or not. -->
    <bool name="config_show_show_password">true</bool>

    <!-- Whether trust_agent_click_intent should be shown or not. -->
    <bool name="config_show_trust_agent_click_intent">true</bool>

    <!-- Whether wallpaper attribution should be shown or not. -->
    <bool name="config_show_wallpaper_attribution">true</bool>

    <!-- Whether assist_and_voice_input should be shown or not. -->
    <bool name="config_show_assist_and_voice_input">true</bool>

    <!-- Whether reset_dashboard should be shown or not. -->
    <bool name="config_show_reset_dashboard">true</bool>

    <!-- Whether system_update_settings should be shown or not. -->
    <bool name="config_show_system_update_settings">true</bool>

    <!-- Whether device_model should be shown or not. -->
    <bool name="config_show_device_model">true</bool>

    <!-- Whether top_level_accessibility should be shown or not. -->
    <bool name="config_show_top_level_accessibility">true</bool>

    <!-- Whether top_level_battery should be shown or not. -->
    <bool name="config_show_top_level_battery">true</bool>

    <!-- Whether to use compact battery status string. -->
    <bool name="config_use_compact_battery_status">false</bool>

    <!-- Whether top_level_connected_devices should be shown or not. -->
    <bool name="config_show_top_level_connected_devices">true</bool>

    <!-- Whether top_level_display should be shown or not. -->
    <bool name="config_show_top_level_display">true</bool>

    <!-- Whether wifi_ip_address should be shown or not. -->
    <bool name="config_show_wifi_ip_address">true</bool>

    <!-- Whether wifi_mac_address should be shown or not. -->
    <bool name="config_show_wifi_mac_address">true</bool>

    <!-- Whether to disable "Uninstall Updates" menu item for System apps or not. -->
    <bool name="config_disable_uninstall_update">false</bool>

    <!-- Slice Uri to query nearby devices. -->
    <string name="config_nearby_devices_slice_uri" translatable="false">content://com.google.android.gms.nearby.fastpair/device_status_list_item</string>

    <!-- BT Slice intent action. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice intent action. -->
    <string name="config_bt_slice_intent_action" translatable="false"></string>
    <!-- BT Slice pending intent action. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice pending intent action. -->
    <string name="config_bt_slice_pending_intent_action" translatable="false"></string>
    <!-- BT Slice EXTRA_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_INTENT. -->
    <string name="config_bt_slice_extra_intent" translatable="false"></string>
    <!-- BT Slice EXTRA_PENDING_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_PENDING_INTENT. -->
    <string name="config_bt_slice_extra_pending_intent" translatable="false"></string>

    <!-- Grayscale settings intent -->
    <string name="config_grayscale_settings_intent" translatable="false"></string>

    <!-- List containing the injected tile keys which are suppressed. -->
    <string-array name="config_suppress_injected_tile_keys" translatable="false"/>

    <!-- Reset application package name -->
    <string-array name="config_skip_reset_apps_package_name" translatable="false">
        <item>android</item>
        <item>com.android.providers.downloads</item>
        <item>com.android.systemui</item>
        <item>com.android.vending</item>
    </string-array>

    <!-- Settings panel keeps observe this uri -->
    <string-array name="config_panel_keep_observe_uri" translatable="false">
        <item>content://com.android.settings.slices/intent/media_output_indicator</item>
    </string-array>

    <!-- List containing the apps cannot be changed the battery optimize modes -->
    <string-array name="config_disable_optimization_mode_apps" translatable="false">
    </string-array>

    <!-- Uri to query non-public Slice Uris. -->
    <string name="config_non_public_slice_query_uri" translatable="false"></string>

    <!-- RTT setting intent action -->
    <string name="config_rtt_setting_intent_action" translatable="false"></string>

    <!-- Package name of dialer supports RTT setting-->
    <string name="config_rtt_setting_package_name" translatable="false"></string>

    <!-- Whether nfc detection point preview image is available or not. -->
    <bool name="config_nfc_detection_point">false</bool>

    <!-- Whether to show Smooth Display feature in Settings Options -->
    <bool name="config_show_smooth_display">false</bool>

    <!-- Whether to show emergency settings in top-level Settings -->
    <bool name="config_show_emergency_settings">true</bool>

    <!-- Whether to show emergency gesture in Settings -->
    <bool name="config_show_emergency_gesture_settings">true</bool>

    <!-- Optional package name if another 1p app wants to take over the emergency gesture settings UI -->
    <string name="emergency_gesture_settings_package"></string>

    <!-- Whether to show the Preference for Adaptive connectivity -->
    <bool name="config_show_adaptive_connectivity">false</bool>

    <!-- Authority of advanced device battery prediction -->
    <string name="config_battery_prediction_authority" translatable="false"></string>

    <!-- Whether to handle slot change events -->
    <bool name="config_handle_sim_slot_change">false</bool>

    <!-- whether use partner overlay theme for outside setupwizard flow -->
    <bool name="config_suc_use_partner_resource">false</bool>

    <!-- Cell broacast receiver package name -->
    <string name="config_cell_broadcast_receiver_package" translatable="false">com.android.cellbroadcastreceiver.module</string>

    <!-- These media Uri are not defined in framework yet. Replace with framework defined variables once it's available. -->
    <!-- Media Uri to view images storage category. -->
    <string name="config_images_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/images_root</string>

    <!-- Media Uri to view videos storage category. -->
    <string name="config_videos_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/videos_root</string>

    <!-- Media Uri to view audio storage category. -->
    <string name="config_audio_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/audio_root</string>

    <!-- Media Uri to view documents & other storage category. -->
    <string name="config_documents_and_other_storage_category_uri" translatable="false">content://com.android.providers.media.documents/root/documents_root</string>

    <!-- Whether to show Smart Storage toggle -->
    <bool name="config_show_smart_storage_toggle">true</bool>

    <!-- Display settings screen, Color mode options. Must be the same length and order as
         config_color_mode_options_values below. Only the values that also appear in
         frameworks/base/core/res/res/values/config.xml's config_availableColorModes are shown. -->
    <string-array name="config_color_mode_options_strings" translatable="false">
        <item>@string/color_mode_option_natural</item>
        <item>@string/color_mode_option_boosted</item>
        <item>@string/color_mode_option_saturated</item>
        <item>@string/color_mode_option_automatic</item>
    </string-array>

    <!-- Display settings screen, Color mode options. Must be the same length and order as
         config_color_mode_options_strings above. Only the values that also appear in
         frameworks/base/core/res/res/values/config.xml's config_availableColorModes are shown. -->
    <integer-array name="config_color_mode_options_values" translatable="false">
        <item>0</item>
        <item>1</item>
        <item>2</item>
        <item>3</item>
    </integer-array>

    <!-- App aspect ratio settings screen, user aspect ratio override options. Must be the same
         length and order as config_userAspectRatioOverrideValues below. -->
    <string-array name="config_userAspectRatioOverrideEntries" translatable="false">
        <item>@string/user_aspect_ratio_app_default</item>
        <item>@string/user_aspect_ratio_fullscreen</item>
        <item>@string/user_aspect_ratio_half_screen</item>
        <item>@string/user_aspect_ratio_device_size</item>
        <item>@string/user_aspect_ratio_16_9</item>
        <item>@string/user_aspect_ratio_4_3</item>
        <item>@string/user_aspect_ratio_3_2</item>
    </string-array>

    <!-- App aspect ratio settings screen, user aspect ratio override options. Must be the same
         length and order as config_userAspectRatioOverrideEntries above. The values must
         correspond to PackageManager.UserMinAspectRatio -->
    <integer-array name="config_userAspectRatioOverrideValues" translatable="false">
        <item>0</item> <!-- USER_MIN_ASPECT_RATIO_UNSET -->
        <item>6</item> <!-- USER_MIN_ASPECT_RATIO_FULLSCREEN -->
        <item>1</item> <!-- USER_MIN_ASPECT_RATIO_SPLIT_SCREEN -->
        <item>2</item> <!-- USER_MIN_ASPECT_RATIO_DISPLAY_SIZE -->
        <item>4</item> <!-- USER_MIN_ASPECT_RATIO_16_9 -->
        <item>3</item> <!-- USER_MIN_ASPECT_RATIO_4_3 -->
        <item>5</item> <!-- USER_MIN_ASPECT_RATIO_3_2 -->
    </integer-array>

    <!-- The settings/preference description for each settable device state defined in the array
         "config_perDeviceStateRotationLockDefaults".
         The item in position "i" describes the auto-rotation setting for the device state also in
         position "i" in the array "config_perDeviceStateRotationLockDefaults". -->
    <string-array name="config_settableAutoRotationDeviceStatesDescriptions">
        <!-- Example:
            <item>Auto-rotate when folded</item>
            <item>@null</item> No description for state in position 1
            <item>Auto-rotate when unfolded</item>
        -->
    </string-array>

    <!-- The option list for switch screen resolution -->
    <string-array name="config_screen_resolution_options_strings" translatable="false">
        <item>@string/screen_resolution_option_high</item>
        <item>@string/screen_resolution_option_full</item>
    </string-array>

    <!-- Whether to aggregate for network selection list-->
    <bool name="config_network_selection_list_aggregation_enabled">false</bool>

    <!-- Max network scan search time in seconds -->
    <integer name="config_network_scan_helper_max_search_time_sec">300</integer>

    <!-- Whether to give option to add restricted profiles -->
    <bool name="config_offer_restricted_profiles">false</bool>

    <!-- An array of packages for which Applications whose per-app locale cannot be changed. -->
    <string-array name="config_disallowed_app_localeChange_packages" translatable="false">
        <!--
        <item>com.example.package.first</item>
        <item>com.example.package.second</item>
        <item>...</item>
        -->
    </string-array>

    <!-- The ratio to use when using the two-pane settings layout -->
    <item name="config_activity_embed_split_ratio" format="float" type="dimen">0.3636</item>

    <!-- The number of visible app icons while entering app list related pages for preloading.
         Take the "Unrestricted data" page as the example, the visible app icons could be 15
         on 6.4 inches screen size whether the font size and display size are both small. -->
    <integer name="config_num_visible_app_icons">20</integer>

    <!-- Whether the dream setup activity should be enabled as part of setupwizard -->
    <bool name="dream_setup_supported">false</bool>

    <!-- Whether to show communal settings at the top level. -->
    <bool name="config_show_communal_settings">false</bool>

    <!-- The extra value for battery tip -->
    <integer name="config_battery_extra_tip_value">12</integer>

    <!-- Whether to enable the advanced vpn feature. The default is not to. -->
    <bool name="config_advanced_vpn_enabled">false</bool>

    <!-- An array of uid name for which packages exempt from Wi-Fi permission check. -->
    <string-array name="config_exempt_wifi_permission_uid_name" translatable="false">
        <item>@string/config_settingsintelligence_package_name</item>
        <item>android.uid.system:1000</item>
    </string-array>

    <!-- The default value for RedactionInterstitial in SUW -->
    <bool name="default_allow_sensitive_lockscreen_content">true</bool>

    <!-- Whether to enable the app battery usage list page feature. -->
    <bool name="config_app_battery_usage_list_enabled">true</bool>

    <!-- Whether sim related information is visible to the end user. -->
    <bool name="config_show_sim_info">true</bool>

    <!-- In the case of receiving both help and progress message, display progress message. -->
    <bool name="enrollment_progress_priority_over_help">false</bool>
    <!-- Prioritize help message by their occurrence -->
    <bool name="enrollment_prioritize_acquire_messages">false</bool>
    <!-- Control messages displayed during enrollment -->
    <bool name="enrollment_message_display_controller_flag">false</bool>

    <!-- Whether the toggle for Auto-rotate with Face Detection should be shown. -->
    <bool name="config_auto_rotate_face_detection_available">true</bool>

    <!-- Whether to display the 3G option at network mode.-->
    <bool name="config_display_network_mode_3g_option">true</bool>

    <!-- The radius of the enrollment progress bar, in dp -->
    <integer name="config_udfpsEnrollProgressBar" translatable="false">
        280
    </integer>

    <!-- Default udfps icon. Same path as ic_fingerprint.xml -->
    <string name="config_udfpsIcon" translatable="false">
        M25.5,16.3283C28.47,14.8433 31.9167,14 35.5834,14C39.2501,14 42.6968,14.8433 45.6668,16.3283
        M20,28.6669C22.7683,24.3402 28.7084,21.3335 35.5834,21.3335C42.4585,21.3335 48.3985,
        24.3402 51.1669,28.6669
        M22.8607,47.0002C21.834,44.3235 21.834,41.5002 21.834,41.5002C21.834,
        34.4051 27.7374,28.6667 35.5841,28.6667C43.4308,28.6667 49.3341,34.4051 49.3341,41.5002
        M49.3344,41.5003V42.0319C49.3344,44.7636 47.1161,47.0003 44.3661,47.0003C41.9461,
        47.0003 39.8744,45.2403 39.471,42.857L38.9577,
        39.7769C38.591,37.5953 36.7027,36.0002 34.5027,
        36.0002C26.5826,36.0002 29.846,49.1087 35.291,50.6487
        M44.9713,54.6267C42.5513,56.7167 39.2879,58.0001 35.5846,58.0001C32.2296,
        58.0001 29.2229,56.9551 26.8945,55.195
    </string>

    <!-- Whether auto data switching on secondary SIM enables cross-SIM calling on both SIMs. -->
    <bool name="config_auto_data_switch_enables_cross_sim_calling">false</bool>

    <!-- Whether checking adaptive charging to define battery manager visibility. -->
    <bool name="config_battery_manager_consider_ac">false</bool>

    <!-- Whether to display Cloned Apps page in Settings (Settings > Apps > Cloned Apps).-->
    <bool name="config_cloned_apps_page_enabled">false</bool>

    <!-- Certificates of apps which are allowed to use activity embedding with Settings.-->
    <string-array name="config_known_host_certs" translatable="false">
        <item></item>
    </string-array>

    <!-- List of packages that should be hidden for MVNO. Do not translate -->
    <string-array name="datausage_hiding_carrier_service_package_names" translatable="false"/>

    <!-- List of MVNO. Do not translate -->
    <integer-array name="datausage_hiding_carrier_service_carrier_id" translatable="false"/>
</resources>
