<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 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.
-->

<!-- NOTE: Many variables that used to be in this file have been migrated to
     CarrierConfigManager.java. Please consider whether new variables belong
     there before adding to this file. Variables here should be more closely
     related to devices than to networks. -->

<!-- Phone app resources that may need to be customized
     for different hardware or product builds. -->
<resources>
    <!-- Flag indicating whether the Phone app should ignore
         EVENT_SIM_NETWORK_LOCKED events from the Sim.  If true, this will
         prevent the IccNetworkDepersonalizationPanel from being shown,
         and effectively disable the "Sim network lock" feature. -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL -->
    <bool name="ignore_sim_network_locked_events">false</bool>

    <!-- Flag indicating whether the Phone app should provide
         a "Dismiss" button on the SIM network unlock screen.
         The default value is true.
         If set to false, there will be *no way* to dismiss the SIM
         network unlock screen if you don't enter the correct unlock code.
         (One important consequence: there will be no way to make an
         Emergency Call if your SIM is network-locked and you don't know
         the PIN.) -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL -->
    <bool name="sim_network_unlock_allow_dismiss">true</bool>

    <!-- OTA configuration values, used when provisioning CDMA devices.
         Following defaults values of zero means OTA UI is completely disabled.
         These OTA UI can be enabled by setting config value to one in the product
         specific overlay file -->

    <!-- Determine whether we want to display the OTA activation screen, which
         gives the user option to activate or cancel -->
    <integer name="OtaShowActivationScreen">1</integer>
    <!-- Determine whether we should show the "listen for instructions" screen after
         successfully placing the OTA call -->
    <integer name="OtaShowListeningScreen">0</integer>
    <!-- The number of times we should show the activation screen/allow the provisioning
         to fail before just showing an unsuccessful dialog -->
    <integer name="OtaShowActivateFailTimes">0</integer>
    <!-- Determine whether or not we should play the success/failure tone -->
    <integer name="OtaPlaySuccessFailureTone">0</integer>

    <!-- Flag indicating if the phone is a world phone -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_WORLD_PHONE_BOOL -->
    <bool name="world_phone">false</bool>

    <!-- If true, enable vibration (haptic feedback) for key presses
         in the EmergencyDialer activity. The pattern is set on a
         per-platform basis using config_virtualKeyVibePattern.  To be
         consistent with the regular Dialer, this value should agree
         with the corresponding values from config.xml under
         apps/Contacts. -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL -->
    <bool name="config_enable_dialer_key_vibration">true</bool>

    <!-- Flag indicating if hac is enabled -->
    <bool name="hac_enabled">false</bool>

    <!-- Flag indicating if dtmf tone type is enabled -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_DTMF_TYPE_ENABLED_BOOL -->
    <bool name="dtmf_type_enabled">false</bool>

    <!-- Flag indicating if auto retry is enabled -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_AUTO_RETRY_ENABLED_BOOL -->
    <bool name="auto_retry_enabled">false</bool>

    <!-- Determine whether we want to play local DTMF tones in a call, or
         just let the radio/BP handle playing of the tones. -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_ALLOW_LOCAL_DTMF_TONES_BOOL -->
    <bool name="allow_local_dtmf_tones">true</bool>

    <!-- If true, show an onscreen "Dial" button in the dialer.
         In practice this is used on all platforms, even the ones with hard SEND/END
         keys, but for maximum flexibility it's controlled by a flag here
         (which can be overridden on a per-product basis.) -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL -->
    <bool name="config_show_onscreen_dial_button">true</bool>

    <!-- Determine whether calls to mute the microphone in PhoneUtils
         are routed through the android.media.AudioManager class (true) or through
         the com.android.internal.telephony.Phone interface (false). -->
    <bool name="send_mic_mute_to_AudioManager">false</bool>

    <!-- Determines if device implements a noise suppression device for in call audio-->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL -->
    <bool name="has_in_call_noise_suppression">false</bool>

    <!-- Determines if the current device should allow emergency numbers
         to be logged in the Call Log.
         (Some carriers require that emergency calls *not* be logged,
         presumably to avoid the risk of accidental redialing from the
         call log UI.  This is a good idea, so the default here is false.)

         TODO: on the other hand, it might still be useful to have some
         record of the emergency calls you've made, or to be able to look
         up the exact date/time of an emergency call.  So perhaps we
         *should* log those calls, but instead fix the call log to disable
         the "call" button for emergency numbers. -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL -->
    <bool name="allow_emergency_numbers_in_call_log">false</bool>

    <!-- If this is true, the SIM card (through Customer Service Profile EF file) will be
         able to prevent manual operator selection. If false, this SIM setting will be
         ignored and manual operator selection will always be available. See
         CPHS4_2.WW6, CPHS B.4.7.1 for more information -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_CSP_ENABLED_BOOL -->
    <bool name="csp_enabled">false</bool>

    <!-- If true, removes the Voice Privacy option from Call Settings -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_VOICE_PRIVACY_DISABLE_UI_BOOL -->
    <bool name="config_voice_privacy_disable">false</bool>

    <!-- Configure certain GsmUmtsOptions to be available or not. The
         default values are in Phone/res/values/config.xml and maybe overridden
         in operator specific resource directories or device specific overlays. -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_APN_EXPAND_BOOL -->
    <bool name="config_apn_expand" translatable="false">true</bool>
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_OPERATOR_SELECTION_EXPAND_BOOL -->
    <bool name="config_operator_selection_expand" translatable="false">true</bool>
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_PREFER_2G_BOOL -->
    <bool name="config_prefer_2g" translatable="false">true</bool>
    <!-- Show enabled lte option for lte device -->
    <bool name="config_enabled_lte" translatable="false">true</bool>
    <!-- Show enabled tdscdma option for device -->
    <bool name="config_support_tdscdma" translatable="false">false</bool>
    <!-- Show enabled tdscdma option for device when connect roaming network -->
    <string-array name="config_support_tdscdma_roaming_on_networks" translatable="false">
    </string-array>
    <!-- Show cdma auto network mode in (glabal) roaming -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_SHOW_CDMA_CHOICES_BOOL -->
    <bool name="config_show_cdma" translatable="false">false</bool>

    <!-- Package name for the default in-call UI and dialer [DO NOT TRANSLATE] -->
    <string name="ui_default_package" translatable="false">com.android.dialer</string>

    <!-- Class name for the default main Dialer activity [DO NOT TRANSLATE] -->
    <string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string>

    <!-- Package name for the mobile network settings [DO NOT TRANSLATE] -->
    <string name="mobile_network_settings_package" translatable="false">com.android.settings</string>
    <!-- Class name for the mobile network settings activity [DO NOT TRANSLATE] -->
    <string name="mobile_network_settings_class" translatable="false">com.android.settings.Settings$MobileNetworkActivity</string>

    <!-- CDMA activation goes through HFA -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_HFA_FOR_PROVISIONING_BOOL -->
    <bool name="config_use_hfa_for_provisioning">false</bool>

    <!-- CDMA activation goes through OTASP.
        TODO: This should be combined with config_use_hfa_for_provisioning and implemented
        as an enum (NONE, HFA, OTASP). -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_OTASP_FOR_PROVISIONING_BOOL -->
    <bool name="config_use_otasp_for_provisioning">false</bool>

    <!-- Display carrier settings menu if true -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_CARRIER_SETTINGS_ENABLE_BOOL -->
    <bool name="config_carrier_settings_enable">false</bool>
    <!-- carrier settings menu -->
    <string name="carrier_settings" translatable="false"></string>
    <string name="carrier_settings_menu" translatable="false"></string>

    <!-- Does not display additional call seting for IMS phone based on GSM Phone -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_ADDITIONAL_CALL_SETTING_BOOL -->
    <bool name="config_additional_call_setting">true</bool>

    <!-- Show APN Settings for some CDMA carriers -->
    <!-- DEPRECATED: Use CarrierConfigManager#KEY_SHOW_APN_SETTING_CDMA_BOOL -->
    <bool name="config_show_apn_setting_cdma">false</bool>

    <!-- Allows the telephony HFA logic to run even if we're not in setup wizard. -->
    <bool name="config_allow_hfa_outside_of_setup_wizard">true</bool>

    <!-- After a CDMA conference call is merged, the swap button should be displayed. -->
    <bool name="support_swap_after_merge" translatable="false">true</bool>

    <!-- Determine whether the voicemail notification is persistent in the notification bar.
         If true, the voicemail notifications cannot be dismissed from the notification bar. -->
    <bool name="voicemail_notification_persistent">false</bool>

    <!-- Disables dialing "*228" (OTASP provisioning) on CDMA carriers where it is not supported or
         is potentially harmful by locking the SIM to 3G. -->
    <string name="config_disable_cdma_activation_code" translatable="false">false</string>

    <!-- Flag indicating if SIM state should be checked before making an outgoing call. -->
    <bool name="config_checkSimStateBeforeOutgoingCall">false</bool>
    <!-- Package name for the SIM unlock dialog.[DO NOT TRANSLATE] -->
    <string name="config_simUnlockUiPackage" translatable="false">@null</string>
    <!-- Class name for the SIM unlock dialog.[DO NOT TRANSLATE] -->
    <string name="config_simUnlockUiClass" translatable="false">@null</string>

    <!-- Flag indicating whether to allow visual voicemail if available on the device.[DO NOT TRANSLATE] -->
    <bool name="allow_visual_voicemail">true</bool>

    <!-- The package to handle visual voicemail if the default dialer or the package
    CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING does not handle it -->
    <string name="system_visual_voicemail_client" translatable="false"/>

    <!-- Flag indicating whether to allow pstn phone accounts [DO NOT TRANSLATE] -->
    <bool name="config_pstn_phone_accounts_enabled">true</bool>

    <!-- Flag indicating whether the the emergency phone account should be emergency calls only -->
    <bool name="config_emergency_account_emergency_calls_only">false</bool>

    <!-- Whether the emergency only account can make emergency calls -->
    <bool name="config_pstnCanPlaceEmergencyCalls">true</bool>

    <!-- The package name for the platform carrier config app, bundled with system image. -->
    <string name="platform_carrier_config_package" translatable="false">com.android.carrierconfig</string>

    <!-- Flag indicating whether the TelephonyConnectionService supports the handover of calls from
         the TelephonyConnectionService to another ConnectionService defined in the system.
         Telecom performs the handover by placing a call using the "to" ConnectionService, and then
         disconnecting the ongoing Telephony call when the call goes active. -->
    <bool name="config_support_handover_from">false</bool>

    <!-- Flag indicating whether the device supports RTT (real-time text) -->
    <bool name="config_support_rtt">false</bool>

    <!-- String indicating the package name of the device ImsService implementation for MMTEL. -->
    <string name="config_ims_mmtel_package" translatable="false"/>

    <!-- String indicating the package name of the device ImsService implementation for RCS. -->
    <string name="config_ims_rcs_package" translatable="false"/>

    <!-- The package name for the platform number verification supplier app. -->
    <string name="platform_number_verification_package" translatable="false"></string>

    <!-- Flag indicating whether a system app can use video calling fallback if carrier video
         calling is not available. -->
    <bool name="config_support_video_calling_fallback">true</bool>

    <!-- Whether the cellular radio is allowed to be power down when the Bluetooth can provide the data/call capabilities -->
    <bool name="config_allowRadioPowerDownOnBluetooth">false</bool>

    <!-- Whether the device supports the AudioManager Telephony audio device and output onto this
         device using {@link AudioDeviceInfo#TYPE_TELEPHONY}.
         When this is true, the Telephony stack is able to add additional audio to the outgoing
         audio stream which the remote party will be able to hear. -->
    <bool name="config_support_telephony_audio_device">false</bool>

    <!-- Whether the device supports dialing emergency RTT calls when there's no SIM card installed
    -->
    <bool name="config_support_simless_emergency_rtt">false</bool>

    <!-- Array of countries that support sim-less emergency RTT calls. Values should be
         ISO3166 country codes in lowercase. -->
    <string-array name="config_simless_emergency_rtt_supported_countries" translatable="false">
        <item>us</item>
    </string-array>

    <string-array translatable="false" name="config_volte_provision_error_on_publish_response">
        <item>403 not authorized for presence</item>
    </string-array>

    <string-array translatable="false" name="config_rcs_provision_error_on_publish_response">
        <item>404 not found</item>
    </string-array>

    <!-- The country list that shortcut view can be enabled. -->
    <string-array name="config_countries_to_enable_shortcut_view" translatable="false">
    </string-array>

    <!-- When an emergency call is placed and the carrier supports network initiated SUPL requests
         for location, this configuration dictates whether or not the modem supports SUPL requests
         being handled on the logical slot that is not currently configured as the default data
         slot. If true, telephony will always try to place the emergency call on the subscription
         associated with default data first, instead of using the default voice configuration.-->
    <bool name="config_gnss_supl_requires_default_data_for_emergency">false</bool>

    <!-- Whether a device can have 5G connection in DSDS mode. It should be true by default, but
         in some devices per modem limitation 5G network can't be connected if two or more SIMs
         are active simultaneously. In that case, this value should be false. -->
    <bool name="config_5g_connection_in_dsds_mode">true</bool>

    <!-- Vibrator pattern to be used as the default for notifications
         that specify DEFAULT_VIBRATE. -->
    <integer-array name="config_defaultNotificationVibePattern">
        <item>0</item>
        <item>350</item>
        <item>250</item>
        <item>350</item>
    </integer-array>

    <!-- String indicating the package name of the device GbaService implementation. -->
    <string name="config_gba_package" translatable="false"/>
    <!-- The interval to release/unbind GbaService after the authentication request
        by millisecond. -1 - no release, 0 - release immediately,
        positive n - release in n milliseconds -->
    <integer name="config_gba_release_time">0</integer>

    <!-- Whether or not to support RCS User Capability Exchange -->
    <bool name="config_rcs_user_capability_exchange_enabled">true</bool>

    <!-- Whether or not to support device to device communication using RTP and DTMF communication
         transports. -->
    <bool name="config_use_device_to_device_communication">false</bool>

    <!-- Whether or not to show notifications for when bluetooth connection is bad during a call -->
    <bool name="enable_bluetooth_call_quality_notification">false</bool>

    <!-- The package names which can request thermal mitigation. -->
    <string-array name="thermal_mitigation_allowlisted_packages" translatable="false">
    </string-array>
</resources>
