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

    <!-- 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">false</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>

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