auto import from //branches/cupcake/...@125939
The Android Open Source Project [Sat, 10 Jan 2009 01:51:25 +0000 (17:51 -0800)]
AndroidManifest.xml
res/drawable/ic_menu_add.png [deleted file]
res/values-fr/strings.xml [new file with mode: 0644]
res/values-it/strings.xml [new file with mode: 0644]
res/values-zh-rCN/strings.xml [new file with mode: 0644]
src/com/android/phone/BluetoothAtPhonebook.java
src/com/android/phone/BluetoothHandsfree.java
src/com/android/phone/InCallMenu.java
src/com/android/phone/InCallScreen.java
src/com/android/phone/PhoneApp.java

index 0de29cc..cef2d6b 100644 (file)
@@ -23,6 +23,7 @@
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
             </intent-filter>
         </receiver>
 
-        <activity android:name="InCallScreen" android:label="@string/phoneIconLabel"
+        <activity android:name="InCallScreen"
+            android:theme="@android:style/Theme.NoTitleBar"
+            android:label="@string/phoneIconLabel"
             android:excludeFromRecents="true"
             android:launchMode="singleInstance"
             android:exported="false" />
diff --git a/res/drawable/ic_menu_add.png b/res/drawable/ic_menu_add.png
deleted file mode 100644 (file)
index 6752bfd..0000000
Binary files a/res/drawable/ic_menu_add.png and /dev/null differ
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644 (file)
index 0000000..4b82a92
--- /dev/null
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsIconLabel">"Contacts"</string>
+    <string name="contactsFavoritesLabel">"Favoris"</string>
+    <string name="dialerIconLabel">"Numérotation"</string>
+    <string name="emergencyDialerIconLabel">"Appels d\'urgence"</string>
+    <string name="phoneIconLabel">"Téléphone"</string>
+    <string name="recentCallsIconLabel">"Journal des appels"</string>
+    <string name="fdnListLabel">"Liste des numéros restreints"</string>
+    <string name="unknown">"Inconnu"</string>
+    <string name="private_num">"Numéro privé"</string>
+    <string name="onHold">"En attente"</string>
+    <string name="ongoing">"Appel en cours"</string>
+    <string name="callFailed_userBusy">"Ligne occupée"</string>
+    <string name="callFailed_congestion">"Réseau occupé"</string>
+    <string name="callFailed_noSignal">"Aucun signal"</string>
+    <string name="callFailed_limitExceeded">"Limite ACM dépassée"</string>
+    <string name="callFailed_powerOff">"Radio éteinte"</string>
+    <string name="callFailed_simError">"Aucune carte SIM ou erreur de carte SIM"</string>
+    <string name="callFailed_outOfService">"Hors de la zone de couverture"</string>
+    <string name="callFailed_fdn_only">"Les appels sortants sont limités par les numéros restreints."</string>
+    <string name="callFailed_cb_enabled">"Vous ne pouvez pas passer d\'appels sortants tant que l\'interdiction d\'appel est activée."</string>
+    <string name="confCall">"Conférence téléphonique"</string>
+    <string name="mmiStarted">"Le code MMI a été lancé."</string>
+    <string name="ussdRunning">"Exécution du code USSD..."</string>
+    <string name="mmiCancelled">"Code MMI annulé"</string>
+    <string name="cancel">"Annuler"</string>
+    <string name="menu_speaker">"Haut-parleur"</string>
+    <string name="menu_bluetooth">"Bluetooth"</string>
+    <string name="menu_mute">"Muet"</string>
+    <string name="menu_hold">"Mettre en attente"</string>
+    <string name="menu_endCall">"Raccrocher"</string>
+    <string name="menu_swapCalls">"Changer d\'appel"</string>
+    <string name="menu_mergeCalls">"Fusionner les appels"</string>
+    <string name="menu_addCall">"Ajouter un appel"</string>
+    <string name="menu_manageConference">"Gérer la conférence téléphonique"</string>
+    <string name="menu_showDialpad">"Afficher le clavier"</string>
+    <string name="menu_hideDialpad">"Masquer le clavier"</string>
+    <!-- no translation found for menu_answerAndHold (8830891495953688905) -->
+    <skip />
+    <!-- no translation found for menu_answerAndEnd (2071708281281611854) -->
+    <skip />
+    <string name="ok">"OK"</string>
+    <!-- no translation found for menuButtonHint (4853215496220101699) -->
+    <skip />
+    <string name="menuButtonKeyboardDialHint">"Appuyez sur Menu pour afficher les options d\'appel  •  Utilisez le clavier pour composer un numéro"</string>
+    <string name="wait_prompt_str">"Envoyer les tonalités suivantes ?"\n</string>
+    <string name="send_button">"Envoyer"</string>
+    <string name="wild_prompt_str">"Remplacer le caractère générique par"</string>
+    <string name="bluetooth_headset_connected">"Le casque Bluetooth est connecté."</string>
+    <string name="bluetooth_headset_disconnected">"Le casque Bluetooth a été déconnecté."</string>
+    <string name="no_vm_number">"Numéro de messagerie vocale non spécifié"</string>
+    <string name="no_vm_number_msg">"Aucun numéro de messagerie vocale n\'est enregistré sur la carte SIM."</string>
+    <string name="add_vm_number_str">"Ajouter un numéro"</string>
+    <string name="dialer_emptyListWorking">"Chargement..."</string>
+    <string name="enterPin">"Saisissez un code PIN pour débloquer la carte SIM."</string>
+    <string name="pinUnlocked">"Carte SIM débloquée"</string>
+    <!-- no translation found for enterNewPin (5311243769004752401) -->
+    <skip />
+    <!-- no translation found for verifyNewPin (2593629913010458867) -->
+    <skip />
+    <string name="verifyFailed">"Les codes PIN de la carte SIM saisis ne correspondent pas. Merci de réessayer."</string>
+    <!-- no translation found for enterPuk (6144749655582862324) -->
+    <skip />
+    <string name="badPuk">"Le code PUK est incorrect !"</string>
+    <string name="buttonTxtContinue">"Continuer"</string>
+    <string name="puk_unlocked">"Votre carte SIM a été débloquée. Votre téléphone se déverrouille..."</string>
+    <!-- no translation found for label_ndp (780479633159517250) -->
+    <skip />
+    <string name="sim_ndp_unlock_text">"Débloquer"</string>
+    <string name="sim_ndp_dismiss_text">"Refuser"</string>
+    <string name="requesting_unlock">"Demande de déblocage du réseau..."</string>
+    <string name="unlock_failed">"Échec de la requête de déblocage du réseau."</string>
+    <string name="unlock_success">"Le réseau a été débloqué."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="labelMore">"Paramètres d\'appel supplémentaires"</string>
+    <string name="apn_settings">"Noms des points d\'accès"</string>
+    <string name="settings_label">"Paramètres réseau"</string>
+    <string name="voicemail">"Messagerie vocale"</string>
+    <string name="voicemail_abbreviated">"MV :"</string>
+    <!-- no translation found for networks (8873030692174541976) -->
+    <skip />
+    <string name="call_settings">"Paramètres d\'appel"</string>
+    <string name="additional_call_settings">"Paramètres d\'appel supplémentaires"</string>
+    <string name="labelCallerId">"Identifiant d\'appel"</string>
+    <string name="sum_hide_caller_id">"Numéro masqué pour les appels sortants"</string>
+    <string name="sum_show_caller_id">"Numéro affiché pour les appels sortants"</string>
+    <string name="sum_default_caller_id">"Utiliser les paramètres d\'opérateur par défaut pour afficher mon numéro lors des appels sortants."</string>
+    <string name="labelCW">"Appel en attente"</string>
+    <!-- no translation found for sum_cw_enabled (8083061901633671397) -->
+    <skip />
+    <!-- no translation found for sum_cw_disabled (3648693907300104575) -->
+    <skip />
+    <string name="call_forwarding_settings">"Paramètres de transfert d\'appel"</string>
+    <string name="labelCF">"Transfert d\'appel"</string>
+    <string name="labelCFU">"Toujours transférer"</string>
+    <string name="messageCFU">"Toujours utiliser ce numéro"</string>
+    <string name="sum_cfu_enabled_indicator">"Transfert de tous les appels"</string>
+    <string name="sum_cfu_enabled">"Transfert de tous les appels à \\\\{0\\\\}"</string>
+    <string name="sum_cfu_disabled">"Désactivé"</string>
+    <string name="labelCFB">"Transférer quand la ligne est occupée"</string>
+    <string name="messageCFB">"Numéro lorsque la ligne est occupée"</string>
+    <string name="sum_cfb_enabled">"Transfert au \\\\{0\\\\}"</string>
+    <string name="sum_cfb_disabled">"Désactivé"</string>
+    <string name="labelCFNRy">"Transférer lorsque vous ne répondez pas"</string>
+    <string name="messageCFNRy">"Numéro lorsque vous ne répondez pas"</string>
+    <string name="sum_cfnry_enabled">"Transfert au \\\\{0\\\\}"</string>
+    <string name="sum_cfnry_disabled">"Désactivé"</string>
+    <string name="labelCFNRc">"Transférer lorsque vous êtes injoignable"</string>
+    <string name="messageCFNRc">"Numéro lorsque vous êtes injoignable"</string>
+    <string name="sum_cfnrc_enabled">"Transfert au \\\\{0\\\\}"</string>
+    <string name="sum_cfnrc_disabled">"Désactivé"</string>
+    <string name="updating_title">"Paramètres d\'appel"</string>
+    <string name="error_updating_title">"Erreur de paramètres d\'appel"</string>
+    <string name="reading_settings">"Lecture des paramètres..."</string>
+    <string name="updating_settings">"Mise à jour des paramètres..."</string>
+    <!-- no translation found for response_error (605758115001863468) -->
+    <skip />
+    <!-- no translation found for exception_error (7027667130619518211) -->
+    <skip />
+    <string name="radio_off_error">"Allumez la radio avant d\'afficher ces paramètres."</string>
+    <string name="close_dialog">"OK"</string>
+    <string name="enable">"Activer"</string>
+    <string name="disable">"Désactiver"</string>
+    <string name="change_num">"Mettre à jour"</string>
+  <string-array name="clir_display_values">
+    <item>"Réseau par défaut"</item>
+    <item>"Masquer le numéro"</item>
+    <item>"Afficher le numéro"</item>
+  </string-array>
+    <string name="vm_save_number">"Enregistrer le numéro de messagerie vocale"</string>
+    <string name="vm_changed">"Le numéro de messagerie vocale a été modifié."</string>
+    <string name="vm_change_failed">"Échec de la modification du numéro de messagerie vocale."</string>
+    <string name="no_change">"Aucune modification n\'a été apportée."</string>
+    <string name="sum_voicemail">"Définir le numéro de la messagerie vocale"</string>
+    <string name="mobile_networks">"Paramètres de réseau mobile"</string>
+    <string name="label_available">"Réseaux disponibles"</string>
+    <string name="load_networks_progress">"Recherche..."</string>
+    <string name="empty_networks_list">"Aucun réseau trouvé."</string>
+    <string name="search_networks">"Chercher les réseaux"</string>
+    <string name="network_query_error">"Une erreur s\'est produite lors de la recherche de réseaux."</string>
+    <string name="register_on_network">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed">"Votre carte SIM ne vous autorise pas à vous connecter à ce réseau."</string>
+    <string name="registration_done">"Enregistré sur le réseau."</string>
+    <string name="sum_carrier_select">"Choisir un opérateur réseau"</string>
+    <string name="sum_search_networks">"Chercher tous les réseaux disponibles"</string>
+    <string name="select_automatically">"Sélectionner automatiquement"</string>
+    <string name="sum_select_automatically">"Sélectionner automatiquement le réseau préféré"</string>
+    <string name="register_automatically">"Enregistrement automatique..."</string>
+    <string name="roaming">"Itinérance des données"</string>
+    <string name="roaming_enable">"Se connecter aux services de données lors de l\'itinérance"</string>
+    <string name="roaming_disable">"Se connecter aux services de données en itinérance"</string>
+    <string name="roaming_reenable_message">"Vous avez été déconnecté car vous avez quitté votre réseau alors que l\'itinérance des données était désactivée."</string>
+    <string name="roaming_turn_it_on_button">"Activer"</string>
+    <string name="roaming_warning">"Autoriser l\'itinérance des données ? Vous risquez de devoir payer des frais d\'itinérance importants !"</string>
+    <string name="roaming_reenable_title">"Attention"</string>
+    <string name="prefer_2g">"Utiliser uniquement les réseaux 2G"</string>
+    <!-- no translation found for prefer_2g_summary (1976491403210690759) -->
+    <skip />
+    <!-- no translation found for fdn (7878832555095183202) -->
+    <skip />
+    <!-- no translation found for manage_fdn_list (8777755791892122369) -->
+    <skip />
+    <string name="fdn_activation">"Activation des numéros restreints"</string>
+    <string name="fdn_enabled">"Les numéros restreints sont activés."</string>
+    <string name="fdn_disabled">"Les numéros restreints sont désactivés."</string>
+    <string name="enable_fdn">"Activer les numéros restreints"</string>
+    <string name="disable_fdn">"Désactiver les numéros restreints"</string>
+    <string name="change_pin2">"Modifier le code PIN2"</string>
+    <!-- no translation found for enable_fdn_ok (7215588870329688132) -->
+    <skip />
+    <!-- no translation found for disable_fdn_ok (5727046928930740173) -->
+    <skip />
+    <string name="sum_fdn">"Gérer les numéros restreints"</string>
+    <string name="sum_fdn_change_pin">"Modifier le code PIN pour l\'accès aux numéros restreints"</string>
+    <string name="sum_fdn_manage_list">"Gérer la liste des numéros de téléphone"</string>
+    <string name="open_keyboard">"Ouvrez le clavier pour saisir le numéro ou le code."</string>
+    <string name="menu_add">"Ajouter un contact"</string>
+    <string name="menu_edit">"Modifier le contact"</string>
+    <string name="menu_delete">"Effacer le contact"</string>
+    <string name="get_pin2">"Saisir le code PIN2"</string>
+    <string name="name">"Nom"</string>
+    <string name="number">"Numéro"</string>
+    <string name="save">"Enregistrer"</string>
+    <string name="add_fdn_contact">"Ajouter un contact à numéro restreint"</string>
+    <string name="adding_fdn_contact">"Ajout d\'un contact à numéro restreint..."</string>
+    <string name="fdn_contact_added">"Un contact à numéro restreint a été ajouté."</string>
+    <string name="edit_fdn_contact">"Modifier le contact à numéro restreint"</string>
+    <string name="updating_fdn_contact">"Mise à jour du contact à numéro restreint..."</string>
+    <string name="fdn_contact_updated">"Contact à numéro restreint mis à jour."</string>
+    <string name="delete_fdn_contact">"Effacer le contact à numéro restreint"</string>
+    <string name="deleting_fdn_contact">"Effacement du contact à numéro restreint..."</string>
+    <string name="fdn_contact_deleted">"Le contact à numéro restreint a été effacé."</string>
+    <string name="pin2_invalid">"Le code PIN2 n\'est pas valide !"</string>
+    <string name="fdn_invalid_number">"Le numéro doit comporter 20 chiffres au maximum."</string>
+    <string name="simContacts_emptyLoading">"Lecture de la carte SIM..."</string>
+    <string name="simContacts_empty">"Aucun contact n\'a été trouvé sur votre carte SIM."</string>
+    <string name="simContacts_title">"Sélectionner les contacts à importer"</string>
+    <string name="enable_pin">"Activer/désactiver le code PIN de la carte SIM"</string>
+    <string name="change_pin">"Modifier le code PIN de la carte SIM"</string>
+    <!-- no translation found for enter_pin_text (8532615714751931951) -->
+    <skip />
+    <string name="oldPinLabel">"Ancien code PIN"</string>
+    <string name="newPinLabel">"Nouveau code PIN"</string>
+    <string name="confirmPinLabel">"Confirmer le nouveau code PIN"</string>
+    <string name="badPin">"L\'ancien code PIN saisi est incorrect. Merci de réessayer."</string>
+    <string name="mismatchPin">"Les codes PIN saisis ne correspondent pas. Merci de réessayer."</string>
+    <string name="invalidPin">"Saisissez un code PIN comprenant 4 à 8 chiffres."</string>
+    <string name="disable_sim_pin">"Désactiver le code PIN de la carte SIM"</string>
+    <string name="enable_sim_pin">"Activer le code PIN de la carte SIM"</string>
+    <string name="enable_in_progress">"Merci de patienter..."</string>
+    <string name="enable_pin_ok">"Le code PIN de la carte SIM est activé"</string>
+    <string name="disable_pin_ok">"Code PIN de la carte SIM désactivé"</string>
+    <string name="pin_failed">"Le code PIN saisi était incorrect."</string>
+    <string name="pin_changed">"Le code PIN de la carte SIM a été modifié."</string>
+    <string name="puk_requested">"Le mot de passe est incorrect. La carte SIM est bloquée ! Code PUK2 requis."</string>
+    <!-- no translation found for enter_pin2_text (8339444124477720345) -->
+    <skip />
+    <string name="oldPin2Label">"Ancien code PIN2"</string>
+    <string name="newPin2Label">"Nouveau code PIN2"</string>
+    <string name="confirmPin2Label">"Confirmer le nouveau code PIN2"</string>
+    <string name="badPuk2">"Le code PIN2 saisi est incorrect. Merci de réessayer."</string>
+    <string name="badPin2">"L\'ancien code PIN2 saisi est incorrect. Merci de réessayer."</string>
+    <string name="mismatchPin2">"Les codes PIN2 saisis ne correspondent pas. Merci de réessayer."</string>
+    <string name="invalidPin2">"Saisissez un code PIN2 comprenant 4 à 8 chiffres."</string>
+    <string name="invalidPuk2">"Saisissez un code PUK2 à 8 chiffres."</string>
+    <string name="pin2_changed">"Le code PIN2 a été modifié."</string>
+    <string name="label_puk2_code">"Saisissez le code PUK2."</string>
+    <string name="fdn_enable_puk2_requested">"Le mot de passe est incorrect. Modifiez le code PIN2 et réessayez !"</string>
+    <string name="puk2_requested">"Le mot de passe est incorrect. La carte SIM est bloquée ! Code PUK2 requis."</string>
+    <string name="doneButton">"Terminé"</string>
+    <string name="caller_manage_header">"Conférence téléphonique <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="caller_manage_manage_done_text">"Retour à l\'appel"</string>
+    <string name="sim_missing_continueView_text">"Continuer sans carte SIM"</string>
+    <string name="sim_missing_msg_text">"Aucune carte SIM n\'a été trouvée. Insérez une carte SIM dans le téléphone."</string>
+    <string name="sim_unlock_dismiss_text">"Refuser"</string>
+    <string name="sim_unlock_unlock_text">"Débloquer"</string>
+    <string name="sim_unlock_status_text">"Authentification du code PIN..."</string>
+    <string name="voicemail_settings_number_label">"Numéro de la messagerie vocale"</string>
+    <string name="card_title_dialing">"Numérotation"</string>
+    <!-- no translation found for card_title_in_progress (8603765629781648862) -->
+    <skip />
+    <string name="card_title_conf_call">"Conférence téléphonique"</string>
+    <string name="card_title_incoming_call">"Appel entrant"</string>
+    <string name="card_title_call_ended">"Fin de l\'appel"</string>
+    <string name="card_title_on_hold">"En attente"</string>
+    <!-- no translation found for card_title_hanging_up (3999101620995182450) -->
+    <skip />
+    <string name="notification_missedCallTitle">"Appel manqué"</string>
+    <string name="notification_missedCallsTitle">"Appels manqués"</string>
+    <string name="notification_missedCallsMsg">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
+    <string name="notification_missedCallTicker">"Appel manqué de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call_format">"Appel en cours (<xliff:g id="DURATION">%s</xliff:g>)"</string>
+    <string name="notification_on_hold">"En attente"</string>
+    <string name="notification_voicemail_title">"Nouvelle messagerie vocale"</string>
+    <string name="notification_voicemail_text_format">"Composer le <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number">"Numéro de messagerie vocale inconnu"</string>
+    <!-- no translation found for incall_error_power_off (6550191216405193368) -->
+    <skip />
+    <string name="incall_error_emergency_only">"Non enregistré sur le réseau."</string>
+    <string name="incall_error_no_phone_number_supplied">"L\'appel n\'a pas été effectué. Le numéro composé n\'est pas valide."</string>
+    <string name="incall_error_call_failed">"L\'appel n\'a pas été effectué."</string>
+    <string name="incall_status_dialed_mmi">"Lancement de la séquence MMI..."</string>
+    <string name="incall_error_supp_service_unknown">"Ce service n\'est pas pris en charge."</string>
+    <string name="incall_error_supp_service_switch">"Impossible de changer d\'appel."</string>
+    <string name="incall_error_supp_service_separate">"Impossible de dissocier l\'appel"</string>
+    <string name="incall_error_supp_service_transfer">"Impossible de transférer l\'appel."</string>
+    <string name="incall_error_supp_service_conference">"Impossible d\'effectuer des conférences téléphoniques."</string>
+    <string name="incall_error_supp_service_reject">"Impossible de refuser l\'appel."</string>
+    <string name="incall_error_supp_service_hangup">"Impossible de libérer le(s) appel(s)."</string>
+    <string name="emergency_enable_radio_dialog_title">"Appel d\'urgence"</string>
+    <!-- no translation found for emergency_enable_radio_dialog_message (207613549344420291) -->
+    <skip />
+    <string name="emergency_enable_radio_dialog_retry">"Hors de la zone de couverture. Nouvelle tentative..."</string>
+    <string name="dial_emergency_error">"L\'appel n\'a pas été effectué. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> n\'est pas un numéro d\'urgence !"</string>
+    <string name="dial_emergency_empty_error">"L\'appel n\'a pas été effectué. Composez un numéro d\'urgence !"</string>
+    <string name="dialerKeyboardHintText">"Utilisez le clavier pour composer un numéro."</string>
+    <!-- no translation found for dtmfDialpadHintText (2153335217920679451) -->
+    <skip />
+    <string name="importSimEntry">"Importer"</string>
+    <string name="importAllSimEntries">"Importer tout"</string>
+    <string name="importingSimContacts">"Importation des contacts SIM"</string>
+    <!-- no translation found for importToFDNfromContacts (2130620207013368580) -->
+    <skip />
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
new file mode 100644 (file)
index 0000000..7f4733b
--- /dev/null
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsIconLabel">"Contatti"</string>
+    <string name="contactsFavoritesLabel">"Preferiti"</string>
+    <string name="dialerIconLabel">"Dialer"</string>
+    <string name="emergencyDialerIconLabel">"Dialer di emergenza"</string>
+    <string name="phoneIconLabel">"Telefono"</string>
+    <string name="recentCallsIconLabel">"Reg. chiamate"</string>
+    <string name="fdnListLabel">"Elenco FDN"</string>
+    <string name="unknown">"Sconosciuto"</string>
+    <string name="private_num">"Numero privato"</string>
+    <string name="onHold">"In attesa"</string>
+    <string name="ongoing">"Chiamata corrente"</string>
+    <string name="callFailed_userBusy">"Linea occupata"</string>
+    <string name="callFailed_congestion">"Rete occupata"</string>
+    <string name="callFailed_noSignal">"Nessun segnale"</string>
+    <string name="callFailed_limitExceeded">"Limite ACM superato"</string>
+    <string name="callFailed_powerOff">"Radio spenta"</string>
+    <string name="callFailed_simError">"Nessuna SIM o errore della SIM"</string>
+    <string name="callFailed_outOfService">"Area non coperta dal servizio"</string>
+    <string name="callFailed_fdn_only">"Chiamate in uscita limitate da FDN."</string>
+    <string name="callFailed_cb_enabled">"Impossibile effettuare chiamate in uscita con il blocco chiamate attivo."</string>
+    <string name="confCall">"Conferenza audio"</string>
+    <string name="mmiStarted">"Codice MMI avviato"</string>
+    <string name="ussdRunning">"Esecuzione codice USSD..."</string>
+    <string name="mmiCancelled">"Codice MMI annullato"</string>
+    <string name="cancel">"Annulla"</string>
+    <string name="menu_speaker">"Altoparlante"</string>
+    <string name="menu_bluetooth">"Bluetooth"</string>
+    <string name="menu_mute">"Disattiva audio"</string>
+    <string name="menu_hold">"In attesa"</string>
+    <string name="menu_endCall">"Chiudi chiamata"</string>
+    <string name="menu_swapCalls">"Scambia chiamate"</string>
+    <string name="menu_mergeCalls">"Unisci chiamate"</string>
+    <string name="menu_addCall">"Aggiungi chiamata"</string>
+    <string name="menu_manageConference">"Gestisci conferenza audio"</string>
+    <string name="menu_showDialpad">"Mostra dialpad"</string>
+    <string name="menu_hideDialpad">"Nascondi dialpad"</string>
+    <!-- no translation found for menu_answerAndHold (8830891495953688905) -->
+    <skip />
+    <!-- no translation found for menu_answerAndEnd (2071708281281611854) -->
+    <skip />
+    <string name="ok">"OK"</string>
+    <!-- no translation found for menuButtonHint (4853215496220101699) -->
+    <skip />
+    <string name="menuButtonKeyboardDialHint">"Premi Menu per opzioni chiamata  •  Usa tastiera per comporre"</string>
+    <string name="wait_prompt_str">"Inviare i numeri successivi?"\n</string>
+    <string name="send_button">"Invia"</string>
+    <string name="wild_prompt_str">"Sostituisci carattere jolly con"</string>
+    <string name="bluetooth_headset_connected">"Auricolare Bluetooth collegato."</string>
+    <string name="bluetooth_headset_disconnected">"Auricolare Bluetooth scollegato."</string>
+    <string name="no_vm_number">"Numero segreteria mancante"</string>
+    <string name="no_vm_number_msg">"Nessun numero di segreteria presente nella SIM."</string>
+    <string name="add_vm_number_str">"Aggiungi numero"</string>
+    <string name="dialer_emptyListWorking">"Caricamento..."</string>
+    <string name="enterPin">"Digita il codice PIN per sbloccare la SIM."</string>
+    <string name="pinUnlocked">"SIM sbloccata"</string>
+    <!-- no translation found for enterNewPin (5311243769004752401) -->
+    <skip />
+    <!-- no translation found for verifyNewPin (2593629913010458867) -->
+    <skip />
+    <string name="verifyFailed">"I PIN della SIM inseriti non corrispondono. Riprova."</string>
+    <!-- no translation found for enterPuk (6144749655582862324) -->
+    <skip />
+    <string name="badPuk">"Codice PUK errato."</string>
+    <string name="buttonTxtContinue">"Continua"</string>
+    <string name="puk_unlocked">"La SIM è stata sbloccata. Sblocco del telefono in corso..."</string>
+    <!-- no translation found for label_ndp (780479633159517250) -->
+    <skip />
+    <string name="sim_ndp_unlock_text">"Sblocca"</string>
+    <string name="sim_ndp_dismiss_text">"Chiudi"</string>
+    <string name="requesting_unlock">"Richiesta sblocco rete..."</string>
+    <string name="unlock_failed">"Richiesta di sblocco della rete respinta."</string>
+    <string name="unlock_success">"Sblocco della rete riuscito."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="labelMore">"Altre impostazioni chiamate"</string>
+    <string name="apn_settings">"Nomi punti di accesso"</string>
+    <string name="settings_label">"Impostazioni di rete"</string>
+    <string name="voicemail">"Segreteria"</string>
+    <string name="voicemail_abbreviated">"ST:"</string>
+    <!-- no translation found for networks (8873030692174541976) -->
+    <skip />
+    <string name="call_settings">"Impostazioni chiamate"</string>
+    <string name="additional_call_settings">"Altre impostazioni chiamate"</string>
+    <string name="labelCallerId">"ID chiamante"</string>
+    <string name="sum_hide_caller_id">"Numero nascosto per chiamate in uscita"</string>
+    <string name="sum_show_caller_id">"Numero visualizzato in chiamate in uscita"</string>
+    <string name="sum_default_caller_id">"Usa impostazioni predefinite operatore per visualizzare il mio numero in chiamate in uscita"</string>
+    <string name="labelCW">"Avviso di chiamata"</string>
+    <!-- no translation found for sum_cw_enabled (8083061901633671397) -->
+    <skip />
+    <!-- no translation found for sum_cw_disabled (3648693907300104575) -->
+    <skip />
+    <string name="call_forwarding_settings">"Deviazione chiamate"</string>
+    <string name="labelCF">"Deviazione chiamate"</string>
+    <string name="labelCFU">"Devia sempre"</string>
+    <string name="messageCFU">"Usa sempre questo numero"</string>
+    <string name="sum_cfu_enabled_indicator">"Deviazione di tutte le chiamate"</string>
+    <string name="sum_cfu_enabled">"Deviazione di tutte le chiamate al numero \\\\{0\\\\}"</string>
+    <string name="sum_cfu_disabled">"Disattivato"</string>
+    <string name="labelCFB">"Devia se occupato"</string>
+    <string name="messageCFB">"Numero se occupato"</string>
+    <string name="sum_cfb_enabled">"Deviazione al numero \\\\{0\\\\}"</string>
+    <string name="sum_cfb_disabled">"Disattivato"</string>
+    <string name="labelCFNRy">"Devia se non si risponde"</string>
+    <string name="messageCFNRy">"Numero se non si risponde"</string>
+    <string name="sum_cfnry_enabled">"Deviazione al numero \\\\{0\\\\}"</string>
+    <string name="sum_cfnry_disabled">"Disattivato"</string>
+    <string name="labelCFNRc">"Devia se non raggiungibile"</string>
+    <string name="messageCFNRc">"Numero se non raggiungibile"</string>
+    <string name="sum_cfnrc_enabled">"Deviazione al numero \\\\{0\\\\}"</string>
+    <string name="sum_cfnrc_disabled">"Disattivato"</string>
+    <string name="updating_title">"Impostazioni chiamate"</string>
+    <string name="error_updating_title">"Errore durante aggiornamento impostazioni chiamate"</string>
+    <string name="reading_settings">"Lettura impostazioni..."</string>
+    <string name="updating_settings">"Aggiornamento impostazioni..."</string>
+    <!-- no translation found for response_error (605758115001863468) -->
+    <skip />
+    <!-- no translation found for exception_error (7027667130619518211) -->
+    <skip />
+    <string name="radio_off_error">"Accendi il modulo radio prima di visualizzare queste impostazioni."</string>
+    <string name="close_dialog">"OK"</string>
+    <string name="enable">"Attiva"</string>
+    <string name="disable">"Disattiva"</string>
+    <string name="change_num">"Aggiorna"</string>
+  <string-array name="clir_display_values">
+    <item>"Rete predefinita"</item>
+    <item>"Nascondi numero"</item>
+    <item>"Mostra numero"</item>
+  </string-array>
+    <string name="vm_save_number">"Salva numero segreteria"</string>
+    <string name="vm_changed">"Numero segreteria modificato."</string>
+    <string name="vm_change_failed">"Modifica del numero della segreteria non riuscita."</string>
+    <string name="no_change">"Nessuna modifica effettuata."</string>
+    <string name="sum_voicemail">"Imposta numero segreteria"</string>
+    <string name="mobile_networks">"Impostazioni rete cellulare"</string>
+    <string name="label_available">"Reti disponibili"</string>
+    <string name="load_networks_progress">"Ricerca..."</string>
+    <string name="empty_networks_list">"Nessuna rete trovata."</string>
+    <string name="search_networks">"Cerca reti"</string>
+    <string name="network_query_error">"Errore durante la ricerca di reti."</string>
+    <string name="register_on_network">"Registrazione su <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed">"La SIM non consente la connessione a questa rete."</string>
+    <string name="registration_done">"Registrato sulla rete."</string>
+    <string name="sum_carrier_select">"Seleziona un operatore di rete"</string>
+    <string name="sum_search_networks">"Cerca tutte le reti disponibili"</string>
+    <string name="select_automatically">"Seleziona automaticamente"</string>
+    <string name="sum_select_automatically">"Seleziona automaticamente la rete preferita"</string>
+    <string name="register_automatically">"Registrazione automatica..."</string>
+    <string name="roaming">"Roaming dati"</string>
+    <string name="roaming_enable">"Connessione a servizi di dati in roaming"</string>
+    <string name="roaming_disable">"Connessione a servizi di dati in roaming"</string>
+    <string name="roaming_reenable_message">"Connettività dati persa: hai lasciato la rete del tuo operatore con il roaming dati disattivato."</string>
+    <string name="roaming_turn_it_on_button">"Attiva"</string>
+    <string name="roaming_warning">"Consenti il roaming dati? I costi potrebbero essere elevati."</string>
+    <string name="roaming_reenable_title">"Attenzione"</string>
+    <string name="prefer_2g">"Usa solo reti 2G"</string>
+    <!-- no translation found for prefer_2g_summary (1976491403210690759) -->
+    <skip />
+    <!-- no translation found for fdn (7878832555095183202) -->
+    <skip />
+    <!-- no translation found for manage_fdn_list (8777755791892122369) -->
+    <skip />
+    <string name="fdn_activation">"Attivazione FDN"</string>
+    <string name="fdn_enabled">"Numeri di selezione fissa attivi"</string>
+    <string name="fdn_disabled">"Numeri di selezione fissa non attivi"</string>
+    <string name="enable_fdn">"Attiva FDN"</string>
+    <string name="disable_fdn">"Disattiva FDN"</string>
+    <string name="change_pin2">"Cambia PIN2"</string>
+    <!-- no translation found for enable_fdn_ok (7215588870329688132) -->
+    <skip />
+    <!-- no translation found for disable_fdn_ok (5727046928930740173) -->
+    <skip />
+    <string name="sum_fdn">"Gestisci numeri di selezione fissa"</string>
+    <string name="sum_fdn_change_pin">"Cambia PIN per accesso FDN"</string>
+    <string name="sum_fdn_manage_list">"Gestisci elenco numeri"</string>
+    <string name="open_keyboard">"Apri la tastiera per digitare."</string>
+    <string name="menu_add">"Aggiungi contatto"</string>
+    <string name="menu_edit">"Modifica contatto"</string>
+    <string name="menu_delete">"Elimina contatto"</string>
+    <string name="get_pin2">"Inserisci PIN2"</string>
+    <string name="name">"Nome"</string>
+    <string name="number">"Numero"</string>
+    <string name="save">"Salva"</string>
+    <string name="add_fdn_contact">"Aggiungi contatto selezione fissa"</string>
+    <string name="adding_fdn_contact">"Aggiunta contatto selezione fissa..."</string>
+    <string name="fdn_contact_added">"Contatto di selezione fissa aggiunto."</string>
+    <string name="edit_fdn_contact">"Modifica contatto selezione fissa"</string>
+    <string name="updating_fdn_contact">"Aggiornamento contatto selezione fissa..."</string>
+    <string name="fdn_contact_updated">"Contatto di selezione fissa aggiornato."</string>
+    <string name="delete_fdn_contact">"Elimina contatto selezione fissa"</string>
+    <string name="deleting_fdn_contact">"Eliminazione contatto selezione fissa..."</string>
+    <string name="fdn_contact_deleted">"Contatto di selezione fissa eliminato."</string>
+    <string name="pin2_invalid">"PIN2 non valido."</string>
+    <string name="fdn_invalid_number">"Il numero non può superare le 20 cifre."</string>
+    <string name="simContacts_emptyLoading">"Lettura da SIM..."</string>
+    <string name="simContacts_empty">"Nessun contatto presente nella SIM."</string>
+    <string name="simContacts_title">"Seleziona contatti da importare"</string>
+    <string name="enable_pin">"Attiva/disattiva PIN di SIM"</string>
+    <string name="change_pin">"Cambia PIN SIM"</string>
+    <!-- no translation found for enter_pin_text (8532615714751931951) -->
+    <skip />
+    <string name="oldPinLabel">"PIN attuale"</string>
+    <string name="newPinLabel">"Nuovo PIN"</string>
+    <string name="confirmPinLabel">"Conferma nuovo PIN"</string>
+    <string name="badPin">"Il PIN attuale digitato è errato. Riprova."</string>
+    <string name="mismatchPin">"I PIN inseriti non corrispondono. Riprova."</string>
+    <string name="invalidPin">"Il PIN deve essere di 4-8 numeri."</string>
+    <string name="disable_sim_pin">"Disattiva PIN SIM"</string>
+    <string name="enable_sim_pin">"Attiva PIN di SIM"</string>
+    <string name="enable_in_progress">"Attendere..."</string>
+    <string name="enable_pin_ok">"PIN della SIM attivato"</string>
+    <string name="disable_pin_ok">"PIN della SIM disattivato"</string>
+    <string name="pin_failed">"Il PIN digitato è errato"</string>
+    <string name="pin_changed">"PIN della SIM modificato"</string>
+    <string name="puk_requested">"Password errata. La SIM è bloccata. Inserire il codice PUK2."</string>
+    <!-- no translation found for enter_pin2_text (8339444124477720345) -->
+    <skip />
+    <string name="oldPin2Label">"PIN2 attuale"</string>
+    <string name="newPin2Label">"Nuovo PIN2"</string>
+    <string name="confirmPin2Label">"Conferma nuovo PIN2"</string>
+    <string name="badPuk2">"Il PUK2 digitato è errato. Riprova."</string>
+    <string name="badPin2">"Il vecchio PIN2 digitato è errato. Riprova."</string>
+    <string name="mismatchPin2">"I PIN2 inseriti non corrispondono. Riprova."</string>
+    <string name="invalidPin2">"Il PIN2 deve essere di 4-8 numeri."</string>
+    <string name="invalidPuk2">"Il PUK2 deve essere di 8 numeri."</string>
+    <string name="pin2_changed">"PIN2 modificato"</string>
+    <string name="label_puk2_code">"Digita il codice PUK2"</string>
+    <string name="fdn_enable_puk2_requested">"Password errata. Modifica il PIN2 e riprova."</string>
+    <string name="puk2_requested">"Password errata. La SIM è bloccata. Inserire il codice PUK2."</string>
+    <string name="doneButton">"Fine"</string>
+    <string name="caller_manage_header">"Conferenza audio <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="caller_manage_manage_done_text">"Torna a chiamata"</string>
+    <string name="sim_missing_continueView_text">"Continua senza SIM"</string>
+    <string name="sim_missing_msg_text">"Nessuna SIM trovata. Inserisci una SIM nel telefono."</string>
+    <string name="sim_unlock_dismiss_text">"Chiudi"</string>
+    <string name="sim_unlock_unlock_text">"Sblocca"</string>
+    <string name="sim_unlock_status_text">"Autenticazione PIN..."</string>
+    <string name="voicemail_settings_number_label">"Numero segreteria"</string>
+    <string name="card_title_dialing">"Chiamata"</string>
+    <!-- no translation found for card_title_in_progress (8603765629781648862) -->
+    <skip />
+    <string name="card_title_conf_call">"Conferenza audio"</string>
+    <string name="card_title_incoming_call">"Chiamata in entrata"</string>
+    <string name="card_title_call_ended">"Chiamata terminata"</string>
+    <string name="card_title_on_hold">"In attesa"</string>
+    <!-- no translation found for card_title_hanging_up (3999101620995182450) -->
+    <skip />
+    <string name="notification_missedCallTitle">"Chiamata senza risposta"</string>
+    <string name="notification_missedCallsTitle">"Chiamate senza risposta"</string>
+    <string name="notification_missedCallsMsg">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chiamate senza risposta"</string>
+    <string name="notification_missedCallTicker">"Chiamata senza risposta da <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call_format">"Chiamata corrente (<xliff:g id="DURATION">%s</xliff:g>)"</string>
+    <string name="notification_on_hold">"In attesa"</string>
+    <string name="notification_voicemail_title">"Nuovo msg vocale"</string>
+    <string name="notification_voicemail_text_format">"Componi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number">"Numero segreteria sconosciuto"</string>
+    <!-- no translation found for incall_error_power_off (6550191216405193368) -->
+    <skip />
+    <string name="incall_error_emergency_only">"Non registrato sulla rete."</string>
+    <string name="incall_error_no_phone_number_supplied">"Chiamata non inviata. Nessun numero valido inserito."</string>
+    <string name="incall_error_call_failed">"Chiamata non inviata."</string>
+    <string name="incall_status_dialed_mmi">"Inizio sequenza MMI..."</string>
+    <string name="incall_error_supp_service_unknown">"Servizio non supportato."</string>
+    <string name="incall_error_supp_service_switch">"Impossibile passare all\'altra chiamata."</string>
+    <string name="incall_error_supp_service_separate">"Impossibile separare le chiamate."</string>
+    <string name="incall_error_supp_service_transfer">"Impossibile trasferire la chiamata."</string>
+    <string name="incall_error_supp_service_conference">"Conferenze audio non disponibili."</string>
+    <string name="incall_error_supp_service_reject">"Impossibile rifiutare la chiamata."</string>
+    <string name="incall_error_supp_service_hangup">"Impossibile riprendere le chiamate."</string>
+    <string name="emergency_enable_radio_dialog_title">"Chiamata di emergenza"</string>
+    <!-- no translation found for emergency_enable_radio_dialog_message (207613549344420291) -->
+    <skip />
+    <string name="emergency_enable_radio_dialog_retry">"Area non coperta dal servizio. Nuovo tentativo..."</string>
+    <string name="dial_emergency_error">"Chiamata non inviata. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non è un numero di emergenza."</string>
+    <string name="dial_emergency_empty_error">"Chiamata non inviata. Comporre un numero di emergenza."</string>
+    <string name="dialerKeyboardHintText">"Usa tastiera"</string>
+    <!-- no translation found for dtmfDialpadHintText (2153335217920679451) -->
+    <skip />
+    <string name="importSimEntry">"Importa"</string>
+    <string name="importAllSimEntries">"Importa tutti"</string>
+    <string name="importingSimContacts">"Importazione contatti SIM"</string>
+    <!-- no translation found for importToFDNfromContacts (2130620207013368580) -->
+    <skip />
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
new file mode 100644 (file)
index 0000000..05f79c8
--- /dev/null
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsIconLabel">"联系人"</string>
+    <string name="contactsFavoritesLabel">"收藏夹"</string>
+    <string name="dialerIconLabel">"拨号程序"</string>
+    <string name="emergencyDialerIconLabel">"紧急拨号程序"</string>
+    <string name="phoneIconLabel">"手机"</string>
+    <string name="recentCallsIconLabel">"通话记录"</string>
+    <string name="fdnListLabel">"FDN 列表"</string>
+    <string name="unknown">"未知"</string>
+    <string name="private_num">"私人号码"</string>
+    <string name="onHold">"保持"</string>
+    <string name="ongoing">"当前通话"</string>
+    <string name="callFailed_userBusy">"占线"</string>
+    <string name="callFailed_congestion">"网络正忙"</string>
+    <string name="callFailed_noSignal">"无信号"</string>
+    <string name="callFailed_limitExceeded">"超出了 ACM 限制"</string>
+    <string name="callFailed_powerOff">"收音机已关闭"</string>
+    <string name="callFailed_simError">"无 SIM 卡或 SIM 卡错误"</string>
+    <string name="callFailed_outOfService">"不在服务区"</string>
+    <string name="callFailed_fdn_only">"去电受 FDN 的限制。"</string>
+    <string name="callFailed_cb_enabled">"不能在呼叫禁止开启时拨打电话。"</string>
+    <string name="confCall">"会议通话"</string>
+    <string name="mmiStarted">"MMI 码已启动"</string>
+    <string name="ussdRunning">"USSD 码正在运行..."</string>
+    <string name="mmiCancelled">"MMI 码已取消"</string>
+    <string name="cancel">"取消"</string>
+    <string name="menu_speaker">"扬声器"</string>
+    <string name="menu_bluetooth">"蓝牙"</string>
+    <string name="menu_mute">"静音"</string>
+    <string name="menu_hold">"保持"</string>
+    <string name="menu_endCall">"结束通话"</string>
+    <string name="menu_swapCalls">"交换呼叫"</string>
+    <string name="menu_mergeCalls">"合并呼叫"</string>
+    <string name="menu_addCall">"添加呼叫"</string>
+    <string name="menu_manageConference">"管理会议通话"</string>
+    <string name="menu_showDialpad">"显示拨号面板"</string>
+    <string name="menu_hideDialpad">"隐藏拨号面板"</string>
+    <!-- no translation found for menu_answerAndHold (8830891495953688905) -->
+    <skip />
+    <!-- no translation found for menu_answerAndEnd (2071708281281611854) -->
+    <skip />
+    <string name="ok">"确定"</string>
+    <!-- no translation found for menuButtonHint (4853215496220101699) -->
+    <skip />
+    <string name="menuButtonKeyboardDialHint">"按“菜单”获取呼叫选项  •  使用键盘拨号"</string>
+    <string name="wait_prompt_str">"是否发送以下音调?"\n</string>
+    <string name="send_button">"发送"</string>
+    <string name="wild_prompt_str">"用以下内容替换通配符"</string>
+    <string name="bluetooth_headset_connected">"蓝牙耳机已连接。"</string>
+    <string name="bluetooth_headset_disconnected">"蓝牙耳机已断开连接。"</string>
+    <string name="no_vm_number">"错过语音信箱号码"</string>
+    <string name="no_vm_number_msg">"SIM 卡上没有存储语音信箱号码。"</string>
+    <string name="add_vm_number_str">"添加号码"</string>
+    <string name="dialer_emptyListWorking">"正在载入..."</string>
+    <string name="enterPin">"键入 PIN 码以解锁 SIM 卡。"</string>
+    <string name="pinUnlocked">"SIM 卡已解锁"</string>
+    <!-- no translation found for enterNewPin (5311243769004752401) -->
+    <skip />
+    <!-- no translation found for verifyNewPin (2593629913010458867) -->
+    <skip />
+    <string name="verifyFailed">"您键入的 SIM PIN 不匹配。请重试。"</string>
+    <!-- no translation found for enterPuk (6144749655582862324) -->
+    <skip />
+    <string name="badPuk">"PUK 码不正确!"</string>
+    <string name="buttonTxtContinue">"继续"</string>
+    <string name="puk_unlocked">"您的 SIM 卡已取消禁止。您的手机正在解锁..."</string>
+    <!-- no translation found for label_ndp (780479633159517250) -->
+    <skip />
+    <string name="sim_ndp_unlock_text">"解锁"</string>
+    <string name="sim_ndp_dismiss_text">"清除"</string>
+    <string name="requesting_unlock">"正在请求网络解锁..."</string>
+    <string name="unlock_failed">"网络解锁请求失败。"</string>
+    <string name="unlock_success">"网络解锁成功。"</string>
+    <string name="imei">"IMEI"</string>
+    <string name="labelMore">"其他通话设置"</string>
+    <string name="apn_settings">"接入点名称"</string>
+    <string name="settings_label">"网络设置"</string>
+    <string name="voicemail">"语音信箱"</string>
+    <string name="voicemail_abbreviated">"VM:"</string>
+    <!-- no translation found for networks (8873030692174541976) -->
+    <skip />
+    <string name="call_settings">"通话设置"</string>
+    <string name="additional_call_settings">"其他通话设置"</string>
+    <string name="labelCallerId">"呼叫者 ID"</string>
+    <string name="sum_hide_caller_id">"去电中隐藏的号码"</string>
+    <string name="sum_show_caller_id">"去电中显示的号码"</string>
+    <string name="sum_default_caller_id">"使用默认的运营商设置在去电中显示我的号码"</string>
+    <string name="labelCW">"呼叫等待"</string>
+    <!-- no translation found for sum_cw_enabled (8083061901633671397) -->
+    <skip />
+    <!-- no translation found for sum_cw_disabled (3648693907300104575) -->
+    <skip />
+    <string name="call_forwarding_settings">"呼叫转移设置"</string>
+    <string name="labelCF">"呼叫转移"</string>
+    <string name="labelCFU">"始终进行呼叫转移"</string>
+    <string name="messageCFU">"始终使用此号码"</string>
+    <string name="sum_cfu_enabled_indicator">"正在转移所有呼叫"</string>
+    <string name="sum_cfu_enabled">"正在将所有呼叫转移至\\\\{0\\\\}"</string>
+    <string name="sum_cfu_disabled">"已禁用"</string>
+    <string name="labelCFB">"占线时进行呼叫转移"</string>
+    <string name="messageCFB">"繁忙时拨号"</string>
+    <string name="sum_cfb_enabled">"正在将呼叫转移至\\\\{0\\\\}"</string>
+    <string name="sum_cfb_disabled">"已禁用"</string>
+    <string name="labelCFNRy">"无应答时转移呼叫"</string>
+    <string name="messageCFNRy">"无应答时拨号"</string>
+    <string name="sum_cfnry_enabled">"正在将呼叫转移至\\\\{0\\\\}"</string>
+    <string name="sum_cfnry_disabled">"已禁用"</string>
+    <string name="labelCFNRc">"无法接通时转移呼叫"</string>
+    <string name="messageCFNRc">"无法接通时拨号"</string>
+    <string name="sum_cfnrc_enabled">"正在将呼叫转移至\\\\{0\\\\}"</string>
+    <string name="sum_cfnrc_disabled">"已禁用"</string>
+    <string name="updating_title">"通话设置"</string>
+    <string name="error_updating_title">"通话设置错误"</string>
+    <string name="reading_settings">"正在读取设置..."</string>
+    <string name="updating_settings">"正在更新设置..."</string>
+    <!-- no translation found for response_error (605758115001863468) -->
+    <skip />
+    <!-- no translation found for exception_error (7027667130619518211) -->
+    <skip />
+    <string name="radio_off_error">"请在查看这些设置之前打开收音机。"</string>
+    <string name="close_dialog">"确定"</string>
+    <string name="enable">"启用"</string>
+    <string name="disable">"禁用"</string>
+    <string name="change_num">"更新"</string>
+  <string-array name="clir_display_values">
+    <item>"网络默认值"</item>
+    <item>"隐藏号码"</item>
+    <item>"显示号码"</item>
+  </string-array>
+    <string name="vm_save_number">"保存语音信箱号码"</string>
+    <string name="vm_changed">"语音信箱号码已更改。"</string>
+    <string name="vm_change_failed">"语音信箱号码更改失败。"</string>
+    <string name="no_change">"未进行更改。"</string>
+    <string name="sum_voicemail">"设置语言邮件号码"</string>
+    <string name="mobile_networks">"Google 移动网络设置"</string>
+    <string name="label_available">"可用的网络"</string>
+    <string name="load_networks_progress">"正在搜索..."</string>
+    <string name="empty_networks_list">"未找到网络。"</string>
+    <string name="search_networks">"搜索网络"</string>
+    <string name="network_query_error">"搜索网络时出错。"</string>
+    <string name="register_on_network">"正在 <xliff:g id="NETWORK">%s</xliff:g> 上注册..."</string>
+    <string name="not_allowed">"您的 SIM 卡不允许连接到此网络。"</string>
+    <string name="registration_done">"已在网络上注册。"</string>
+    <string name="sum_carrier_select">"选择网络运营商"</string>
+    <string name="sum_search_networks">"搜索所有可用的网络"</string>
+    <string name="select_automatically">"自动选择"</string>
+    <string name="sum_select_automatically">"自动选择首选的网络"</string>
+    <string name="register_automatically">"正在自动注册..."</string>
+    <string name="roaming">"数据漫游"</string>
+    <string name="roaming_enable">"漫游时连接至数据服务"</string>
+    <string name="roaming_disable">"漫游时连接至数据服务"</string>
+    <string name="roaming_reenable_message">"您已断开数据连接,因为您离开了主网络并关闭了数据漫游。"</string>
+    <string name="roaming_turn_it_on_button">"打开数据漫游"</string>
+    <string name="roaming_warning">"是否允许数据漫游?您可能需要支付高额的漫游费!"</string>
+    <string name="roaming_reenable_title">"注意"</string>
+    <string name="prefer_2g">"仅使用 2G 网络"</string>
+    <!-- no translation found for prefer_2g_summary (1976491403210690759) -->
+    <skip />
+    <!-- no translation found for fdn (7878832555095183202) -->
+    <skip />
+    <!-- no translation found for manage_fdn_list (8777755791892122369) -->
+    <skip />
+    <string name="fdn_activation">"FDN 激活"</string>
+    <string name="fdn_enabled">"固定拨号启用"</string>
+    <string name="fdn_disabled">"固定拨号被禁用"</string>
+    <string name="enable_fdn">"启用 FDN"</string>
+    <string name="disable_fdn">"禁用 FDN"</string>
+    <string name="change_pin2">"更改 PIN2"</string>
+    <!-- no translation found for enable_fdn_ok (7215588870329688132) -->
+    <skip />
+    <!-- no translation found for disable_fdn_ok (5727046928930740173) -->
+    <skip />
+    <string name="sum_fdn">"管理固定拨号"</string>
+    <string name="sum_fdn_change_pin">"更改 PIN 以进行 FDN 访问"</string>
+    <string name="sum_fdn_manage_list">"管理手机号列表"</string>
+    <string name="open_keyboard">"打开键盘以键入。"</string>
+    <string name="menu_add">"添加联系人"</string>
+    <string name="menu_edit">"编辑联系人"</string>
+    <string name="menu_delete">"删除联系人"</string>
+    <string name="get_pin2">"输入 PIN2"</string>
+    <string name="name">"名称"</string>
+    <string name="number">"号码"</string>
+    <string name="save">"保存"</string>
+    <string name="add_fdn_contact">"添加固定拨号联系人"</string>
+    <string name="adding_fdn_contact">"正在添加固定拨号联系人..."</string>
+    <string name="fdn_contact_added">"固定拨号联系人已添加。"</string>
+    <string name="edit_fdn_contact">"编辑固定拨号联系人"</string>
+    <string name="updating_fdn_contact">"正在更新固定拨号联系人..."</string>
+    <string name="fdn_contact_updated">"固定拨号联系人已更新。"</string>
+    <string name="delete_fdn_contact">"删除固定拨号联系人"</string>
+    <string name="deleting_fdn_contact">"正在删除固定拨号联系人..."</string>
+    <string name="fdn_contact_deleted">"固定拨号联系人已删除。"</string>
+    <string name="pin2_invalid">"PIN2 无效!"</string>
+    <string name="fdn_invalid_number">"号码不能超过 20 位数。"</string>
+    <string name="simContacts_emptyLoading">"正在从 SIM 卡读取..."</string>
+    <string name="simContacts_empty">"您的 SIM 卡上没有联系人。"</string>
+    <string name="simContacts_title">"选择要导入的联系人"</string>
+    <string name="enable_pin">"启用/禁用 SIM PIN"</string>
+    <string name="change_pin">"更改 SIM PIN"</string>
+    <!-- no translation found for enter_pin_text (8532615714751931951) -->
+    <skip />
+    <string name="oldPinLabel">"旧 PIN"</string>
+    <string name="newPinLabel">"新 PIN"</string>
+    <string name="confirmPinLabel">"确认新 PIN"</string>
+    <string name="badPin">"您键入的旧 PIN 不正确。请重试。"</string>
+    <string name="mismatchPin">"您输入的 PIN 不匹配。请重试。"</string>
+    <string name="invalidPin">"键入一个 4 到 8 位数的 PIN。"</string>
+    <string name="disable_sim_pin">"禁用 SIM PIN"</string>
+    <string name="enable_sim_pin">"启用 SIM PIN"</string>
+    <string name="enable_in_progress">"请稍候..."</string>
+    <string name="enable_pin_ok">"SIM PIN 已启用"</string>
+    <string name="disable_pin_ok">"SIM PIN 被禁用"</string>
+    <string name="pin_failed">"您键入的 PIN 不正确"</string>
+    <string name="pin_changed">"SIM PIN 更改成功"</string>
+    <string name="puk_requested">"密码不正确,SIM 卡被锁定!需要 PUK2。"</string>
+    <!-- no translation found for enter_pin2_text (8339444124477720345) -->
+    <skip />
+    <string name="oldPin2Label">"旧 PIN2"</string>
+    <string name="newPin2Label">"新 PIN2"</string>
+    <string name="confirmPin2Label">"确认新 PIN2"</string>
+    <string name="badPuk2">"您键入的旧 PUK2 不正确。请重试。"</string>
+    <string name="badPin2">"您键入的旧 PIN2 不正确。请重试。"</string>
+    <string name="mismatchPin2">"您输入的 PIN2 不匹配。请重试。"</string>
+    <string name="invalidPin2">"键入一个 4 到 8 位数的 PIN2。"</string>
+    <string name="invalidPuk2">"键入一个 8 位数的 PUK2。"</string>
+    <string name="pin2_changed">"PIN2 更改成功"</string>
+    <string name="label_puk2_code">"键入 PUK2 码"</string>
+    <string name="fdn_enable_puk2_requested">"密码不正确,请更改 PIN2,然后重试!"</string>
+    <string name="puk2_requested">"密码不正确,SIM 卡被锁定!需要 PUK2。"</string>
+    <string name="doneButton">"完成"</string>
+    <string name="caller_manage_header">"会议通话 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="caller_manage_manage_done_text">"回电"</string>
+    <string name="sim_missing_continueView_text">"在没有 SIM 卡的情况下继续"</string>
+    <string name="sim_missing_msg_text">"未找到 SIM 卡。请将 SIM 卡插入手机中。"</string>
+    <string name="sim_unlock_dismiss_text">"清除"</string>
+    <string name="sim_unlock_unlock_text">"解锁"</string>
+    <string name="sim_unlock_status_text">"正在验证 PIN..."</string>
+    <string name="voicemail_settings_number_label">"语音信箱号码"</string>
+    <string name="card_title_dialing">"正在拨号"</string>
+    <!-- no translation found for card_title_in_progress (8603765629781648862) -->
+    <skip />
+    <string name="card_title_conf_call">"会议通话"</string>
+    <string name="card_title_incoming_call">"来电"</string>
+    <string name="card_title_call_ended">"通话已结束"</string>
+    <string name="card_title_on_hold">"保持"</string>
+    <!-- no translation found for card_title_hanging_up (3999101620995182450) -->
+    <skip />
+    <string name="notification_missedCallTitle">"未接来电"</string>
+    <string name="notification_missedCallsTitle">"未接来电"</string>
+    <string name="notification_missedCallsMsg">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 未接来电"</string>
+    <string name="notification_missedCallTicker">"错过了来自<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>的呼叫"</string>
+    <string name="notification_ongoing_call_format">"当前通话(<xliff:g id="DURATION">%s</xliff:g>)"</string>
+    <string name="notification_on_hold">"保持"</string>
+    <string name="notification_voicemail_title">"新语音信箱"</string>
+    <string name="notification_voicemail_text_format">"拨打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number">"语音信箱号码未知"</string>
+    <!-- no translation found for incall_error_power_off (6550191216405193368) -->
+    <skip />
+    <string name="incall_error_emergency_only">"未在网络上注册。"</string>
+    <string name="incall_error_no_phone_number_supplied">"呼叫未发送,未输入有效的号码。"</string>
+    <string name="incall_error_call_failed">"呼叫未发送。"</string>
+    <string name="incall_status_dialed_mmi">"正在启动 MMI 序列..."</string>
+    <string name="incall_error_supp_service_unknown">"不支持的服务。"</string>
+    <string name="incall_error_supp_service_switch">"无法切换呼叫。"</string>
+    <string name="incall_error_supp_service_separate">"无法分隔呼叫。"</string>
+    <string name="incall_error_supp_service_transfer">"无法转移呼叫。"</string>
+    <string name="incall_error_supp_service_conference">"无法进行会议通话。"</string>
+    <string name="incall_error_supp_service_reject">"无法拒绝呼叫。"</string>
+    <string name="incall_error_supp_service_hangup">"无法释放呼叫。"</string>
+    <string name="emergency_enable_radio_dialog_title">"紧急电话"</string>
+    <!-- no translation found for emergency_enable_radio_dialog_message (207613549344420291) -->
+    <skip />
+    <string name="emergency_enable_radio_dialog_retry">"不在服务区,正在重试..."</string>
+    <string name="dial_emergency_error">"呼叫未发送,<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是紧急号码!"</string>
+    <string name="dial_emergency_empty_error">"呼叫未发送,请拨打紧急号码!"</string>
+    <string name="dialerKeyboardHintText">"使用键盘拨号"</string>
+    <!-- no translation found for dtmfDialpadHintText (2153335217920679451) -->
+    <skip />
+    <string name="importSimEntry">"导入"</string>
+    <string name="importAllSimEntries">"全部导入"</string>
+    <string name="importingSimContacts">"正在导入 SIM 卡联系人"</string>
+    <!-- no translation found for importToFDNfromContacts (2130620207013368580) -->
+    <skip />
+</resources>
index 22716a2..f215591 100644 (file)
@@ -255,6 +255,7 @@ public class BluetoothAtPhonebook {
                     int regionType = PhoneNumberUtils.toaFromString(number);
 
                     number = number.trim();
+                    number = PhoneNumberUtils.stripSeparators(number);
                     if (number.length() > 30) number = number.substring(0, 30);
                     if (number.equals("-1")) {
                         // unknown numbers are stored as -1 in our database
index e6028dd..5c57f5f 100644 (file)
@@ -98,8 +98,9 @@ public class BluetoothHandsfree {
     private static final String HEADSET_NREC = "bt_headset_nrec";
     private static final String HEADSET_NAME = "bt_headset_name";
 
+    private int mRemoteBRSF = 0;
     /* Constants from Bluetooth Specification Hands-Free profile version 1.5 */
-    public static final int BRSF_AG_THREE_WAY_CALLING = 1 << 0;          
+    public static final int BRSF_AG_THREE_WAY_CALLING = 1 << 0;
     public static final int BRSF_AG_EC_NR = 1 << 1;
     public static final int BRSF_AG_VOICE_RECOG = 1 << 2;
     public static final int BRSF_AG_IN_BAND_RING = 1 << 3;
@@ -109,14 +110,23 @@ public class BluetoothHandsfree {
     public static final int BRSF_AG_ENHANCED_CALL_CONTROL = 1 << 7;
     public static final int BRSF_AG_ENHANCED_ERR_RESULT_CODES = 1 << 8;
     // 9 - 31 reserved for future use.
-    
+
+    public static final int BRSF_HF_EC_NR = 1 << 0;
+    public static final int BRSF_HF_CW_THREE_WAY_CALLING = 1 << 1;
+    public static final int BRSF_HF_CLIP = 1 << 2;
+    public static final int BRSF_HF_VOICE_REG_ACT = 1 << 3;
+    public static final int BRSF_HF_REMOTE_VOL_CONTROL = 1 << 4;
+    public static final int BRSF_HF_ENHANCED_CALL_STATUS = 1 <<  5;
+    public static final int BRSF_HF_ENHANCED_CALL_CONTROL = 1 << 6;
+    // 7 - 31 reserved for future use.
+
     // Currently supported attributes.
     public static final int BRSF_AG_ATTRIBUTES = BRSF_AG_THREE_WAY_CALLING |
                                                  BRSF_AG_EC_NR |
                                                  BRSF_AG_VOICE_RECOG |
                                                  BRSF_AG_REJECT_CALL |
-                                                 BRSF_AG_ENHANCED_CALL_STATUS;  
-    
+                                                 BRSF_AG_ENHANCED_CALL_STATUS;
+
     public static String typeToString(int type) {
         switch (type) {
         case TYPE_UNKNOWN:
@@ -237,6 +247,7 @@ public class BluetoothHandsfree {
         for (int i = 0; i < MAX_CONNECTIONS; i++) {
             mClccUsed[i] = false;
         }
+        mRemoteBRSF = 0;
     }
 
     private void configAudioParameters() {
@@ -504,7 +515,7 @@ public class BluetoothHandsfree {
                 }
                 break;
             }
-            
+
             if (mCall != call) {
                 if (call == 1) {
                     // This means that a call has transitioned from NOT ACTIVE to ACTIVE.
@@ -519,23 +530,25 @@ public class BluetoothHandsfree {
             if (mCallsetup != callsetup) {
                 mCallsetup = callsetup;
                 if (sendUpdate) {
-                    result.addResponse("+CIEV: 3," + mCallsetup);
+                    if (!(mCall == 1 && ((mRemoteBRSF & BRSF_HF_CW_THREE_WAY_CALLING) == 0x0))) {
+                        result.addResponse("+CIEV: 3," + mCallsetup);
+                    }
                 }
             }
-            
-            boolean callsSwitched = 
-                (callheld == 1 && ! (mBackgroundCall.getEarliestConnectTime() == 
+
+            boolean callsSwitched =
+                (callheld == 1 && ! (mBackgroundCall.getEarliestConnectTime() ==
                     mBgndEarliestConnectionTime));
-            
+
             mBgndEarliestConnectionTime = mBackgroundCall.getEarliestConnectTime();
-            
+
             if (mCallheld != callheld || callsSwitched) {
                 mCallheld = callheld;
                 if (sendUpdate) {
                     result.addResponse("+CIEV: 4," + mCallheld);
                 }
             }
-         
+
             if (callsetup == 1 && callsetup != prevCallsetup) {
                 // new incoming call
                 String number = null;
@@ -559,7 +572,9 @@ public class BluetoothHandsfree {
                 }
                 if ((call != 0 || callheld != 0) && sendUpdate) {
                     // call waiting
-                    result.addResponse("+CCWA: \"" + number + "\"," + type);
+                    if ((mRemoteBRSF & BRSF_HF_CW_THREE_WAY_CALLING) != 0x0) {
+                        result.addResponse("+CCWA: \"" + number + "\"," + type);
+                    }
                 } else {
                     // regular new incoming call
                     mRingingNumber = number;
@@ -1045,8 +1060,12 @@ public class BluetoothHandsfree {
             public AtCommandResult handleSetCommand(Object[] args) {
                 // AT+BRSF=<handsfree supported features bitmap>
                 // Handsfree is telling us which features it supports. We
-                // ignore its report for now. But we do respond with our own
-                // feature bitmap.
+                // send the features we support
+                if (args.length == 1 && (args[0] instanceof Integer)) {
+                    mRemoteBRSF = (Integer) args[0];
+                } else {
+                    Log.w(TAG, "HF didn't sent BRSF assuming 0");
+                }
                 return sendBRSF();
             }
             @Override
index 2073a3b..ac2d55a 100644 (file)
@@ -133,7 +133,7 @@ class InCallMenu {
         mAddCall.setId(R.id.menuAddCall);
         mAddCall.setOnClickListener(mInCallScreen);
         mAddCall.setText(R.string.menu_addCall);
-        mAddCall.setIconResource(R.drawable.ic_menu_add);
+        mAddCall.setIconResource(android.R.drawable.ic_menu_add);
 
         mSwapCalls = new InCallMenuItemView(wrappedContext);
         mSwapCalls.setId(R.id.menuSwapCalls);
index 3c1656d..dc43d04 100644 (file)
@@ -128,6 +128,7 @@ public class InCallScreen extends Activity
     private static final int DELAYED_CLEANUP_AFTER_DISCONNECT = 108;
     private static final int SUPP_SERVICE_FAILED = 110;
     private static final int DISMISS_MENU = 111;
+    private static final int ALLOW_SCREEN_ON = 112;
 
 
     // High-level "modes" of the in-call UI.
@@ -313,6 +314,16 @@ public class InCallScreen extends Activity
                     // dismissMenu() has no effect if the menu is already closed.
                     dismissMenu(true);  // dismissImmediate = true
                     break;
+
+                case ALLOW_SCREEN_ON:
+                    if (DBG) log("ALLOW_SCREEN_ON message...");
+                    // Undo our previous call to preventScreenOn(true).
+                    // (Note this will cause the screen to turn on
+                    // immediately, if it's currently off because of a
+                    // prior preventScreenOn(true) call.)
+                    PhoneApp app = PhoneApp.getInstance();
+                    app.preventScreenOn(false);
+                    break;
             }
         }
     };
@@ -507,8 +518,39 @@ public class InCallScreen extends Activity
         PhoneApp app = PhoneApp.getInstance();
         app.notifier.setCallScreen(null);
 
-        // making sure we update the poke lock and wake lock when we move to
+        // Update the poke lock and wake lock when we move to
         // the foreground.
+        //
+        // But we need to do something special if we're coming
+        // to the foreground while an incoming call is ringing:
+        if (mPhone.getState() == Phone.State.RINGING) {
+            // We do want the screen to be on while the phone is ringing,
+            // but ONLY AFTER the InCallScreen has a chance to draw
+            // itself.  So here in onResume(), we use the special
+            // preventScreenOn() API to tell the PowerManager that the
+            // screen should be off even if someone's holding a full wake
+            // lock.  This prevents any flicker during the "incoming call"
+            // sequence.
+            app.preventScreenOn(true);
+
+            // And post an ALLOW_SCREEN_ON message to (eventually) undo
+            // the above preventScreenOn(true) call.
+            // (In principle we shouldn't do this until after our first
+            // layout/draw pass.  But in practice, the delay caused by
+            // simply waiting for the end of the message queue is long
+            // enough to avoid any flickering of the lock screen before
+            // the InCallScreen comes up.)
+            if (DBG) log("- posting ALLOW_SCREEN_ON message...");
+            mHandler.removeMessages(ALLOW_SCREEN_ON);
+            mHandler.sendEmptyMessage(ALLOW_SCREEN_ON);
+
+            // TODO: There ought to be a more elegant way of doing this,
+            // probably by having the PowerManager and ActivityManager
+            // work together to let apps request that the screen on/off
+            // state be synchronized with the Activity lifecycle.
+        } else {
+            app.preventScreenOn(false);
+        }
         app.updateWakeState();
 
         // Restore the mute state if the last mute state change was NOT
@@ -519,6 +561,7 @@ public class InCallScreen extends Activity
         }
 
         Profiler.profileViewCreate(getWindow(), InCallScreen.class.getName());
+        if (DBG) log("onResume() done.");
     }
 
     @Override
@@ -1131,6 +1174,10 @@ public class InCallScreen extends Activity
      */
     private void onPhoneStateChanged(AsyncResult r) {
         if (DBG) log("onPhoneStateChanged()...");
+
+        // TODO: we probably shouldn't do *anything* here if we're not the
+        // foreground activity!
+
         updateScreen();
 
         // Make sure we update the poke lock and wake lock when certain
index f4e9e15..9d472c8 100644 (file)
@@ -752,16 +752,31 @@ public class PhoneApp extends Application {
         // displaying the "Call ended" UI for a connection in the
         // "disconnected" state.
         boolean isRinging = (state == Phone.State.RINGING);
-        boolean showDisconnectedConnections =
+        boolean showingDisconnectedConnection =
                 PhoneUtils.hasDisconnectedConnections(phone) && isShowingCallScreen;
-        boolean keepScreenOn = isRinging || showDisconnectedConnections;
+        boolean keepScreenOn = isRinging || showingDisconnectedConnection;
         if (DBG) Log.d(LOG_TAG, "updateWakeState: keepScreenOn = " + keepScreenOn
                        + " (isRinging " + isRinging
-                       + ", showDisconnectedConnections " + showDisconnectedConnections + ")");
+                       + ", showingDisconnectedConnection " + showingDisconnectedConnection + ")");
         // keepScreenOn == true means we'll hold a full wake lock:
         requestWakeState(keepScreenOn ? WakeState.FULL : WakeState.SLEEP);
     }
 
+    /**
+     * Wrapper around the PowerManagerService.preventScreenOn() API.
+     * This allows the in-call UI to prevent the screen from turning on
+     * even if a subsequent call to updateWakeState() causes us to acquire
+     * a full wake lock.
+     */
+    /* package */ void preventScreenOn(boolean prevent) {
+        if (DBG) Log.d(LOG_TAG, "- preventScreenOn(" + prevent + ")...");
+        try {
+            mPowerManagerService.preventScreenOn(prevent);
+        } catch (RemoteException e) {
+            Log.w(LOG_TAG, "mPowerManagerService.preventScreenOn() failed: " + e);
+        }
+    }
+
     KeyguardManager getKeyguardManager() {
         return mKeyguardManager;
     }