diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..eb40cda
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,24 @@
+LOCAL_PATH:= $(call my-dir)
+
+# Build the Phone app which includes the emergency dialer. See Contacts
+# for the 'other' dialer.
+include $(CLEAR_VARS)
+
+LOCAL_JAVA_LIBRARIES := telephony-common voip-common
+LOCAL_STATIC_JAVA_LIBRARIES := com.android.phone.shared
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES += \
+        src/com/android/phone/EventLogTags.logtags \
+        src/com/android/phone/INetworkQueryService.aidl \
+        src/com/android/phone/INetworkQueryServiceCallback.aidl
+
+LOCAL_PACKAGE_NAME := TeleService
+LOCAL_CERTIFICATE := platform
+LOCAL_PRIVILEGED_MODULE := true
+
+LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+
+include $(BUILD_PACKAGE)
+
+# Build the test package
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
new file mode 100644
index 0000000..d8cda6f
--- /dev/null
+++ b/AndroidManifest.xml
@@ -0,0 +1,530 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+        package="com.android.phone"
+        coreApp="true"
+        android:sharedUserId="android.uid.phone"
+        android:sharedUserLabel="@string/phoneAppLabel"
+>
+
+    <original-package android:name="com.android.phone" />
+
+    <protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
+    <protected-broadcast android:name="android.intent.action.RADIO_TECHNOLOGY" />
+    <protected-broadcast android:name="android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED" />
+    <protected-broadcast android:name="android.intent.action.SIG_STR" />
+    <protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />
+    <protected-broadcast android:name="android.intent.action.DATA_CONNECTION_FAILED" />
+    <protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
+    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIME" />
+    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIMEZONE" />
+    <protected-broadcast android:name="android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+    <protected-broadcast android:name="android.intent.action.ACTION_MDN_STATE_CHANGED" />
+    <protected-broadcast android:name="android.provider.Telephony.SPN_STRINGS_UPDATED" />
+    <protected-broadcast android:name="android.provider.Telephony.SIM_FULL" />
+    <protected-broadcast android:name="com.android.internal.telephony.data-restart-trysetup" />
+    <protected-broadcast android:name="com.android.internal.telephony.data-stall" />
+
+    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
+    <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.READ_CALL_LOG" />
+    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
+    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
+    <uses-permission android:name="android.permission.ADD_SYSTEM_SERVICE" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+    <uses-permission android:name="android.permission.REORDER_TASKS" />
+    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+    <uses-permission android:name="android.permission.STATUS_BAR" />
+    <uses-permission android:name="android.permission.READ_SMS" />
+    <uses-permission android:name="android.permission.WRITE_SMS" />
+    <uses-permission android:name="android.permission.SEND_SMS" />
+    <uses-permission android:name="android.permission.SEND_RESPOND_VIA_MESSAGE" />
+    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
+    <uses-permission android:name="android.permission.DEVICE_POWER" />
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
+    <uses-permission android:name="android.permission.BROADCAST_SMS"/>
+    <uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>
+    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.SHUTDOWN" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
+    <uses-permission android:name="android.permission.USE_SIP" />
+    <uses-permission android:name="android.permission.REBOOT" />
+    <uses-permission android:name="android.permission.UPDATE_LOCK" />
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
+    <uses-permission android:name="com.android.smspush.WAPPUSH_MANAGER_BIND" />
+    <uses-permission android:name="android.permission.MANAGE_USERS" />
+    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
+    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+
+    <!-- This tells the activity manager to not delay any of our activity
+         start requests, even if they happen immediately after the user
+         presses home. -->
+    <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
+
+    <application android:name="PhoneApp"
+                 android:persistent="true"
+                 android:label="@string/phoneAppLabel"
+                 android:icon="@mipmap/ic_launcher_phone"
+                 android:supportsRtl="true">
+            <provider android:name="IccProvider"
+                      android:authorities="icc"
+                      android:multiprocess="true"
+                      android:exported="true"
+                      android:readPermission="android.permission.READ_CONTACTS"
+                      android:writePermission="android.permission.WRITE_CONTACTS" />
+
+        <!-- Dialer UI that only allows emergency calls -->
+        <activity android:name="EmergencyDialer"
+            android:label="@string/emergencyDialerIconLabel"
+            android:theme="@style/EmergencyDialerTheme"
+            android:screenOrientation="portrait">
+            <intent-filter>
+                <action android:name="com.android.phone.EmergencyDialer.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="com.android.phone.EmergencyDialer.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="ADNList" />
+
+        <activity android:name="SimContacts"
+            android:label="@string/simContacts_title"
+            android:theme="@style/SimImportTheme"
+            android:screenOrientation="portrait"
+            android:icon="@mipmap/ic_launcher_contacts">
+
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/sim-contact" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="FdnList" android:label="@string/fdnListLabel">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/sim-contact" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="OutgoingCallBroadcaster"
+                android:theme="@style/OutgoingCallBroadcasterTheme"
+                android:permission="android.permission.CALL_PHONE"
+                android:screenOrientation="nosensor"
+                android:configChanges="orientation|screenSize|keyboardHidden">
+            <!-- CALL action intent filters, for the various ways
+                 of initiating an outgoing call. -->
+            <intent-filter>
+                <action android:name="android.intent.action.CALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
+            <intent-filter android:icon="@drawable/ic_launcher_sip_call">
+                <action android:name="android.intent.action.CALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="sip" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.CALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="voicemail" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.CALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/phone" />
+                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
+                <data android:mimeType="vnd.android.cursor.item/person" />
+            </intent-filter>
+        </activity>
+
+        <activity-alias android:name="EmergencyOutgoingCallBroadcaster"
+                android:targetActivity="OutgoingCallBroadcaster"
+                android:permission="android.permission.CALL_PRIVILEGED">
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
+            <intent-filter android:icon="@drawable/ic_launcher_sip_call"
+                    android:priority="1000">
+                <action android:name="android.intent.action.CALL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="sip" />
+            </intent-filter>
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="voicemail" />
+            </intent-filter>
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/phone" />
+                <data android:mimeType="vnd.android.cursor.item/person" />
+            </intent-filter>
+        </activity-alias>
+
+        <activity-alias android:name="PrivilegedOutgoingCallBroadcaster"
+                android:targetActivity="OutgoingCallBroadcaster"
+                android:screenOrientation="nosensor"
+                android:permission="android.permission.CALL_PRIVILEGED">
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_PRIVILEGED" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
+            <intent-filter android:icon="@drawable/ic_launcher_sip_call"
+                    android:priority="1000">
+                <action android:name="android.intent.action.CALL_PRIVILEGED" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="sip" />
+            </intent-filter>
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_PRIVILEGED" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="voicemail" />
+            </intent-filter>
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.CALL_PRIVILEGED" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/phone" />
+                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
+                <data android:mimeType="vnd.android.cursor.item/person" />
+            </intent-filter>
+        </activity-alias>
+
+        <receiver android:name="ProcessOutgoingCallTest" android:exported="false"
+            android:enabled="false">
+            <intent-filter android:priority="1">
+                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </receiver>
+
+        <!-- Main in-call UI activity.  This is never launched directly
+             from outside the phone app; instead, it's either launched by
+             the OutgoingCallBroadcaster (for outgoing calls), or as the
+             fullScreenIntent of a notification (for incoming calls.) -->
+        <activity android:name="InCallScreen"
+            android:theme="@style/Theme.InCallScreen"
+            android:label="@string/phoneIconLabel"
+            android:excludeFromRecents="true"
+            android:launchMode="singleInstance"
+            android:screenOrientation="nosensor"
+            android:configChanges="keyboardHidden"
+            android:exported="false">
+        </activity>
+
+        <!-- Trampoline activity that handles the PERFORM_CDMA_PROVISIONING intent. -->
+        <activity android:name="InCallScreenShowActivation"
+            android:permission="android.permission.PERFORM_CDMA_PROVISIONING"
+            android:label="@string/phoneIconLabel"
+            android:theme="@android:style/Theme.NoDisplay"
+            android:excludeFromRecents="true">
+            <intent-filter>
+                <action android:name="com.android.phone.PERFORM_CDMA_PROVISIONING" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <!-- "Mobile network settings" screen, used on both
+             non-voice-capable tablets and regular phone devices. -->
+        <activity android:name="MobileNetworkSettings"
+            android:label="@string/settings_label"
+            android:theme="@style/Theme.Settings">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.DATA_ROAMING_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity-alias android:name="Settings"
+            android:targetActivity="MobileNetworkSettings" />
+
+        <!-- networks setting -->
+        <!-- service to handle network query requests sent to RIL -->
+        <service android:name="NetworkQueryService" />
+
+        <!-- clearing of missed call notifications  -->
+        <service android:name="ClearMissedCallsService" />
+
+        <activity android:name="NetworkSetting"
+                android:label="@string/networks"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="GsmUmtsOptions"
+                android:label="@string/gsm_umts_options"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="CdmaOptions"
+                android:label="@string/cdma_options"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="GsmUmtsCallOptions"
+                android:label="@string/gsm_umts_options"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="CdmaCallOptions"
+                android:label="@string/cdma_options"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="GsmUmtsCallForwardOptions"
+                android:label="@string/labelCF"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="GsmUmtsAdditionalCallOptions"
+                android:label="@string/labelGSMMore"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="CellBroadcastSms"
+            android:label="@string/cell_broadcast_sms"
+            android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <!-- fdn setting -->
+        <activity android:name="FdnSetting"
+                android:label="@string/fdn"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="EnableFdnScreen"
+                android:label=""
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+        </activity>
+
+        <!-- SIM PIN setting -->
+        <activity android:name="EnableIccPinScreen"
+                android:label="@string/enable_pin"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="ChangeIccPinScreen"
+                android:label="@string/change_pin"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="GetPin2Screen"
+                android:label="@string/get_pin2"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge"
+                android:windowSoftInputMode="stateVisible">
+        </activity>
+
+        <activity android:name="EditFdnContactScreen"
+                  android:windowSoftInputMode="stateVisible">
+        </activity>
+
+        <activity android:name="DeleteFdnContactScreen"
+        android:label="@string/delete_fdn_contact">
+        </activity>
+
+        <activity android:name="DataRoamingReenable" android:label="@string/android:dialog_alert_title"
+            android:theme="@android:style/Theme.Holo.Dialog">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <!-- data roaming setting -->
+        <activity android:name="RoamingSetting"
+                android:label="@string/roaming"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <!-- "Call settings" UI, used only on voice-capable phone devices. -->
+        <activity android:name="CallFeaturesSetting"
+                android:label="@string/call_settings"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="com.android.phone.CallFeaturesSetting.ADD_VOICEMAIL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <!-- bluetooth phone service -->
+        <service android:name="BluetoothPhoneService">
+            <intent-filter>
+                <action android:name="android.bluetooth.IBluetoothHeadsetPhone" />
+            </intent-filter>
+        </service>
+
+        <!-- Broadcast Receiver that will process BOOT Complete and launch OTA -->
+        <receiver android:name="OtaStartupReceiver" android:exported="false"
+                androidprv:primaryUserOnly="true">
+            <intent-filter android:priority="100">
+                 <action android:name="android.intent.action.BOOT_COMPLETED"/>
+            </intent-filter>
+        </receiver>
+
+        <!-- CDMA Emergency Callback Mode -->
+        <service android:name="EmergencyCallbackModeService">
+        </service>
+
+        <!-- service to dump telephony information -->
+        <service android:name="TelephonyDebugService" />
+
+        <activity android:name="EmergencyCallbackModeExitDialog"
+            android:excludeFromRecents="true"
+            android:label="@string/ecm_exit_dialog"
+            android:launchMode="singleTop"
+            android:theme="@android:style/Theme.Translucent.NoTitleBar">
+            <intent-filter>
+                <action android:name="com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG" />
+                <action android:name="android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <receiver android:name="SipBroadcastReceiver">
+            <intent-filter>
+                <action android:name="com.android.phone.SIP_INCOMING_CALL" />
+                <action android:name="com.android.phone.SIP_ADD_PHONE" />
+                <action android:name="com.android.phone.SIP_REMOVE_PHONE" />
+                <action android:name="android.net.sip.SIP_SERVICE_UP" />
+            </intent-filter>
+        </receiver>
+
+        <activity android:label="Sip Settings"
+                  android:name=".sip.SipSettings"
+                  android:theme="@android:style/Theme.Holo.DialogWhenLarge"
+                  android:launchMode="singleTop"
+                  android:configChanges="orientation|screenSize|keyboardHidden"
+                  android:uiOptions="splitActionBarWhenNarrow">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.net.sip.NOTIFY" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".sip.SipEditor"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:uiOptions="splitActionBarWhenNarrow">
+        </activity>
+        <activity android:name=".SipCallOptionHandler"
+                android:theme="@style/SipCallOptionHandlerTheme"
+                android:screenOrientation="nosensor"
+                android:configChanges="orientation|screenSize|keyboardHidden">
+        </activity>
+
+        <activity android:name="RespondViaSmsManager$Settings"
+                android:label="@string/respond_via_sms_setting_title"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <receiver android:name="CallerInfoCacheUpdateReceiver">
+            <intent-filter>
+                <action android:name="com.android.phone.UPDATE_CALLER_INFO_CACHE" />
+            </intent-filter>
+        </receiver>
+
+        <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
+        <receiver android:name="PhoneGlobals$NotificationBroadcastReceiver" exported="false">
+            <intent-filter>
+                <action android:name="com.android.phone.ACTION_HANG_UP_ONGOING_CALL" />
+                <action android:name="com.android.phone.ACTION_CALL_BACK_FROM_NOTIFICATION" />
+                <action android:name="com.android.phone.ACTION_SEND_SMS_FROM_NOTIFICATION" />
+            </intent-filter>
+        </receiver>
+
+    </application>
+</manifest>
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..b84e1b6
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,49 @@
+# 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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list.  These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list.  E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_APACHE2
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..c5b1efa
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,190 @@
+
+   Copyright (c) 2005-2008, 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.
+
+   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.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
diff --git a/lint.xml b/lint.xml
new file mode 100644
index 0000000..7720745
--- /dev/null
+++ b/lint.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- To suppress lint warnings -->
+<lint>
+    <!-- Phone app is not unbundled intentionally. -->
+    <issue id="UsesSdk" severity="ignore" />
+    <issue id="PrivateResource" severity="ignore" />
+</lint>
diff --git a/proguard.flags b/proguard.flags
new file mode 100644
index 0000000..c5f4c72
--- /dev/null
+++ b/proguard.flags
@@ -0,0 +1,6 @@
+# Keep names that are used only by animation framework.
+-keepclasseswithmembers class com.android.phone.AnimationUtils$CrossFadeDrawable {
+  *** setCrossFadeAlpha(...);
+}
+
+-verbose
\ No newline at end of file
diff --git a/res/anim/activity_close_enter.xml b/res/anim/activity_close_enter.xml
new file mode 100644
index 0000000..a526fe1
--- /dev/null
+++ b/res/anim/activity_close_enter.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" android:zAdjustment="normal">
+    <alpha android:fromAlpha="1.0" android:toAlpha="1.0"
+            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+            android:duration="300"/>
+</set>
diff --git a/res/anim/activity_close_exit.xml b/res/anim/activity_close_exit.xml
new file mode 100644
index 0000000..b879bdb
--- /dev/null
+++ b/res/anim/activity_close_exit.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+        android:shareInterpolator="false" android:zAdjustment="top">
+    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
+            android:interpolator="@*android:interpolator/decelerate_cubic"
+            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+            android:duration="300"/>
+    <scale android:fromXScale="1.0" android:toXScale=".8"
+            android:fromYScale="1.0" android:toYScale=".8"
+            android:pivotX="50%p" android:pivotY="50%p"
+            android:interpolator="@*android:interpolator/decelerate_cubic"
+            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+            android:duration="300"/>
+</set>
diff --git a/res/color/ota_title_color.xml b/res/color/ota_title_color.xml
new file mode 100644
index 0000000..2081703
--- /dev/null
+++ b/res/color/ota_title_color.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (c) 2008 Google Inc.
+ *
+ * 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.
+ */
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="#FFA6C839"/>
+</selector>
+
diff --git a/res/drawable-ar-hdpi/dial_num_0_no_plus_wht.png b/res/drawable-ar-hdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..bc947b2
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_1_no_vm_wht.png b/res/drawable-ar-hdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..2bbaead
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_2_wht.png b/res/drawable-ar-hdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..15583a0
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_3_wht.png b/res/drawable-ar-hdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..c8fd5b6
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_4_wht.png b/res/drawable-ar-hdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..2df8330
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_5_wht.png b/res/drawable-ar-hdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..b16701c
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_6_wht.png b/res/drawable-ar-hdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..823fa50
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_7_wht.png b/res/drawable-ar-hdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..6f5fbff
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_8_wht.png b/res/drawable-ar-hdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..d15c47f
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-ar-hdpi/dial_num_9_wht.png b/res/drawable-ar-hdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..7b28361
--- /dev/null
+++ b/res/drawable-ar-hdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_0_no_plus_wht.png b/res/drawable-ar-mdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..2339f89
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_1_no_vm_wht.png b/res/drawable-ar-mdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..7c80f05
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_2_wht.png b/res/drawable-ar-mdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..d4421a3
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_3_wht.png b/res/drawable-ar-mdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..10e8216
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_4_wht.png b/res/drawable-ar-mdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..2c7971f
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_5_wht.png b/res/drawable-ar-mdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..472ad7a
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_6_wht.png b/res/drawable-ar-mdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..682e76a
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_7_wht.png b/res/drawable-ar-mdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..9a1395f
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_8_wht.png b/res/drawable-ar-mdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..6ef31dd
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-ar-mdpi/dial_num_9_wht.png b/res/drawable-ar-mdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..e99e20a
--- /dev/null
+++ b/res/drawable-ar-mdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_0_no_plus_wht.png b/res/drawable-ar-xhdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..8924fc8
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_1_no_vm_wht.png b/res/drawable-ar-xhdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..667a7c5
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_2_wht.png b/res/drawable-ar-xhdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..1b39dbe
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_3_wht.png b/res/drawable-ar-xhdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..2cf7577
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_4_wht.png b/res/drawable-ar-xhdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..1816e60
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_5_wht.png b/res/drawable-ar-xhdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..b846a14
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_6_wht.png b/res/drawable-ar-xhdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..5768e87
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_7_wht.png b/res/drawable-ar-xhdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..98667a2
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_8_wht.png b/res/drawable-ar-xhdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..dc71242
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-ar-xhdpi/dial_num_9_wht.png b/res/drawable-ar-xhdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..4917ee0
--- /dev/null
+++ b/res/drawable-ar-xhdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_0_no_plus_wht.png b/res/drawable-fa-hdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..bc947b2
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_1_no_vm_wht.png b/res/drawable-fa-hdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..2bbaead
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_2_wht.png b/res/drawable-fa-hdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..15583a0
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_3_wht.png b/res/drawable-fa-hdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..c8fd5b6
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_4_wht.png b/res/drawable-fa-hdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..4d6b4ea
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_5_wht.png b/res/drawable-fa-hdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..43b2886
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_6_wht.png b/res/drawable-fa-hdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..7db627e
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_7_wht.png b/res/drawable-fa-hdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..6f5fbff
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_8_wht.png b/res/drawable-fa-hdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..d15c47f
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-fa-hdpi/dial_num_9_wht.png b/res/drawable-fa-hdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..7b28361
--- /dev/null
+++ b/res/drawable-fa-hdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_0_no_plus_wht.png b/res/drawable-fa-mdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..2339f89
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_1_no_vm_wht.png b/res/drawable-fa-mdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..7c80f05
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_2_wht.png b/res/drawable-fa-mdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..d4421a3
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_3_wht.png b/res/drawable-fa-mdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..10e8216
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_4_wht.png b/res/drawable-fa-mdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..de5c7b2
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_5_wht.png b/res/drawable-fa-mdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..ba461d7
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_6_wht.png b/res/drawable-fa-mdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..ec41f38
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_7_wht.png b/res/drawable-fa-mdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..9a1395f
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_8_wht.png b/res/drawable-fa-mdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..6ef31dd
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-fa-mdpi/dial_num_9_wht.png b/res/drawable-fa-mdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..e99e20a
--- /dev/null
+++ b/res/drawable-fa-mdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_0_no_plus_wht.png b/res/drawable-fa-xhdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..8924fc8
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_1_no_vm_wht.png b/res/drawable-fa-xhdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..667a7c5
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_2_wht.png b/res/drawable-fa-xhdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..1b39dbe
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_3_wht.png b/res/drawable-fa-xhdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..2cf7577
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_4_wht.png b/res/drawable-fa-xhdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..6e0a5a9
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_5_wht.png b/res/drawable-fa-xhdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..f496906
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_6_wht.png b/res/drawable-fa-xhdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..e75b83e
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_7_wht.png b/res/drawable-fa-xhdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..98667a2
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_8_wht.png b/res/drawable-fa-xhdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..dc71242
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-fa-xhdpi/dial_num_9_wht.png b/res/drawable-fa-xhdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..4917ee0
--- /dev/null
+++ b/res/drawable-fa-xhdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_call_pressed.png b/res/drawable-hdpi/btn_call_pressed.png
new file mode 100644
index 0000000..d6e47f4
--- /dev/null
+++ b/res/drawable-hdpi/btn_call_pressed.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_background_texture.png b/res/drawable-hdpi/dial_background_texture.png
new file mode 100644
index 0000000..9df3b1e
--- /dev/null
+++ b/res/drawable-hdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_0_no_plus_wht.png b/res/drawable-hdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..69849ec
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_1_no_vm_wht.png b/res/drawable-hdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..af7ec42
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_2_wht.png b/res/drawable-hdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..2ae20ab
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_3_wht.png b/res/drawable-hdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..991d5f3
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_4_wht.png b/res/drawable-hdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..7aad3ef
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_5_wht.png b/res/drawable-hdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..42a1d0b
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_6_wht.png b/res/drawable-hdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..b03e019
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_7_wht.png b/res/drawable-hdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..8b72fff
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_8_wht.png b/res/drawable-hdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..822f21a
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_9_wht.png b/res/drawable-hdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..2ee944b
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_pound_wht.png b/res/drawable-hdpi/dial_num_pound_wht.png
new file mode 100644
index 0000000..e10e57d
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_star_wht.png b/res/drawable-hdpi/dial_num_star_wht.png
new file mode 100644
index 0000000..1dfc111
--- /dev/null
+++ b/res/drawable-hdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/endcall_active.png b/res/drawable-hdpi/endcall_active.png
new file mode 100644
index 0000000..38f1e1c
--- /dev/null
+++ b/res/drawable-hdpi/endcall_active.png
Binary files differ
diff --git a/res/drawable-hdpi/endcall_background_texture.png b/res/drawable-hdpi/endcall_background_texture.png
new file mode 100644
index 0000000..095b0b6
--- /dev/null
+++ b/res/drawable-hdpi/endcall_background_texture.png
Binary files differ
diff --git a/res/drawable-hdpi/endcall_disable.png b/res/drawable-hdpi/endcall_disable.png
new file mode 100644
index 0000000..6a0f658
--- /dev/null
+++ b/res/drawable-hdpi/endcall_disable.png
Binary files differ
diff --git a/res/drawable-hdpi/green_divider.png b/res/drawable-hdpi/green_divider.png
new file mode 100644
index 0000000..9d0b5a4
--- /dev/null
+++ b/res/drawable-hdpi/green_divider.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_ab_dialer_holo_dark.png b/res/drawable-hdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..ecfeb2d
--- /dev/null
+++ b/res/drawable-hdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_active_state_dialer_holo_dark.png b/res/drawable-hdpi/ic_active_state_dialer_holo_dark.png
new file mode 100644
index 0000000..f4a08be
--- /dev/null
+++ b/res/drawable-hdpi/ic_active_state_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_contact_holo_dark.png b/res/drawable-hdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..88ff33b
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bluetooth_holo_dark.png b/res/drawable-hdpi/ic_bluetooth_holo_dark.png
new file mode 100644
index 0000000..ba22b0f
--- /dev/null
+++ b/res/drawable-hdpi/ic_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_btn_back.png b/res/drawable-hdpi/ic_btn_back.png
new file mode 100644
index 0000000..9051cb1
--- /dev/null
+++ b/res/drawable-hdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_btn_next.png b/res/drawable-hdpi/ic_btn_next.png
new file mode 100644
index 0000000..ad00a95
--- /dev/null
+++ b/res/drawable-hdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_call.png b/res/drawable-hdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..11cda14
--- /dev/null
+++ b/res/drawable-hdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_delete.png b/res/drawable-hdpi/ic_dial_action_delete.png
new file mode 100644
index 0000000..1fd3d3d
--- /dev/null
+++ b/res/drawable-hdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_end_call.png b/res/drawable-hdpi/ic_dial_end_call.png
new file mode 100644
index 0000000..ab3adb4
--- /dev/null
+++ b/res/drawable-hdpi/ic_dial_end_call.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dialpad_holo_dark.png b/res/drawable-hdpi/ic_dialpad_holo_dark.png
new file mode 100644
index 0000000..a0ab6c4
--- /dev/null
+++ b/res/drawable-hdpi/ic_dialpad_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_end_call_holo_dark.png b/res/drawable-hdpi/ic_end_call_holo_dark.png
new file mode 100644
index 0000000..0f373bb
--- /dev/null
+++ b/res/drawable-hdpi/ic_end_call_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_groups_holo_dark.png b/res/drawable-hdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..6194506
--- /dev/null
+++ b/res/drawable-hdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_hold_pause_holo_dark.png b/res/drawable-hdpi/ic_hold_pause_holo_dark.png
new file mode 100644
index 0000000..2b3ff3d
--- /dev/null
+++ b/res/drawable-hdpi/ic_hold_pause_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_in_call_touch_handle_normal.png b/res/drawable-hdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..e8525348
--- /dev/null
+++ b/res/drawable-hdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_incall_switch_holo_dark.png b/res/drawable-hdpi/ic_incall_switch_holo_dark.png
new file mode 100644
index 0000000..429511b
--- /dev/null
+++ b/res/drawable-hdpi/ic_incall_switch_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_incoming_call_bluetooth.png b/res/drawable-hdpi/ic_incoming_call_bluetooth.png
new file mode 100644
index 0000000..050c3e7
--- /dev/null
+++ b/res/drawable-hdpi/ic_incoming_call_bluetooth.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_launcher_sip_call.png b/res/drawable-hdpi/ic_launcher_sip_call.png
new file mode 100644
index 0000000..f1aa979
--- /dev/null
+++ b/res/drawable-hdpi/ic_launcher_sip_call.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_answer_activated.png b/res/drawable-hdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..3d2752f
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_answer_normal.png b/res/drawable-hdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..9e26eda
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_decline_activated.png b/res/drawable-hdpi/ic_lockscreen_decline_activated.png
new file mode 100644
index 0000000..b7a438f
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_decline_activated.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_decline_normal.png b/res/drawable-hdpi/ic_lockscreen_decline_normal.png
new file mode 100644
index 0000000..a687ae3
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_decline_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_text_activated.png b/res/drawable-hdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..22cf07c
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lockscreen_text_normal.png b/res/drawable-hdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..db6c05d
--- /dev/null
+++ b/res/drawable-hdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_contact.png b/res/drawable-hdpi/ic_menu_contact.png
new file mode 100644
index 0000000..6afda6c
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_contact.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_merge_holo_dark.png b/res/drawable-hdpi/ic_merge_holo_dark.png
new file mode 100644
index 0000000..5069cbe
--- /dev/null
+++ b/res/drawable-hdpi/ic_merge_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_more_indicator_holo_dark.png b/res/drawable-hdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..554f7e9
--- /dev/null
+++ b/res/drawable-hdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_mute_holo_dark.png b/res/drawable-hdpi/ic_mute_holo_dark.png
new file mode 100644
index 0000000..f17a2da
--- /dev/null
+++ b/res/drawable-hdpi/ic_mute_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_see_contacts_holo_dark.png b/res/drawable-hdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..8e2182f
--- /dev/null
+++ b/res/drawable-hdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sound_bluetooth_holo_dark.png b/res/drawable-hdpi/ic_sound_bluetooth_holo_dark.png
new file mode 100644
index 0000000..c7f2402
--- /dev/null
+++ b/res/drawable-hdpi/ic_sound_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sound_handset_holo_dark.png b/res/drawable-hdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..288141a
--- /dev/null
+++ b/res/drawable-hdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sound_holo_dark.png b/res/drawable-hdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..08ee3e8
--- /dev/null
+++ b/res/drawable-hdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-hdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..6f12d52
--- /dev/null
+++ b/res/drawable-hdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-hdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..eadd0cd
--- /dev/null
+++ b/res/drawable-hdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_split_holo_dark.png b/res/drawable-hdpi/ic_split_holo_dark.png
new file mode 100644
index 0000000..5b10cf9
--- /dev/null
+++ b/res/drawable-hdpi/ic_split_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_text_holo_dark.png b/res/drawable-hdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..6d21e42
--- /dev/null
+++ b/res/drawable-hdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_videocall_holo_dark.png b/res/drawable-hdpi/ic_videocall_holo_dark.png
new file mode 100644
index 0000000..7aa3222
--- /dev/null
+++ b/res/drawable-hdpi/ic_videocall_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/list_focused_holo.9.png b/res/drawable-hdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..516f5c7
--- /dev/null
+++ b/res/drawable-hdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/list_pressed_holo_dark.9.png b/res/drawable-hdpi/list_pressed_holo_dark.9.png
new file mode 100644
index 0000000..5654cd6
--- /dev/null
+++ b/res/drawable-hdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png
new file mode 100644
index 0000000..f6fd30d
--- /dev/null
+++ b/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_busy.png b/res/drawable-hdpi/picture_busy.png
new file mode 100644
index 0000000..98deacf
--- /dev/null
+++ b/res/drawable-hdpi/picture_busy.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_conference.png b/res/drawable-hdpi/picture_conference.png
new file mode 100644
index 0000000..93743e6
--- /dev/null
+++ b/res/drawable-hdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_dialing.png b/res/drawable-hdpi/picture_dialing.png
new file mode 100644
index 0000000..6311f69
--- /dev/null
+++ b/res/drawable-hdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_emergency25x25.png b/res/drawable-hdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..0a6d3c4
--- /dev/null
+++ b/res/drawable-hdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_emergency32x32.png b/res/drawable-hdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..89c05e3
--- /dev/null
+++ b/res/drawable-hdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-hdpi/picture_unknown.png b/res/drawable-hdpi/picture_unknown.png
new file mode 100644
index 0000000..278c121
--- /dev/null
+++ b/res/drawable-hdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_phone_call.png b/res/drawable-hdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..7eda84c
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_phone_call_end.png b/res/drawable-hdpi/stat_sys_phone_call_end.png
new file mode 100644
index 0000000..bc74937
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_phone_call_end.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_phone_call_forward.png b/res/drawable-hdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..4b7c236
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_phone_call_on_hold.png b/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..7e7bc3e
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_vp_phone_call.png b/res/drawable-hdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..f22765a
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..7e7bc3e
--- /dev/null
+++ b/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_ab_dialer_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..7ec3709
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_add_contact_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..b6a1381
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_btn_back.png b/res/drawable-ldrtl-hdpi/ic_btn_back.png
new file mode 100644
index 0000000..1a2724b
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_btn_next.png b/res/drawable-ldrtl-hdpi/ic_btn_next.png
new file mode 100644
index 0000000..5046d4d
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_dial_action_call.png b/res/drawable-ldrtl-hdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..4245bcf
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_groups_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..185c55b
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png b/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..4a3628b
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_activated.png b/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..f1deb75
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_normal.png b/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..3c23fe9
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_lockscreen_text_activated.png b/res/drawable-ldrtl-hdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..63afb5e
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_lockscreen_text_normal.png b/res/drawable-ldrtl-hdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..7443030
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_more_indicator_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..adb18ae
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_see_contacts_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..67bbb24
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_sound_handset_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..207d941
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_sound_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..c2e8adb
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..2f2b674
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..135c7f3
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_text_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..b99073e
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/picture_conference.png b/res/drawable-ldrtl-hdpi/picture_conference.png
new file mode 100644
index 0000000..ca250fd
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/picture_dialing.png b/res/drawable-ldrtl-hdpi/picture_dialing.png
new file mode 100644
index 0000000..cb587a8
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/picture_emergency25x25.png b/res/drawable-ldrtl-hdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..9a70b6d
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/picture_emergency32x32.png b/res/drawable-ldrtl-hdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..89e1b07
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/picture_unknown.png b/res/drawable-ldrtl-hdpi/picture_unknown.png
new file mode 100644
index 0000000..3b81ff3
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/stat_sys_phone_call.png b/res/drawable-ldrtl-hdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..e0f33f8
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/stat_sys_phone_call_forward.png b/res/drawable-ldrtl-hdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..132b0e5
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/stat_sys_phone_call_on_hold.png b/res/drawable-ldrtl-hdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..18de248
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call.png b/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..facf2c6
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..0219c5b
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..6020b3d
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_add_contact_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..72abb91
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_btn_back.png b/res/drawable-ldrtl-mdpi/ic_btn_back.png
new file mode 100644
index 0000000..93906f2
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_btn_next.png b/res/drawable-ldrtl-mdpi/ic_btn_next.png
new file mode 100644
index 0000000..9ba41b9
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_dial_action_call.png b/res/drawable-ldrtl-mdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..b0a39e3
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_groups_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..844bed3
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png b/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..13b2ecf
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_activated.png b/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..3d68ff9
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_normal.png b/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..2a223ea
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_lockscreen_text_activated.png b/res/drawable-ldrtl-mdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..8e9c3b6
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_lockscreen_text_normal.png b/res/drawable-ldrtl-mdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..8d4cb28
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_more_indicator_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..2de388f
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_see_contacts_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..55fd17c
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_sound_handset_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..6bf0e8d
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_sound_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..561e8fa
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..3f330ac
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..6cf2e3c
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_text_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..4106c32
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/picture_conference.png b/res/drawable-ldrtl-mdpi/picture_conference.png
new file mode 100644
index 0000000..2876d0f
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/picture_dialing.png b/res/drawable-ldrtl-mdpi/picture_dialing.png
new file mode 100644
index 0000000..4047b22
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/picture_emergency25x25.png b/res/drawable-ldrtl-mdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..9a70b6d
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/picture_emergency32x32.png b/res/drawable-ldrtl-mdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..89e1b07
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/picture_unknown.png b/res/drawable-ldrtl-mdpi/picture_unknown.png
new file mode 100644
index 0000000..062faf5
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/stat_sys_phone_call.png b/res/drawable-ldrtl-mdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..d771d87
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/stat_sys_phone_call_forward.png b/res/drawable-ldrtl-mdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..d49745f
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/stat_sys_phone_call_on_hold.png b/res/drawable-ldrtl-mdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..60f665d
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call.png b/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..f7cce14
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..38054ac
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..c42e7e3
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..60068fd
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_btn_back.png b/res/drawable-ldrtl-xhdpi/ic_btn_back.png
new file mode 100644
index 0000000..9d2d62a
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_btn_next.png b/res/drawable-ldrtl-xhdpi/ic_btn_next.png
new file mode 100644
index 0000000..be636ca
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png b/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..acd2102
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_groups_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..38ea395
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png b/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..c707950
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_activated.png b/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..1acdc59
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_normal.png b/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..72c2afa
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_activated.png b/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..d292a7f
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_normal.png b/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..8318590
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_more_indicator_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..6fe45cd
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_see_contacts_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..c03135a
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_sound_handset_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..1c1f1ad
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_sound_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..ac38205
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..5bc066a
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..3999712
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_text_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..99e7e38
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/picture_conference.png b/res/drawable-ldrtl-xhdpi/picture_conference.png
new file mode 100644
index 0000000..50b4e35
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/picture_dialing.png b/res/drawable-ldrtl-xhdpi/picture_dialing.png
new file mode 100644
index 0000000..f167ecb
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/picture_emergency25x25.png b/res/drawable-ldrtl-xhdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..e4b9342
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/picture_emergency32x32.png b/res/drawable-ldrtl-xhdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..ddc2642
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/picture_unknown.png b/res/drawable-ldrtl-xhdpi/picture_unknown.png
new file mode 100644
index 0000000..1f57aa1
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/stat_sys_phone_call.png b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..86af9c2
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_forward.png b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..4cce562
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_on_hold.png b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..2cbcb5f
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call.png b/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..869afe6
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..3f027c9
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_call_pressed.png b/res/drawable-mdpi/btn_call_pressed.png
new file mode 100644
index 0000000..9d38da5
--- /dev/null
+++ b/res/drawable-mdpi/btn_call_pressed.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_background_texture.png b/res/drawable-mdpi/dial_background_texture.png
new file mode 100644
index 0000000..90cd07c
--- /dev/null
+++ b/res/drawable-mdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_0_no_plus_wht.png b/res/drawable-mdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..1d8b0e3
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_1_no_vm_wht.png b/res/drawable-mdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..e253724
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_2_wht.png b/res/drawable-mdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..e311f4f
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_3_wht.png b/res/drawable-mdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..f07324a
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_4_wht.png b/res/drawable-mdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..cd8d33c
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_5_wht.png b/res/drawable-mdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..a9f27dc
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_6_wht.png b/res/drawable-mdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..2bdf08e
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_7_wht.png b/res/drawable-mdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..6c1c599
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_8_wht.png b/res/drawable-mdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..db0694c
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_9_wht.png b/res/drawable-mdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..692fdb0
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_pound_wht.png b/res/drawable-mdpi/dial_num_pound_wht.png
new file mode 100644
index 0000000..f216d05
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_star_wht.png b/res/drawable-mdpi/dial_num_star_wht.png
new file mode 100644
index 0000000..f7e8e9f
--- /dev/null
+++ b/res/drawable-mdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/endcall_active.png b/res/drawable-mdpi/endcall_active.png
new file mode 100644
index 0000000..a82738b
--- /dev/null
+++ b/res/drawable-mdpi/endcall_active.png
Binary files differ
diff --git a/res/drawable-mdpi/endcall_background_texture.png b/res/drawable-mdpi/endcall_background_texture.png
new file mode 100644
index 0000000..efa6502
--- /dev/null
+++ b/res/drawable-mdpi/endcall_background_texture.png
Binary files differ
diff --git a/res/drawable-mdpi/endcall_disable.png b/res/drawable-mdpi/endcall_disable.png
new file mode 100644
index 0000000..bd1a2f3
--- /dev/null
+++ b/res/drawable-mdpi/endcall_disable.png
Binary files differ
diff --git a/res/drawable-mdpi/green_divider.png b/res/drawable-mdpi/green_divider.png
new file mode 100644
index 0000000..8b3dbd0
--- /dev/null
+++ b/res/drawable-mdpi/green_divider.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_ab_dialer_holo_dark.png b/res/drawable-mdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..51ad9e3
--- /dev/null
+++ b/res/drawable-mdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_active_state_dialer_holo_dark.png b/res/drawable-mdpi/ic_active_state_dialer_holo_dark.png
new file mode 100644
index 0000000..6ff8e48
--- /dev/null
+++ b/res/drawable-mdpi/ic_active_state_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_contact_holo_dark.png b/res/drawable-mdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..867f494
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bluetooth_holo_dark.png b/res/drawable-mdpi/ic_bluetooth_holo_dark.png
new file mode 100644
index 0000000..fb69031
--- /dev/null
+++ b/res/drawable-mdpi/ic_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_btn_back.png b/res/drawable-mdpi/ic_btn_back.png
new file mode 100644
index 0000000..c9bff4c
--- /dev/null
+++ b/res/drawable-mdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_btn_next.png b/res/drawable-mdpi/ic_btn_next.png
new file mode 100644
index 0000000..c6cf436
--- /dev/null
+++ b/res/drawable-mdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_call.png b/res/drawable-mdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..74798f8
--- /dev/null
+++ b/res/drawable-mdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_delete.png b/res/drawable-mdpi/ic_dial_action_delete.png
new file mode 100644
index 0000000..4711825
--- /dev/null
+++ b/res/drawable-mdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_end_call.png b/res/drawable-mdpi/ic_dial_end_call.png
new file mode 100644
index 0000000..c476642
--- /dev/null
+++ b/res/drawable-mdpi/ic_dial_end_call.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialpad_holo_dark.png b/res/drawable-mdpi/ic_dialpad_holo_dark.png
new file mode 100644
index 0000000..b57fcf3
--- /dev/null
+++ b/res/drawable-mdpi/ic_dialpad_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_end_call_holo_dark.png b/res/drawable-mdpi/ic_end_call_holo_dark.png
new file mode 100644
index 0000000..e090cc8
--- /dev/null
+++ b/res/drawable-mdpi/ic_end_call_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_groups_holo_dark.png b/res/drawable-mdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..fefee32
--- /dev/null
+++ b/res/drawable-mdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hold_pause_holo_dark.png b/res/drawable-mdpi/ic_hold_pause_holo_dark.png
new file mode 100644
index 0000000..7d550de
--- /dev/null
+++ b/res/drawable-mdpi/ic_hold_pause_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_in_call_touch_handle_normal.png b/res/drawable-mdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..cebdc4d
--- /dev/null
+++ b/res/drawable-mdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_incall_switch_holo_dark.png b/res/drawable-mdpi/ic_incall_switch_holo_dark.png
new file mode 100644
index 0000000..5b35ef1
--- /dev/null
+++ b/res/drawable-mdpi/ic_incall_switch_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_incoming_call_bluetooth.png b/res/drawable-mdpi/ic_incoming_call_bluetooth.png
new file mode 100644
index 0000000..4b317c1
--- /dev/null
+++ b/res/drawable-mdpi/ic_incoming_call_bluetooth.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_launcher_sip_call.png b/res/drawable-mdpi/ic_launcher_sip_call.png
new file mode 100644
index 0000000..d10b6bf
--- /dev/null
+++ b/res/drawable-mdpi/ic_launcher_sip_call.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_answer_activated.png b/res/drawable-mdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..6a78f81
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_answer_normal.png b/res/drawable-mdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..da15c33
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_decline_activated.png b/res/drawable-mdpi/ic_lockscreen_decline_activated.png
new file mode 100644
index 0000000..6496626
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_decline_activated.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_decline_normal.png b/res/drawable-mdpi/ic_lockscreen_decline_normal.png
new file mode 100644
index 0000000..27fe093
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_decline_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_text_activated.png b/res/drawable-mdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..e3e4fc1
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lockscreen_text_normal.png b/res/drawable-mdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..4a2a54b
--- /dev/null
+++ b/res/drawable-mdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_contact.png b/res/drawable-mdpi/ic_menu_contact.png
new file mode 100644
index 0000000..29b7cd9
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_contact.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_merge_holo_dark.png b/res/drawable-mdpi/ic_merge_holo_dark.png
new file mode 100644
index 0000000..bd34def
--- /dev/null
+++ b/res/drawable-mdpi/ic_merge_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_more_indicator_holo_dark.png b/res/drawable-mdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..27b6d33
--- /dev/null
+++ b/res/drawable-mdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_mute_holo_dark.png b/res/drawable-mdpi/ic_mute_holo_dark.png
new file mode 100644
index 0000000..801d1e0
--- /dev/null
+++ b/res/drawable-mdpi/ic_mute_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_see_contacts_holo_dark.png b/res/drawable-mdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..ef1d2df
--- /dev/null
+++ b/res/drawable-mdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sound_bluetooth_holo_dark.png b/res/drawable-mdpi/ic_sound_bluetooth_holo_dark.png
new file mode 100644
index 0000000..c0e95cb
--- /dev/null
+++ b/res/drawable-mdpi/ic_sound_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sound_handset_holo_dark.png b/res/drawable-mdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..e5fce57
--- /dev/null
+++ b/res/drawable-mdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sound_holo_dark.png b/res/drawable-mdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..060f926
--- /dev/null
+++ b/res/drawable-mdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-mdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..adaff60
--- /dev/null
+++ b/res/drawable-mdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-mdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..2b9600b
--- /dev/null
+++ b/res/drawable-mdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_split_holo_dark.png b/res/drawable-mdpi/ic_split_holo_dark.png
new file mode 100644
index 0000000..3980acb
--- /dev/null
+++ b/res/drawable-mdpi/ic_split_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_text_holo_dark.png b/res/drawable-mdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..80b95ee
--- /dev/null
+++ b/res/drawable-mdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_videocall_holo_dark.png b/res/drawable-mdpi/ic_videocall_holo_dark.png
new file mode 100644
index 0000000..776d27a
--- /dev/null
+++ b/res/drawable-mdpi/ic_videocall_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/list_focused_holo.9.png b/res/drawable-mdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..7c0599e
--- /dev/null
+++ b/res/drawable-mdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/list_pressed_holo_dark.9.png b/res/drawable-mdpi/list_pressed_holo_dark.9.png
new file mode 100644
index 0000000..6e77525
--- /dev/null
+++ b/res/drawable-mdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png
new file mode 100644
index 0000000..92da2f0
--- /dev/null
+++ b/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_busy.png b/res/drawable-mdpi/picture_busy.png
new file mode 100644
index 0000000..ca1c6bf
--- /dev/null
+++ b/res/drawable-mdpi/picture_busy.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_conference.png b/res/drawable-mdpi/picture_conference.png
new file mode 100644
index 0000000..8f7ecd5
--- /dev/null
+++ b/res/drawable-mdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_dialing.png b/res/drawable-mdpi/picture_dialing.png
new file mode 100644
index 0000000..b81b603
--- /dev/null
+++ b/res/drawable-mdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_emergency25x25.png b/res/drawable-mdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..0a6d3c4
--- /dev/null
+++ b/res/drawable-mdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_emergency32x32.png b/res/drawable-mdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..89c05e3
--- /dev/null
+++ b/res/drawable-mdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-mdpi/picture_unknown.png b/res/drawable-mdpi/picture_unknown.png
new file mode 100644
index 0000000..cc5dd09
--- /dev/null
+++ b/res/drawable-mdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_phone_call.png b/res/drawable-mdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..70a4bbe
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_phone_call_end.png b/res/drawable-mdpi/stat_sys_phone_call_end.png
new file mode 100644
index 0000000..15e7e67
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_phone_call_end.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_phone_call_forward.png b/res/drawable-mdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..a21718c
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_phone_call_on_hold.png b/res/drawable-mdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..20ff4b6
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_vp_phone_call.png b/res/drawable-mdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..816eb56
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-mdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..20ff4b6
--- /dev/null
+++ b/res/drawable-mdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_call_pressed.png b/res/drawable-xhdpi/btn_call_pressed.png
new file mode 100644
index 0000000..48e7eba
--- /dev/null
+++ b/res/drawable-xhdpi/btn_call_pressed.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_background_texture.png b/res/drawable-xhdpi/dial_background_texture.png
new file mode 100644
index 0000000..02aacc8
--- /dev/null
+++ b/res/drawable-xhdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_0_no_plus_wht.png b/res/drawable-xhdpi/dial_num_0_no_plus_wht.png
new file mode 100644
index 0000000..11ca993
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_0_no_plus_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_1_no_vm_wht.png b/res/drawable-xhdpi/dial_num_1_no_vm_wht.png
new file mode 100644
index 0000000..8d2ac70
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_2_wht.png b/res/drawable-xhdpi/dial_num_2_wht.png
new file mode 100644
index 0000000..12c4ab9
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_3_wht.png b/res/drawable-xhdpi/dial_num_3_wht.png
new file mode 100644
index 0000000..4353e8a
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_4_wht.png b/res/drawable-xhdpi/dial_num_4_wht.png
new file mode 100644
index 0000000..ccee5cc
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_5_wht.png b/res/drawable-xhdpi/dial_num_5_wht.png
new file mode 100644
index 0000000..f27f153
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_6_wht.png b/res/drawable-xhdpi/dial_num_6_wht.png
new file mode 100644
index 0000000..8966d13
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_7_wht.png b/res/drawable-xhdpi/dial_num_7_wht.png
new file mode 100644
index 0000000..b018810
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_8_wht.png b/res/drawable-xhdpi/dial_num_8_wht.png
new file mode 100644
index 0000000..7c7b4f8
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_9_wht.png b/res/drawable-xhdpi/dial_num_9_wht.png
new file mode 100644
index 0000000..23984f0
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_pound_wht.png b/res/drawable-xhdpi/dial_num_pound_wht.png
new file mode 100644
index 0000000..be21af8
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_star_wht.png b/res/drawable-xhdpi/dial_num_star_wht.png
new file mode 100644
index 0000000..061a494
--- /dev/null
+++ b/res/drawable-xhdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/endcall_active.png b/res/drawable-xhdpi/endcall_active.png
new file mode 100644
index 0000000..5347ed2
--- /dev/null
+++ b/res/drawable-xhdpi/endcall_active.png
Binary files differ
diff --git a/res/drawable-xhdpi/endcall_background_texture.png b/res/drawable-xhdpi/endcall_background_texture.png
new file mode 100644
index 0000000..c94eeec
--- /dev/null
+++ b/res/drawable-xhdpi/endcall_background_texture.png
Binary files differ
diff --git a/res/drawable-xhdpi/endcall_disable.png b/res/drawable-xhdpi/endcall_disable.png
new file mode 100644
index 0000000..fa10196
--- /dev/null
+++ b/res/drawable-xhdpi/endcall_disable.png
Binary files differ
diff --git a/res/drawable-xhdpi/green_divider.png b/res/drawable-xhdpi/green_divider.png
new file mode 100644
index 0000000..70a9c38
--- /dev/null
+++ b/res/drawable-xhdpi/green_divider.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_ab_dialer_holo_dark.png b/res/drawable-xhdpi/ic_ab_dialer_holo_dark.png
new file mode 100644
index 0000000..3f43a82
--- /dev/null
+++ b/res/drawable-xhdpi/ic_ab_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_active_state_dialer_holo_dark.png b/res/drawable-xhdpi/ic_active_state_dialer_holo_dark.png
new file mode 100644
index 0000000..0211d69
--- /dev/null
+++ b/res/drawable-xhdpi/ic_active_state_dialer_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_contact_holo_dark.png b/res/drawable-xhdpi/ic_add_contact_holo_dark.png
new file mode 100644
index 0000000..7298882
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bluetooth_holo_dark.png b/res/drawable-xhdpi/ic_bluetooth_holo_dark.png
new file mode 100644
index 0000000..24cb893
--- /dev/null
+++ b/res/drawable-xhdpi/ic_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_btn_back.png b/res/drawable-xhdpi/ic_btn_back.png
new file mode 100644
index 0000000..077d79d
--- /dev/null
+++ b/res/drawable-xhdpi/ic_btn_back.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_btn_next.png b/res/drawable-xhdpi/ic_btn_next.png
new file mode 100644
index 0000000..f27b713
--- /dev/null
+++ b/res/drawable-xhdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_call.png b/res/drawable-xhdpi/ic_dial_action_call.png
new file mode 100644
index 0000000..ca20a91
--- /dev/null
+++ b/res/drawable-xhdpi/ic_dial_action_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_delete.png b/res/drawable-xhdpi/ic_dial_action_delete.png
new file mode 100644
index 0000000..1a6e8aa
--- /dev/null
+++ b/res/drawable-xhdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_end_call.png b/res/drawable-xhdpi/ic_dial_end_call.png
new file mode 100644
index 0000000..c24ec98
--- /dev/null
+++ b/res/drawable-xhdpi/ic_dial_end_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialpad_holo_dark.png b/res/drawable-xhdpi/ic_dialpad_holo_dark.png
new file mode 100644
index 0000000..f9a002c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_dialpad_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_end_call_holo_dark.png b/res/drawable-xhdpi/ic_end_call_holo_dark.png
new file mode 100644
index 0000000..f64f5e3
--- /dev/null
+++ b/res/drawable-xhdpi/ic_end_call_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_groups_holo_dark.png b/res/drawable-xhdpi/ic_groups_holo_dark.png
new file mode 100644
index 0000000..470ca27
--- /dev/null
+++ b/res/drawable-xhdpi/ic_groups_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hold_pause_holo_dark.png b/res/drawable-xhdpi/ic_hold_pause_holo_dark.png
new file mode 100644
index 0000000..d296675
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hold_pause_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png b/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png
new file mode 100644
index 0000000..1d112f2
--- /dev/null
+++ b/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_incall_switch_holo_dark.png b/res/drawable-xhdpi/ic_incall_switch_holo_dark.png
new file mode 100644
index 0000000..9168c32
--- /dev/null
+++ b/res/drawable-xhdpi/ic_incall_switch_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_incoming_call_bluetooth.png b/res/drawable-xhdpi/ic_incoming_call_bluetooth.png
new file mode 100644
index 0000000..662e7bb
--- /dev/null
+++ b/res/drawable-xhdpi/ic_incoming_call_bluetooth.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_launcher_sip_call.png b/res/drawable-xhdpi/ic_launcher_sip_call.png
new file mode 100644
index 0000000..e9f655b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_launcher_sip_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_answer_activated.png b/res/drawable-xhdpi/ic_lockscreen_answer_activated.png
new file mode 100644
index 0000000..cd6a6ab
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_answer_activated.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_answer_normal.png b/res/drawable-xhdpi/ic_lockscreen_answer_normal.png
new file mode 100644
index 0000000..983d5d9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_answer_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_decline_activated.png b/res/drawable-xhdpi/ic_lockscreen_decline_activated.png
new file mode 100644
index 0000000..317b329
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_decline_activated.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_decline_normal.png b/res/drawable-xhdpi/ic_lockscreen_decline_normal.png
new file mode 100644
index 0000000..2cb03e7
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_decline_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_text_activated.png b/res/drawable-xhdpi/ic_lockscreen_text_activated.png
new file mode 100644
index 0000000..41ea18a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_text_activated.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lockscreen_text_normal.png b/res/drawable-xhdpi/ic_lockscreen_text_normal.png
new file mode 100644
index 0000000..15e4779
--- /dev/null
+++ b/res/drawable-xhdpi/ic_lockscreen_text_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_contact.png b/res/drawable-xhdpi/ic_menu_contact.png
new file mode 100644
index 0000000..c16bdbb
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_contact.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_merge_holo_dark.png b/res/drawable-xhdpi/ic_merge_holo_dark.png
new file mode 100644
index 0000000..57baa20
--- /dev/null
+++ b/res/drawable-xhdpi/ic_merge_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_more_indicator_holo_dark.png b/res/drawable-xhdpi/ic_more_indicator_holo_dark.png
new file mode 100644
index 0000000..3d9897a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_more_indicator_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_mute_holo_dark.png b/res/drawable-xhdpi/ic_mute_holo_dark.png
new file mode 100644
index 0000000..a882a76
--- /dev/null
+++ b/res/drawable-xhdpi/ic_mute_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_see_contacts_holo_dark.png b/res/drawable-xhdpi/ic_see_contacts_holo_dark.png
new file mode 100644
index 0000000..279fff9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_see_contacts_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sound_bluetooth_holo_dark.png b/res/drawable-xhdpi/ic_sound_bluetooth_holo_dark.png
new file mode 100644
index 0000000..867d87d
--- /dev/null
+++ b/res/drawable-xhdpi/ic_sound_bluetooth_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sound_handset_holo_dark.png b/res/drawable-xhdpi/ic_sound_handset_holo_dark.png
new file mode 100644
index 0000000..42e19bd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_sound_handset_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sound_holo_dark.png b/res/drawable-xhdpi/ic_sound_holo_dark.png
new file mode 100644
index 0000000..aa2a5af
--- /dev/null
+++ b/res/drawable-xhdpi/ic_sound_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sound_off_speakerphone_holo_dark.png b/res/drawable-xhdpi/ic_sound_off_speakerphone_holo_dark.png
new file mode 100644
index 0000000..98a449f
--- /dev/null
+++ b/res/drawable-xhdpi/ic_sound_off_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sound_speakerphone_holo_dark.png b/res/drawable-xhdpi/ic_sound_speakerphone_holo_dark.png
new file mode 100644
index 0000000..71aad97
--- /dev/null
+++ b/res/drawable-xhdpi/ic_sound_speakerphone_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_split_holo_dark.png b/res/drawable-xhdpi/ic_split_holo_dark.png
new file mode 100644
index 0000000..db558e4
--- /dev/null
+++ b/res/drawable-xhdpi/ic_split_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_text_holo_dark.png b/res/drawable-xhdpi/ic_text_holo_dark.png
new file mode 100644
index 0000000..e80a042
--- /dev/null
+++ b/res/drawable-xhdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_videocall_holo_dark.png b/res/drawable-xhdpi/ic_videocall_holo_dark.png
new file mode 100644
index 0000000..2b7dcab
--- /dev/null
+++ b/res/drawable-xhdpi/ic_videocall_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_focused_holo.9.png b/res/drawable-xhdpi/list_focused_holo.9.png
new file mode 100644
index 0000000..690cb1e
--- /dev/null
+++ b/res/drawable-xhdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_pressed_holo_dark.9.png b/res/drawable-xhdpi/list_pressed_holo_dark.9.png
new file mode 100644
index 0000000..e4b3393
--- /dev/null
+++ b/res/drawable-xhdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png
new file mode 100644
index 0000000..88726b6
--- /dev/null
+++ b/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_busy.png b/res/drawable-xhdpi/picture_busy.png
new file mode 100644
index 0000000..0e4f13e
--- /dev/null
+++ b/res/drawable-xhdpi/picture_busy.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_conference.png b/res/drawable-xhdpi/picture_conference.png
new file mode 100644
index 0000000..1906b9b
--- /dev/null
+++ b/res/drawable-xhdpi/picture_conference.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_dialing.png b/res/drawable-xhdpi/picture_dialing.png
new file mode 100644
index 0000000..792cd8e
--- /dev/null
+++ b/res/drawable-xhdpi/picture_dialing.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_emergency25x25.png b/res/drawable-xhdpi/picture_emergency25x25.png
new file mode 100644
index 0000000..1284dcc
--- /dev/null
+++ b/res/drawable-xhdpi/picture_emergency25x25.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_emergency32x32.png b/res/drawable-xhdpi/picture_emergency32x32.png
new file mode 100644
index 0000000..75fdec2
--- /dev/null
+++ b/res/drawable-xhdpi/picture_emergency32x32.png
Binary files differ
diff --git a/res/drawable-xhdpi/picture_unknown.png b/res/drawable-xhdpi/picture_unknown.png
new file mode 100644
index 0000000..b8ee922
--- /dev/null
+++ b/res/drawable-xhdpi/picture_unknown.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_phone_call.png b/res/drawable-xhdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..1bb4340
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_phone_call_end.png b/res/drawable-xhdpi/stat_sys_phone_call_end.png
new file mode 100644
index 0000000..b0b1bc1
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_phone_call_end.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_phone_call_forward.png b/res/drawable-xhdpi/stat_sys_phone_call_forward.png
new file mode 100644
index 0000000..578a42a
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_phone_call_on_hold.png b/res/drawable-xhdpi/stat_sys_phone_call_on_hold.png
new file mode 100644
index 0000000..a6748d8
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_vp_phone_call.png b/res/drawable-xhdpi/stat_sys_vp_phone_call.png
new file mode 100644
index 0000000..ccb1fd6
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_sys_vp_phone_call_on_hold.png b/res/drawable-xhdpi/stat_sys_vp_phone_call_on_hold.png
new file mode 100644
index 0000000..a6748d8
--- /dev/null
+++ b/res/drawable-xhdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/res/drawable/background_dial_holo_dark.xml b/res/drawable/background_dial_holo_dark.xml
new file mode 100644
index 0000000..e06507f
--- /dev/null
+++ b/res/drawable/background_dial_holo_dark.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient
+            android:startColor="#ff020709"
+            android:endColor="#ff0a242d"
+            android:angle="270" />
+</shape>
diff --git a/res/drawable/btn_call.xml b/res/drawable/btn_call.xml
new file mode 100644
index 0000000..abce983
--- /dev/null
+++ b/res/drawable/btn_call.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Background resource for call button in the various dialpads.
+     Almost a copy from framework's item_background_holo_dark.xml, but has different pressed effect
+  -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_window_focused="false" android:drawable="@android:color/transparent" />
+
+    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
+    <item android:state_focused="true"  android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
+    <item android:state_focused="true"  android:state_enabled="false"                              android:drawable="@drawable/list_selector_disabled_holo_dark" />
+    <item android:state_focused="true"                                android:state_pressed="true" android:drawable="@drawable/btn_call_pressed" />
+    <item android:state_focused="false"                               android:state_pressed="true" android:drawable="@drawable/btn_call_pressed" />
+    <item android:state_focused="true"                                                             android:drawable="@drawable/list_focused_holo" />
+    <item                                                                                          android:drawable="@android:color/transparent" />
+</selector>
+
diff --git a/res/drawable/btn_compound_audio.xml b/res/drawable/btn_compound_audio.xml
new file mode 100644
index 0000000..c348c98
--- /dev/null
+++ b/res/drawable/btn_compound_audio.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Layers used to render the in-call "Audio mode" compound button.
+
+     This is a multi-mode button:
+
+     - If no bluetooth headset is connected, it behaves like a simple
+       "compound button" that switches the speaker on and off.  (This is why
+       the button itself is a ToggleButton instance.)
+
+     - But if a bluetooth headset is connected, this becomes a simple
+       action button (with no concept of a "checked" state) that brings
+       up a popup menu offering you a 3-way choice between earpiece /
+       speaker / bluetooth.
+
+     See InCallTouchUi.updateAudioButton() for the corresponding code. -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background, used to distinguish
+         between the "checked" and "unchecked" states when this button is
+         simply an on/off toggle for the speaker.
+         (In states where the audio button *not* a toggle, we explicitly
+         hide this layer.) -->
+    <item android:id="@+id/compoundBackgroundItem"
+          android:drawable="@drawable/btn_compound_background" />
+
+    <!-- The little triangle that indicates that this isn't a plain
+         button, but will instead pop up a menu.  This layer is *not*
+         shown when the audio button is simply an on/off toggle. -->
+    <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full
+         size of the button. -->
+    <item android:id="@+id/moreIndicatorItem">
+        <bitmap android:src="@drawable/ic_more_indicator_holo_dark"
+                android:gravity="center" />
+    </item>
+
+    <!-- Finally, the button icon.
+
+         When the audio button is simply an on/off toggle for the speaker,
+         the icon is a "speakerphone" regardless of whether the speaker is
+         active.  (Instead, the "on/off" indication comes from the
+         btn_compound_background selector.)
+
+         But when the audio button is connected to the 3-way popup menu,
+         we use the button's icon to indicate the current audio mode
+         (i.e. one of { earpiece (or wired headset) , speaker , bluetooth }).
+
+         Here we have separate layers for each possible foreground icon,
+         and in InCallTouchUi.updateAudioButton() we hide them all
+         *except* the one needed for the current state. -->
+
+    <!-- These all use an explicit <bitmap> to avoid scaling the icon up
+         to the full size of the button. -->
+
+    <!-- Bluetooth is active -->
+    <item android:id="@+id/bluetoothItem">
+        <bitmap android:src="@drawable/ic_sound_bluetooth_holo_dark"
+                android:gravity="center" />
+    </item>
+
+
+    <!-- Handset earpiece is active -->
+    <item android:id="@+id/handsetItem">
+        <bitmap android:src="@drawable/ic_sound_handset_holo_dark"
+                android:gravity="center" />
+    </item>
+
+    <!-- Speakerphone icon showing 'speaker on' state -->
+    <item android:id="@+id/speakerphoneOnItem">
+        <bitmap android:src="@drawable/ic_sound_speakerphone_holo_dark"
+                android:gravity="center" />
+    </item>
+
+    <!-- Speakerphone icon showing 'speaker off' state -->
+    <item android:id="@+id/speakerphoneOffItem">
+        <bitmap android:src="@drawable/ic_sound_off_speakerphone_holo_dark"
+                android:gravity="center" />
+    </item>
+
+    <!-- Generic "audio mode" icon.  Looks almost identical to
+         ic_sound_speakerphone_holo_dark.png -->
+    <!-- TODO: is this actually needed? -->
+    <!--
+        <item android:id="@+id/soundItem">
+            <bitmap android:src="@drawable/ic_sound_holo_dark"
+                    android:gravity="center" />
+        </item>
+    -->
+
+</layer-list>
diff --git a/res/drawable/btn_compound_background.xml b/res/drawable/btn_compound_background.xml
new file mode 100644
index 0000000..6f2ef5f
--- /dev/null
+++ b/res/drawable/btn_compound_background.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Background resource for "compound buttons" in the in-call UI.
+     These buttons have two states (checked and unchecked), and
+     show a blue bar along the bottom edge when checked. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+          android:drawable="@drawable/list_pressed_holo_dark" />
+    <item android:state_checked="true" android:state_focused="true"
+          android:drawable="@drawable/list_selector_focused_and_checked" />
+    <item android:state_focused="true"
+          android:drawable="@drawable/list_focused_holo" />
+    <item android:state_checked="true"
+          android:drawable="@drawable/ic_active_state_dialer_holo_dark" />
+
+    <item
+        android:drawable="@android:color/transparent" />
+
+</selector>
diff --git a/res/drawable/btn_compound_dialpad.xml b/res/drawable/btn_compound_dialpad.xml
new file mode 100644
index 0000000..b44f2fa
--- /dev/null
+++ b/res/drawable/btn_compound_dialpad.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Layers used to render the in-call "Dialpad" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:drawable="@drawable/btn_compound_background" />
+
+    <!-- ...and the actual icon on top.  Use an explicit <bitmap> to avoid scaling
+         the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_dialpad_holo_dark"
+                android:gravity="center" />
+    </item>
+
+</layer-list>
diff --git a/res/drawable/btn_compound_hold.xml b/res/drawable/btn_compound_hold.xml
new file mode 100644
index 0000000..50161ea
--- /dev/null
+++ b/res/drawable/btn_compound_hold.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Layers used to render the in-call "Hold" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:drawable="@drawable/btn_compound_background" />
+
+    <!-- ...and the actual icon on top.  Use an explicit <bitmap> to avoid scaling
+         the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_hold_pause_holo_dark"
+                android:gravity="center" />
+    </item>
+
+</layer-list>
diff --git a/res/drawable/btn_compound_mute.xml b/res/drawable/btn_compound_mute.xml
new file mode 100644
index 0000000..4e09bd9
--- /dev/null
+++ b/res/drawable/btn_compound_mute.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- The standard "compound button" background. -->
+    <item android:drawable="@drawable/btn_compound_background" />
+
+    <!-- ...and the actual icon on top.  Use an explicit <bitmap> to avoid scaling
+         the icon up to the full size of the button. -->
+    <item>
+        <bitmap android:src="@drawable/ic_mute_holo_dark"
+                android:gravity="center" />
+    </item>
+
+</layer-list>
diff --git a/res/drawable/clickable_dim_effect.xml b/res/drawable/clickable_dim_effect.xml
new file mode 100644
index 0000000..e4b4f6f
--- /dev/null
+++ b/res/drawable/clickable_dim_effect.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- Background drawable used with dim effect for secondary photo. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true" android:state_enabled="true"
+          android:drawable="@drawable/list_pressed_holo_dark" />
+    <item android:drawable="@color/on_hold_dim_effect" />
+
+</selector>
diff --git a/res/drawable/dialpad_background.xml b/res/drawable/dialpad_background.xml
new file mode 100644
index 0000000..0e31f5e
--- /dev/null
+++ b/res/drawable/dialpad_background.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/dial_background_texture"
+    android:tileMode="repeat" />
diff --git a/res/drawable/dialpad_background_opaque.xml b/res/drawable/dialpad_background_opaque.xml
new file mode 100644
index 0000000..d8792f2
--- /dev/null
+++ b/res/drawable/dialpad_background_opaque.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Opaque version of dialpad_background.xml. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- An opaque black layer underneath. -->
+    <item android:drawable="@android:color/black" />
+
+    <!-- ...and the "dial_background_texture" tiled on top. -->
+    <item>
+        <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+                android:src="@drawable/dial_background_texture"
+                android:tileMode="repeat" />
+    </item>
+
+</layer-list>
diff --git a/res/drawable/end_call_background.xml b/res/drawable/end_call_background.xml
new file mode 100644
index 0000000..33ec22f
--- /dev/null
+++ b/res/drawable/end_call_background.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Background drawable used to render the "end call" button. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_enabled="false">
+        <bitmap
+            android:src="@drawable/endcall_disable"
+            android:tileMode="repeat" />
+    </item>
+
+    <item android:state_pressed="true">
+        <bitmap
+            android:src="@drawable/endcall_active"
+            android:tileMode="repeat" />
+    </item>
+
+    <item>
+        <layer-list>
+            <item>
+                <bitmap
+                    android:src="@drawable/endcall_background_texture"
+                    android:tileMode="repeat" />
+            </item>
+
+            <!-- The standard "compound button" background. -->
+            <item android:drawable="@drawable/btn_compound_background" />
+        </layer-list>
+    </item>
+
+</selector>
diff --git a/res/drawable/ic_in_call_touch_handle.xml b/res/drawable/ic_in_call_touch_handle.xml
new file mode 100644
index 0000000..e657e92
--- /dev/null
+++ b/res/drawable/ic_in_call_touch_handle.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Touch handle for the GlowPadView widget on the incoming call screen -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:state_enabled="true"
+        android:state_active="false"
+        android:state_focused="false"
+        android:drawable="@drawable/ic_in_call_touch_handle_normal" />
+
+    <!-- "Pressed" state uses the same simple "ring" image as on the lockscreen -->
+    <item
+        android:state_enabled="true"
+        android:state_active="true"
+        android:state_focused="false"
+        android:drawable="@*android:drawable/ic_lockscreen_handle_pressed" />
+
+</selector>
diff --git a/res/drawable/ic_lockscreen_answer.xml b/res/drawable/ic_lockscreen_answer.xml
new file mode 100644
index 0000000..3184111
--- /dev/null
+++ b/res/drawable/ic_lockscreen_answer.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_normal_layer"/>
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_activated_layer" />
+   <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_answer_activated_layer" />
+</selector>
diff --git a/res/drawable/ic_lockscreen_answer_activated_layer.xml b/res/drawable/ic_lockscreen_answer_activated_layer.xml
new file mode 100644
index 0000000..6889581
--- /dev/null
+++ b/res/drawable/ic_lockscreen_answer_activated_layer.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#99cc00"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_answer_activated" />
+</layer-list>
diff --git a/res/drawable/ic_lockscreen_answer_normal_layer.xml b/res/drawable/ic_lockscreen_answer_normal_layer.xml
new file mode 100644
index 0000000..083fe3f
--- /dev/null
+++ b/res/drawable/ic_lockscreen_answer_normal_layer.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_answer_normal" />
+</layer-list>
diff --git a/res/drawable/ic_lockscreen_decline.xml b/res/drawable/ic_lockscreen_decline.xml
new file mode 100644
index 0000000..6643816
--- /dev/null
+++ b/res/drawable/ic_lockscreen_decline.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_normal_layer" />
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_decline_activated_layer" />
+    <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_decline_activated_layer" />
+</selector>
diff --git a/res/drawable/ic_lockscreen_decline_activated_layer.xml b/res/drawable/ic_lockscreen_decline_activated_layer.xml
new file mode 100644
index 0000000..e3606d1
--- /dev/null
+++ b/res/drawable/ic_lockscreen_decline_activated_layer.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#ff4040"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_decline_activated" />
+</layer-list>
diff --git a/res/drawable/ic_lockscreen_decline_normal_layer.xml b/res/drawable/ic_lockscreen_decline_normal_layer.xml
new file mode 100644
index 0000000..2896bef
--- /dev/null
+++ b/res/drawable/ic_lockscreen_decline_normal_layer.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_decline_normal" />
+</layer-list>
diff --git a/res/drawable/ic_lockscreen_text.xml b/res/drawable/ic_lockscreen_text.xml
new file mode 100644
index 0000000..f9caac8
--- /dev/null
+++ b/res/drawable/ic_lockscreen_text.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_text_normal_layer" />
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_text_activated_layer" />
+    <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_text_activated_layer" />
+</selector>
diff --git a/res/drawable/ic_lockscreen_text_activated_layer.xml b/res/drawable/ic_lockscreen_text_activated_layer.xml
new file mode 100644
index 0000000..95141e5
--- /dev/null
+++ b/res/drawable/ic_lockscreen_text_activated_layer.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#99cc00"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_text_activated" />
+</layer-list>
diff --git a/res/drawable/ic_lockscreen_text_normal_layer.xml b/res/drawable/ic_lockscreen_text_normal_layer.xml
new file mode 100644
index 0000000..42fd51d
--- /dev/null
+++ b/res/drawable/ic_lockscreen_text_normal_layer.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item
+        android:top="@dimen/incoming_call_widget_asset_margin"
+        android:right="@dimen/incoming_call_widget_asset_margin"
+        android:bottom="@dimen/incoming_call_widget_asset_margin"
+        android:left="@dimen/incoming_call_widget_asset_margin"
+        android:drawable="@drawable/ic_lockscreen_text_normal" />
+</layer-list>
diff --git a/res/drawable/list_selector_focused_and_checked.xml b/res/drawable/list_selector_focused_and_checked.xml
new file mode 100644
index 0000000..113dae8
--- /dev/null
+++ b/res/drawable/list_selector_focused_and_checked.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:drawable="@drawable/ic_active_state_dialer_holo_dark" />
+    <item android:drawable="@drawable/list_focused_holo" />
+</layer-list>
diff --git a/res/layout-land/emergency_dialer.xml b/res/layout-land/emergency_dialer.xml
new file mode 100644
index 0000000..9894a8d
--- /dev/null
+++ b/res/layout-land/emergency_dialer.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/top"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:layout_marginStart="@dimen/dialpad_horizontal_margin"
+    android:layout_marginEnd="@dimen/dialpad_horizontal_margin">
+
+    <!-- Text field above the keypad where the digits are displayed -->
+    <LinearLayout
+        android:id="@+id/digits_container"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/emergency_dialer_digits_height"
+        android:layout_marginTop="@dimen/dialpad_vertical_margin"
+        android:layout_marginBottom="69dip"
+        android:gravity="center"
+        android:background="@drawable/dialpad_background" >
+
+        <EditText
+            android:id="@+id/digits"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:scrollHorizontally="true"
+            android:textAppearance="@style/DialtactsDigitsTextAppearance"
+            android:nextFocusRight="@+id/deleteButton"
+            android:background="@android:color/transparent"
+            android:hint="@string/dialerKeyboardHintText" />
+
+        <ImageButton
+            android:id="@+id/deleteButton"
+            android:layout_width="56dip"
+            android:layout_height="match_parent"
+            android:layout_gravity="center_vertical"
+            android:gravity="center"
+            android:state_enabled="false"
+            android:background="?android:attr/selectableItemBackground"
+            android:contentDescription="@string/description_delete_button"
+            android:src="@drawable/ic_dial_action_delete" />
+    </LinearLayout>
+
+    <FrameLayout
+        android:id="@+id/dialButtonContainer"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:layout_gravity="center_horizontal"
+        android:background="@drawable/dialpad_background">
+
+        <ImageButton
+            android:id="@+id/dialButton"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:state_enabled="false"
+            android:background="@drawable/btn_call"
+            android:contentDescription="@string/description_dial_button"
+            android:src="@drawable/ic_dial_action_call" />
+
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout-land/incall_screen.xml b/res/layout-land/incall_screen.xml
new file mode 100644
index 0000000..1278115
--- /dev/null
+++ b/res/layout-land/incall_screen.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- In-call Phone UI; see InCallScreen.java. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/landscape_incall_screen"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <!-- The "Call Card", which displays info about the currently
+         active phone call(s) on the device.  See call_card.xml. -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/background_dial_holo_dark">
+        <include
+            layout="@layout/call_card"
+            android:id="@+id/callCard"
+            android:layout_width="0dp"
+            android:layout_weight="3"
+            android:layout_height="match_parent" />
+        <!-- Note: This center margin is repeated in layout-land/incall_touch_ui
+             Both layouts need to have this margin to be aligned correctly. -->
+        <View
+            android:layout_width="@dimen/dialpad_center_margin"
+            android:layout_weight="0"
+            android:layout_height="match_parent" />
+        <View
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="match_parent" />
+    </LinearLayout>
+
+    <!-- In-call onscreen touch controls; see InCallTouchUi.java.
+         This widget contains the cluster of buttons shown at the right
+         of the in-call screen, and also the DTMF dialpad (which, when
+         visible, covers the contact picture/call_card on the left half of the screen) -->
+
+    <ViewStub
+        android:id="@+id/inCallTouchUiStub"
+        android:layout="@layout/incall_touch_ui"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+    <ViewStub
+        android:id="@+id/inCallTouchUiCdmaStub"
+        android:layout="@layout/incall_touch_ui_cdma"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+    <!-- ViewStub for OTASP-related UI elements (for the CDMA "activation"
+         call.)  Note that this ViewStub provides the *entire* OTASP
+         screen, including the status area at the top *and* touch controls
+         at the bottom of the screen.  The regular CallCard and the
+         InCallTouchUi widget are not used at all during an OTASP call. -->
+    <ViewStub android:id="@+id/otaCallCardStub"
+              android:layout="@layout/otacall_card"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent" />
+
+    <!-- The "Manage conference" UI.  This panel is displayed (and covers up
+         the entire normal in-call UI) when the user clicks "Manage conference"
+         during a GSM conference call. -->
+    <ViewStub android:id="@+id/manageConferencePanelStub"
+              android:layout="@layout/manage_conference_panel"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent" />
+
+</FrameLayout>
diff --git a/res/layout-land/incall_touch_ui.xml b/res/layout-land/incall_touch_ui.xml
new file mode 100644
index 0000000..c6bbe5c
--- /dev/null
+++ b/res/layout-land/incall_touch_ui.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- In-call onscreen touch UI elements, used on some platforms.
+
+     This layout is a fullscreen overlay, drawn on top of the
+     non-touch-sensitive parts of the in-call UI (i.e. the call card).
+
+     The top-level View here is a InCallTouchUi (FrameLayout) with 2 children:
+       (1) inCallControls: the widgets visible while a regular call (or calls) is in progress
+       (2) incomingCallWidget: the UI displayed while an incoming call is ringing
+     In usual cases, one of these is visible at any given moment.
+     One exception is when incomingCallWidget is fading-out. At that moment, we show
+     inCallControls beneath incomingCallWidget for smoother transition.
+     -->
+<com.android.phone.InCallTouchUi xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android"
+    android:id="@+id/inCallTouchUi"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!--
+        (1) inCallControls: the widgets visible while a regular call
+        (or calls) is in progress
+    -->
+    <LinearLayout
+        android:id="@+id/inCallControls"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone">
+
+        <!-- DTMF dialpad shown in the left part of the screen.
+             This is wrapped in a FrameLayout because otherwise the ViewStub has no width,
+             causing the other buttons to span the full width of the screen -->
+        <FrameLayout
+            android:layout_width="0dp"
+            android:layout_weight="3"
+            android:layout_height="match_parent">
+            <ViewStub
+                android:id="@+id/dtmf_twelve_key_dialer_stub"
+                android:layout="@layout/dtmf_twelve_key_dialer_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+
+            <!-- The "extra button row": Rare button used for statues such as conference
+                 calls (GSM). Refer to layout(portrait)/incall_touch_ui for more details.
+                 When shown, this extra button row hovers over the call card, just above
+                 the primary_call_banner of layout-land/primary_call_info. -->
+            <ViewStub
+                android:id="@+id/extraButtonRow"
+                android:layout_gravity="bottom"
+                android:layout_marginBottom="@dimen/call_banner_height"
+                android:layout="@layout/extra_button_row"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+        </FrameLayout>
+
+        <!-- Note: This center margin is repeated in layout-land/incall_screen -->
+        <View
+            android:layout_width="@dimen/dialpad_center_margin"
+            android:layout_height="match_parent"
+            android:background="#66000000" />
+
+        <!-- Cluster of buttons on the right part of the screen.
+             It is named id/bottomButtons from the naming when in portrait layout. -->
+        <LinearLayout
+            android:id="@+id/bottomButtons"
+            android:background="@drawable/dialpad_background"
+            android:orientation="vertical"
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="match_parent">
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <!-- "Audio mode" -->
+                <!-- This is a multi-mode button that can behave either like a
+                     simple "compound button" with two states *or* like an
+                     action button that brings up a popup menu; see
+                     btn_compound_audio.xml and InCallTouchUi.updateAudioButton()
+                     for the full details. -->
+                <ToggleButton
+                    android:id="@+id/audioButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_audio"
+                    android:contentDescription="@string/onscreenAudioText" />
+
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+
+                <!-- This slot is either "Hold" or "Swap", depending on
+                     the state of the call.   One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Hold" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton
+                    android:id="@+id/holdButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_hold"
+                    android:contentDescription="@string/onscreenHoldText" />
+                <!-- "Swap" (or "Manage calls" in some CDMA states) -->
+                <ImageButton
+                    android:id="@+id/swapButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_incall_switch_holo_dark"
+                    android:contentDescription="@string/onscreenSwapCallsText" />
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/muteButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_mute"
+                    android:contentDescription="@string/onscreenMuteText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+
+                <!-- "Video call" -->
+                <ImageButton
+                    android:id="@+id/videoCallButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_videocall_holo_dark"
+                    android:contentDescription="@string/onscreenVideoCallText" />
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/dialpadButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_dialpad"
+                    android:contentDescription="@string/onscreenShowDialpadText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+                <!-- This slot is either "Add" or "Merge", depending on
+                     the state of the call.  One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Add Call" -->
+                <ImageButton
+                    android:id="@+id/addButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_add_contact_holo_dark"
+                    android:contentDescription="@string/onscreenAddCallText" />
+                <!-- "Merge calls" -->
+                <!-- This button is used only on GSM devices, where we know
+                     that "Add" and "Merge" are never available at the same time.
+                     The "Merge" button for CDMA devices is "cdmaMergeButton" above. -->
+                <ImageButton
+                    android:id="@+id/mergeButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_merge_holo_dark"
+                    android:contentDescription="@string/onscreenMergeCallsText" />
+            </LinearLayout>
+
+            <!-- This spacer is not used in GSM, so it has 0 width and height. The CDMA
+                 incall_touch_ui_cdma uses it as a spacer when a 5th button is shown. -->
+            <View
+                android:id="@+id/holdSwapSpacer"
+                android:layout_width="0dp"
+                android:layout_height="0dp" />
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+            <ImageButton
+                android:id="@+id/endButton"
+                android:layout_height="@dimen/in_call_end_button_height"
+                android:layout_width="match_parent"
+                android:src="@drawable/ic_dial_end_call"
+                android:background="@drawable/end_call_background"
+                android:contentDescription="@string/onscreenEndCallText" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <!--
+        (2) incomingCallWidget: the UI displayed while an incoming call is ringing.
+            See InCallTouchUi.showIncomingCallWidget().
+
+            Layout notes:
+            - Use an opaque black background since we need to cover up
+              a bit of the bottom of the contact photo
+            - The verticalOffset value gets us a little extra space above
+              the topmost "Respond by SMS" icon
+            - The negative layout_marginBottom shifts us slightly downward;
+              we're already aligned with the bottom of the screen, but we
+              don't have an icon in the downward direction so the whole
+              bottom area of this widget is just wasted space.
+    -->
+    <com.android.internal.widget.multiwaveview.GlowPadView
+        android:id="@+id/incomingCallWidget"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="right"
+        android:background="@android:color/black"
+        android:visibility="gone"
+        android:gravity="top"
+
+        prvandroid:targetDrawables="@array/incoming_call_widget_3way_targets"
+        prvandroid:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions"
+        prvandroid:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions"
+        prvandroid:handleDrawable="@drawable/ic_in_call_touch_handle"
+        prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
+        prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius"
+        prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring"
+        prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin"
+        prvandroid:vibrationDuration="20"
+        prvandroid:feedbackCount="1"
+        prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+        prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+        />
+
+</com.android.phone.InCallTouchUi>
diff --git a/res/layout-land/incall_touch_ui_cdma.xml b/res/layout-land/incall_touch_ui_cdma.xml
new file mode 100644
index 0000000..6b95164
--- /dev/null
+++ b/res/layout-land/incall_touch_ui_cdma.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- In-call onscreen touch UI elements, used on some platforms.
+
+     This layout is a fullscreen overlay, drawn on top of the
+     non-touch-sensitive parts of the in-call UI (i.e. the call card).
+
+     The top-level View here is a InCallTouchUi (FrameLayout) with 2 children:
+       (1) inCallControls: the widgets visible while a regular call (or calls) is in progress
+       (2) incomingCallWidget: the UI displayed while an incoming call is ringing
+     In usual cases, one of these is visible at any given moment.
+     One exception is when incomingCallWidget is fading-out. At that moment, we show
+     inCallControls beneath incomingCallWidget for smoother transition.
+     -->
+<com.android.phone.InCallTouchUi xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android"
+    android:id="@+id/inCallTouchUi"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!--
+        (1) inCallControls: the widgets visible while a regular call
+        (or calls) is in progress
+    -->
+    <LinearLayout
+        android:id="@+id/inCallControls"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone">
+
+        <!-- DTMF dialpad shown in the left part of the screen.
+             This is wrapped in a FrameLayout because otherwise the ViewStub has no width,
+             causing the other buttons to span the full width of the screen -->
+        <FrameLayout
+            android:layout_width="0dp"
+            android:layout_weight="3"
+            android:layout_height="match_parent">
+            <ViewStub
+                android:id="@+id/dtmf_twelve_key_dialer_stub"
+                android:layout="@layout/dtmf_twelve_key_dialer_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+
+            <!-- The "extra button row": Rare button used for statues such as conference
+                 calls (GSM). Refer to layout(portrait)/incall_touch_ui for more details.
+                 When shown, this extra button row hovers over the call card, just above
+                 the primary_call_banner of layout-land/primary_call_info.
+                 I believe, since this is the CDMA layout, that the button might not be shown. -->
+            <ViewStub
+                android:id="@+id/extraButtonRow"
+                android:layout_gravity="bottom"
+                android:layout_marginBottom="@dimen/call_banner_height"
+                android:layout="@layout/extra_button_row"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+        </FrameLayout>
+
+            <!-- "Audio mode" -->
+            <!-- This is a multi-mode button that can behave either like a
+                 simple "compound button" with two states *or* like an
+                 action button that brings up a popup menu; see
+                 btn_compound_audio.xml and InCallTouchUi.updateAudioButton()
+                 for the full details. -->
+            <ToggleButton
+                android:id="@+id/audioButton"
+                android:layout_width="0dp"
+                android:layout_weight="1"
+                android:layout_height="match_parent"
+                style="@style/InCallCompoundButton"
+                android:background="@drawable/btn_compound_audio"
+                android:contentDescription="@string/onscreenAudioText" />
+
+        <!-- Note: This center margin is repeated in layout-land/incall_screen -->
+        <View
+            android:layout_width="@dimen/dialpad_center_margin"
+            android:layout_height="match_parent"
+            android:background="#66000000" />
+
+        <!-- Cluster of buttons on the right part of the screen.
+             It is named id/bottomButtons from the naming when in portrait layout. -->
+        <LinearLayout
+            android:id="@+id/bottomButtons"
+            android:background="@drawable/dialpad_background"
+            android:orientation="vertical"
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="match_parent">
+
+
+            <View
+                android:id="@+id/holdSwapSpacer"
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/muteButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_mute"
+                    android:contentDescription="@string/onscreenMuteText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+
+                <!-- This slot is either "Hold" or "Swap", depending on
+                     the state of the call.   One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Hold" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton
+                    android:id="@+id/holdButton"
+                    android:layout_height="0dp"
+                    android:layout_weight="1"
+                    android:layout_width="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_hold"
+                    android:contentDescription="@string/onscreenHoldText" />
+                <!-- "Swap" (or "Manage calls" in some CDMA states) -->
+                <ImageButton
+                    android:id="@+id/swapButton"
+                    android:layout_height="0dp"
+                    android:layout_weight="1"
+                    android:layout_width="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_incall_switch_holo_dark"
+                    android:contentDescription="@string/onscreenSwapCallsText" />
+
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/dialpadButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_dialpad"
+                    android:contentDescription="@string/onscreenShowDialpadText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+                <!-- This slot is either "Add" or "Merge", depending on
+                     the state of the call.  One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Add Call" -->
+                <ImageButton
+                    android:id="@+id/addButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_add_contact_holo_dark"
+                    android:contentDescription="@string/onscreenAddCallText" />
+                <!-- "Merge calls" -->
+                <!-- This button is used only on GSM devices, where we know
+                     that "Add" and "Merge" are never available at the same time.
+                     The "Merge" button for CDMA devices is "cdmaMergeButton" above. -->
+                <ImageButton
+                    android:id="@+id/mergeButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_merge_holo_dark"
+                    android:contentDescription="@string/onscreenMergeCallsText" />
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+            <ImageButton
+                android:id="@+id/endButton"
+                android:layout_height="@dimen/in_call_end_button_height"
+                android:layout_width="match_parent"
+                android:src="@drawable/ic_dial_end_call"
+                android:background="@drawable/end_call_background"
+                android:contentDescription="@string/onscreenEndCallText" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <!--
+        (2) incomingCallWidget: the UI displayed while an incoming call is ringing.
+            See InCallTouchUi.showIncomingCallWidget().
+
+            Layout notes:
+            - Use an opaque black background since we need to cover up
+              a bit of the bottom of the contact photo
+            - The verticalOffset value gets us a little extra space above
+              the topmost "Respond by SMS" icon
+            - The negative layout_marginBottom shifts us slightly downward;
+              we're already aligned with the bottom of the screen, but we
+              don't have an icon in the downward direction so the whole
+              bottom area of this widget is just wasted space.
+    -->
+    <com.android.internal.widget.multiwaveview.GlowPadView
+        android:id="@+id/incomingCallWidget"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="right"
+        android:background="@android:color/black"
+        android:visibility="gone"
+        android:gravity="top"
+
+        prvandroid:targetDrawables="@array/incoming_call_widget_3way_targets"
+        prvandroid:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions"
+        prvandroid:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions"
+        prvandroid:handleDrawable="@drawable/ic_in_call_touch_handle"
+        prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
+        prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius"
+        prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring"
+        prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin"
+        prvandroid:vibrationDuration="20"
+        prvandroid:feedbackCount="1"
+        prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+        prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+        />
+
+</com.android.phone.InCallTouchUi>
diff --git a/res/layout/adn_list.xml b/res/layout/adn_list.xml
new file mode 100644
index 0000000..8bb3ebb
--- /dev/null
+++ b/res/layout/adn_list.xml
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <ListView android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+    
+    <TextView android:id="@android:id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:text="@string/simContacts_emptyLoading"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:gravity="center"
+    />
+</merge>
diff --git a/res/layout/call_card.xml b/res/layout/call_card.xml
new file mode 100644
index 0000000..aac9c1c
--- /dev/null
+++ b/res/layout/call_card.xml
@@ -0,0 +1,53 @@
+<?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.
+-->
+
+<!-- XML resource file for the CallCard used in the Phone app.
+
+     Note that the CallCard is technically the size of the full screen (since
+     our parent container is full-screen, and the layout_width and layout_height
+     here are both "match_parent"), but we manually adjust its bottom margin
+     in CallCard.updateCallInfoLayout() to make sure it doesn't overlap with
+     the onscreen buttons from incall_touch_ui.xml. -->
+<com.android.phone.CallCard xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/call_info_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <!-- The main content of the CallCard is either one or two "call info"
+         blocks, depending on whether one or two lines are in use.
+
+         The call_info blocks are stacked vertically inside a CallCard (LinearLayout),
+         each with layout_weight="1".  If only one line is in use (i.e. the
+         common case) then the 2nd call info will be GONE and thus the 1st one
+         will expand to fill the full height of the CallCard.
+
+         We set a bottom margin on this element dynamically (see
+         updateCallInfoLayout()) to make sure it doesn't overlap with either
+         the bottom button cluster or the incoming-call widget. -->
+
+    <!-- Primary "Call info" block, for the foreground call. -->
+    <include android:id="@+id/primary_call_info"
+         layout="@layout/primary_call_info" />
+
+    <!-- Secondary "Call info" block , for the background ("on hold") call. -->
+    <ViewStub android:id="@+id/secondary_call_info"
+         android:layout="@layout/secondary_call_info"
+         android:layout_width="match_parent"
+         android:layout_height="0dp"
+         android:layout_weight="1" />
+
+</com.android.phone.CallCard>
diff --git a/res/layout/caller_in_conference.xml b/res/layout/caller_in_conference.xml
new file mode 100644
index 0000000..c2c68c8
--- /dev/null
+++ b/res/layout/caller_in_conference.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="64dp"
+    android:orientation="horizontal"
+    android:gravity="center_vertical">
+
+    <!-- Caller information -->
+    <LinearLayout
+        android:id="@+id/conferenceCallerSeparate"
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="match_parent"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingStart="16dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical">
+
+        <!-- "Separate" (i.e. "go private") button for this caller -->
+        <ImageView
+            android:src="@drawable/ic_split_holo_dark"
+            android:layout_width="46dp"
+            android:layout_height="46dp"
+            android:scaleType="center"
+            android:contentDescription="@string/goPrivate"/>
+
+        <LinearLayout
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:paddingStart="8dp"
+             android:gravity="center_vertical"
+             android:orientation="vertical">
+
+            <!-- Name or number of this caller -->
+            <TextView
+                 android:id="@+id/conferenceCallerName"
+                 android:textAppearance="?android:attr/textAppearanceLarge"
+                 android:textSize="18sp"
+                 android:singleLine="true"
+                 android:layout_width="wrap_content"
+                 android:layout_height="match_parent"
+                 android:layout_marginEnd="2dp"
+                 />
+
+            <!-- Number of this caller if name is supplied above -->
+            <LinearLayout
+                 android:layout_width="wrap_content"
+                 android:layout_height="match_parent"
+                 android:orientation="horizontal"
+                 android:gravity="bottom">
+
+                <!-- Number -->
+                <TextView
+                     android:id="@+id/conferenceCallerNumber"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="14sp"
+                     android:ellipsize="marquee"
+                     android:textColor="@color/manage_conference_secondary_text_color"
+                     android:singleLine="true"
+                     android:layout_marginEnd="8dp" />
+
+                <!-- Number type -->
+                <TextView
+                    android:id="@+id/conferenceCallerNumberType"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="12sp"
+                    android:textColor="@color/manage_conference_secondary_text_color"
+                    android:ellipsize="marquee"
+                    android:singleLine="true"
+                    android:textAllCaps="true"
+                    android:gravity="start" />
+
+            </LinearLayout>  <!-- End of caller number -->
+
+        </LinearLayout>  <!-- End of caller information -->
+    </LinearLayout>
+
+    <!-- "End" button for this caller which should look like the
+         "end call" button in the main in-call UI screen -->
+    <ImageButton
+         android:id="@+id/conferenceCallerDisconnect"
+         android:layout_width="80dp"
+         android:layout_height="match_parent"
+         android:src="@drawable/ic_end_call_holo_dark"
+         android:background="@drawable/end_call_background"
+         android:scaleType="center"
+         android:contentDescription="@string/onscreenEndCallText" />
+
+</LinearLayout>  <!-- End of single list element -->
diff --git a/res/layout/change_sim_pin_screen.xml b/res/layout/change_sim_pin_screen.xml
new file mode 100644
index 0000000..8c943e1
--- /dev/null
+++ b/res/layout/change_sim_pin_screen.xml
@@ -0,0 +1,125 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        
+    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scroll"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+        <LinearLayout
+                style="@style/info_layout"
+                android:orientation="vertical">
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/oldPinLabel"/>
+
+            <EditText android:id="@+id/old_pin"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView android:id="@+id/bad_pin"
+                    android:textSize="12sp"
+                    android:textColor="#FF888888"
+                    android:visibility="gone"
+                    android:text="@string/badPin"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="10dip"
+                    android:paddingTop="1dip"
+                    android:paddingEnd="5dip"
+                    android:paddingBottom="1dip"/>
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/newPinLabel"/>
+
+            <EditText android:id="@+id/new_pin1"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/confirmPinLabel"/>
+
+            <EditText android:id="@+id/new_pin2"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView android:id="@+id/mismatch"
+                    android:textSize="12sp"
+                    android:textColor="#FF888888"
+                    android:visibility="gone"
+                    android:text="@string/mismatchPin"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="10dip"
+                    android:paddingTop="1dip"
+                    android:paddingEnd="5dip"
+                    android:paddingBottom="1dip"/>
+
+            <Button android:id="@+id/button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/doneButton"/>
+                    
+        </LinearLayout>
+        
+    </ScrollView>
+    
+    <LinearLayout
+            android:id="@+id/puk_panel"
+            style="@style/info_layout"
+            android:visibility="gone"
+            android:orientation="vertical">
+
+        <TextView
+                style="@style/info_label"
+                android:text="@string/label_puk2_code"/>
+
+        <EditText android:id="@+id/puk_code"
+                android:maxLines="1"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none"
+                android:password="true"/>
+
+        <Button android:id="@+id/puk_submit"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/doneButton"/>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/res/layout/delete_fdn_contact_screen.xml b/res/layout/delete_fdn_contact_screen.xml
new file mode 100644
index 0000000..ec8a2e0
--- /dev/null
+++ b/res/layout/delete_fdn_contact_screen.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    
+    <!-- Modified to remove the status field in favor of a toast.-->
+    
+</RelativeLayout>
diff --git a/res/layout/dialog_ussd_response.xml b/res/layout/dialog_ussd_response.xml
new file mode 100644
index 0000000..dabce3e
--- /dev/null
+++ b/res/layout/dialog_ussd_response.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<!-- Layout used as the dialog's content View for the USSD dialog.
+     The message field is actually contained within the AlertDialog's
+     scrollView ScrollView, in the contentPanel LinearLayout, so it
+     does not need to be replaced here.  For now, all we have is the
+     input_field EditText to display user data entry. -->
+<EditText xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/input_field"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"/>
diff --git a/res/layout/dialpad.xml b/res/layout/dialpad.xml
new file mode 100644
index 0000000..45ce513
--- /dev/null
+++ b/res/layout/dialpad.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- The grid of buttons used in the onscreen DTMF dialpad;
+     see dtmf_twelve_key_dialer_view.xml. -->
+<TableLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dialpad"
+    android:layout_width="match_parent"
+    android:layout_height="0px"
+    android:layout_weight="@integer/dialpad_layout_weight_dialpad"
+    android:layout_gravity="center_horizontal"
+    android:layout_marginTop="@dimen/dialpad_vertical_margin"
+    android:paddingStart="5dip"
+    android:paddingEnd="5dip"
+    android:paddingBottom="10dip"
+    android:background="@drawable/dialpad_background"
+    android:layoutDirection="ltr">
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/one" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_1_no_vm_wht"
+            android:contentDescription="@string/description_image_button_one" />
+        <ImageButton android:id="@+id/two" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_2_wht"
+            android:contentDescription="@string/description_image_button_two" />
+        <ImageButton android:id="@+id/three" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_3_wht"
+            android:contentDescription="@string/description_image_button_three" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/four" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_4_wht"
+            android:contentDescription="@string/description_image_button_four" />
+        <ImageButton android:id="@+id/five" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_5_wht"
+            android:contentDescription="@string/description_image_button_five" />
+        <ImageButton android:id="@+id/six" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_6_wht"
+            android:contentDescription="@string/description_image_button_six" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/seven" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_7_wht"
+            android:contentDescription="@string/description_image_button_seven" />
+        <ImageButton android:id="@+id/eight" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_8_wht"
+            android:contentDescription="@string/description_image_button_eight" />
+        <ImageButton android:id="@+id/nine" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_9_wht"
+            android:contentDescription="@string/description_image_button_nine" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/star" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_star_wht"
+            android:contentDescription="@string/description_image_button_star" />
+        <ImageButton android:id="@+id/zero" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_0_no_plus_wht"
+            android:contentDescription="@string/description_image_button_zero" />
+        <ImageButton android:id="@+id/pound" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_pound_wht"
+            android:contentDescription="@string/description_image_button_pound" />
+    </TableRow>
+</TableLayout>
diff --git a/res/layout/dtmf_twelve_key_dialer_view.xml b/res/layout/dtmf_twelve_key_dialer_view.xml
new file mode 100644
index 0000000..f1d7c8d
--- /dev/null
+++ b/res/layout/dtmf_twelve_key_dialer_view.xml
@@ -0,0 +1,67 @@
+<?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.
+-->
+
+<!-- Onscreen in-call DTMF dialpad.  This element contains the grid of
+     DTMF buttons (dialpad.xml) along with a TextView showing
+     the digits you've typed.
+
+     When the user presses the "Dialpad" button, this UI appears in the
+     upper part of the in-call screen, covering up the "call card" area.
+     The regular in-call controls (i.e. the InCallTouchUi widget) are
+     still visible at the lower part of the screen.
+
+     This layout is inflated in place of dtmf_twelve_key_dialer_stub
+     in incall_touch_ui.xml. -->
+<com.android.phone.DTMFTwelveKeyDialerView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dtmf_twelve_key_dialer_view"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:layout_marginTop="1dip"
+    android:visibility="gone"
+    >
+
+    <!-- Display of the digits you've typed so far.
+         This widget appears completely non-interactive to the user: you
+         can't edit or "hit backspace" since these are DTMF tones you've
+         already sent over the network.  But it's still an EditText rather
+         than a TextView because it needs to receive key events from a
+         hard keyboard, if present (see mDialerKeyListener). -->
+    <EditText
+        android:id="@+id/dtmfDialerField"
+        android:layout_width="match_parent"
+        android:layout_height="32dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="5dp"
+        android:layout_marginStart="32dp"
+        android:layout_marginEnd="32dp"
+        android:paddingEnd="16dp"
+        android:paddingStart="16dp"
+        android:singleLine="true"
+        android:scrollHorizontally="true"
+        android:textSize="24sp"
+        android:gravity="center"
+        android:freezesText="true"
+        android:background="@null"
+        android:textColor="@color/dtmf_dialer_display_text"
+        android:focusableInTouchMode="false"
+        android:clickable="false"/>
+
+    <!-- The dialpad itself -->
+    <include layout="@layout/dialpad" />
+
+</com.android.phone.DTMFTwelveKeyDialerView>
diff --git a/res/layout/edit_fdn_contact_screen.xml b/res/layout/edit_fdn_contact_screen.xml
new file mode 100644
index 0000000..0a99152
--- /dev/null
+++ b/res/layout/edit_fdn_contact_screen.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <!-- Modified for greater consistency with the rest of settings. -->
+    <LinearLayout android:id="@+id/pinc"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="15dip"
+            android:paddingBottom="5dip">
+
+            <TextView
+                android:layout_width="100dip"
+                android:layout_height="wrap_content"
+                android:paddingStart="10dip"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/name" />
+
+            <EditText android:id="@+id/fdn_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="10dip"
+                android:inputType="textPersonName"
+                android:imeOptions="actionNext"
+                android:singleLine="true"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="words" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="5dip"
+            android:paddingBottom="5dip">
+
+            <TextView
+                android:layout_width="100dip"
+                android:layout_height="wrap_content"
+                android:paddingStart="10dip"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/number" />
+
+            <EditText android:id="@+id/fdn_number"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="10dip"
+                android:inputType="phone"
+                android:imeOptions="actionDone"
+                android:singleLine="true"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none" />
+
+        </LinearLayout>
+
+        <Button android:id="@+id/button"
+            android:layout_marginTop="8dip"
+            android:layout_marginStart="10dip"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/save" />
+
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
new file mode 100644
index 0000000..d98631e
--- /dev/null
+++ b/res/layout/emergency_dialer.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- Layout for the emergency dialer; see EmergencyDialer.java. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/top"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:layout_marginStart="@dimen/dialpad_horizontal_margin"
+    android:layout_marginEnd="@dimen/dialpad_horizontal_margin">
+
+    <!-- Text field above the keypad where the digits are displayed -->
+    <LinearLayout
+        android:id="@+id/digits_container"
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="@integer/dialpad_layout_weight_digits"
+        android:layout_marginTop="@dimen/dialpad_vertical_margin"
+        android:gravity="center"
+        android:background="@drawable/dialpad_background" >
+
+        <EditText
+            android:id="@+id/digits"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:scrollHorizontally="true"
+            android:textAppearance="@style/DialtactsDigitsTextAppearance"
+            android:focusableInTouchMode="false"
+            android:nextFocusRight="@+id/deleteButton"
+            android:background="@android:color/transparent" />
+
+        <ImageButton
+            android:id="@+id/deleteButton"
+            android:layout_width="56dip"
+            android:layout_height="match_parent"
+            android:layout_gravity="center_vertical"
+            android:gravity="center"
+            android:state_enabled="false"
+            android:background="?android:attr/selectableItemBackground"
+            android:contentDescription="@string/description_delete_button"
+            android:src="@drawable/ic_dial_action_delete" />
+    </LinearLayout>
+
+    <!-- Keypad section -->
+    <include layout="@layout/dialpad" />
+
+    <View
+       android:layout_width="match_parent"
+       android:layout_height="@dimen/dialpad_vertical_margin"
+       android:background="#66000000"/>
+
+    <!-- In usual dialpad we set some padding between this button and the
+         left/right edges. Here, we don't do that just for simplicitly. -->
+    <FrameLayout
+        android:id="@+id/dialButtonContainer"
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="@integer/dialpad_layout_weight_additional_buttons"
+        android:layout_gravity="center_horizontal"
+        android:background="@drawable/dialpad_background">
+
+        <ImageButton
+            android:id="@+id/dialButton"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:state_enabled="false"
+            android:background="@drawable/btn_call"
+            android:contentDescription="@string/description_dial_button"
+            android:src="@drawable/ic_dial_action_call" />
+
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/enable_fdn_screen.xml b/res/layout/enable_fdn_screen.xml
new file mode 100644
index 0000000..9eb6fa5
--- /dev/null
+++ b/res/layout/enable_fdn_screen.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <LinearLayout android:id="@+id/pinc"
+            style="@style/entry_layout"
+            android:orientation="vertical"
+            android:layout_centerInParent="true">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="@string/enter_pin2_text" />
+
+        <EditText android:id="@+id/pin"
+            android:layout_width="200dip"
+            android:layout_height="wrap_content"
+            android:maxLines="1"
+            android:scrollHorizontally="true"
+            android:autoText="false"
+            android:capitalize="none"
+            android:password="true" />
+
+    </LinearLayout>
+
+    <TextView android:id="@+id/status"
+        android:layout_centerInParent="true"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#FF000000" />
+
+</RelativeLayout>
diff --git a/res/layout/enable_sim_pin_screen.xml b/res/layout/enable_sim_pin_screen.xml
new file mode 100644
index 0000000..417cbd9
--- /dev/null
+++ b/res/layout/enable_sim_pin_screen.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <LinearLayout android:id="@+id/pinc"
+            style="@style/entry_layout"
+            android:orientation="vertical"
+            android:layout_centerInParent="true">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#FF000000"
+            android:text="@string/enter_pin_text" />
+
+        <EditText android:id="@+id/pin"
+            android:layout_width="200dip"
+            android:layout_height="wrap_content"
+            android:maxLines="1"
+            android:scrollHorizontally="true"
+            android:autoText="false"
+            android:capitalize="none"
+            android:password="true" />
+
+    </LinearLayout>
+
+    <TextView android:id="@+id/status"
+        android:layout_centerInParent="true"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#FF000000" />
+
+</RelativeLayout>
diff --git a/res/layout/extra_button_row.xml b/res/layout/extra_button_row.xml
new file mode 100644
index 0000000..3f7e18c
--- /dev/null
+++ b/res/layout/extra_button_row.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/dialpad_background_opaque">
+    <!-- The buttons here have a text label floating off to the side
+         (which is necessary because these buttons are used only in
+         a few rare states, and the meaning of the icon might not be
+         obvious.)  The entire row (button + text) is clickable. -->
+
+    <!-- "Manage conference" -->
+    <!-- This button is used only on GSM devices, during a conference call. -->
+    <LinearLayout android:id="@+id/manageConferenceButton"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/button_cluster_side_padding"
+        android:paddingEnd="@dimen/button_cluster_side_padding"
+        android:background="?android:attr/selectableItemBackground">
+        <!-- The entire LinearLayout here is clickable, so we don't
+             care about clicks on the ImageButton itself. -->
+        <ImageButton android:id="@+id/manageConferenceButtonImage"
+            android:clickable="false"
+            style="@style/InCallExtraRowButton"
+            android:src="@drawable/ic_groups_holo_dark"
+            android:contentDescription="@string/onscreenManageConferenceText" />
+        <TextView android:id="@+id/manageConferenceButtonLabel"
+            style="@style/InCallExtraRowButtonLabel"
+            android:text="@string/onscreenManageConferenceText" />
+    </LinearLayout>
+
+    <!-- CDMA-specific "Merge" -->
+    <!-- This button is used only on CDMA devices, where we can't use
+         the Merge button in the main button row (because the "Add Call"
+         button might need to be enabled at the same time.) -->
+    <LinearLayout android:id="@+id/cdmaMergeButton"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/button_cluster_side_padding"
+        android:paddingEnd="@dimen/button_cluster_side_padding"
+        android:background="?android:attr/selectableItemBackground">
+        <!-- The entire LinearLayout here is clickable, so we don't
+             care about clicks on the ImageButton itself. -->
+        <ImageButton android:id="@+id/cdmaMergeButtonImage"
+            android:clickable="false"
+            style="@style/InCallExtraRowButton"
+            android:src="@drawable/ic_merge_holo_dark"
+            android:contentDescription="@string/onscreenMergeCallsText" />
+        <TextView android:id="@+id/cdmaMergeButtonLabel"
+            style="@style/InCallExtraRowButtonLabel"
+            android:text="@string/onscreenMergeCallsText" />
+    </LinearLayout>
+
+</FrameLayout>
diff --git a/res/layout/fake_phone_activity.xml b/res/layout/fake_phone_activity.xml
new file mode 100644
index 0000000..7cb8b86
--- /dev/null
+++ b/res/layout/fake_phone_activity.xml
@@ -0,0 +1,45 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="3dip">
+
+    <TextView android:id="@+id/infoText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/fake_phone_activity_infoText_text" />
+
+    <EditText android:id="@+id/phoneNumber"
+        android:layout_marginTop="2dip"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:scrollHorizontally="true"
+        android:autoText="false"
+        android:capitalize="none"
+        android:singleLine="true"
+        android:text="@string/fake_phone_activity_phoneNumber_text"
+        />
+
+    <Button android:id="@+id/placeCall"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/fake_phone_activity_placeCall_text">
+        <requestFocus />
+    </Button>
+</LinearLayout>
diff --git a/res/layout/get_pin2_screen.xml b/res/layout/get_pin2_screen.xml
new file mode 100644
index 0000000..6268335
--- /dev/null
+++ b/res/layout/get_pin2_screen.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <!-- Modified for greater consistency with the rest of settings. -->
+    <LinearLayout android:id="@+id/pinc"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="15dip"
+        android:layout_marginStart="15dip">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingBottom="5dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="@string/enter_pin2_text" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <EditText
+                android:id="@+id/pin"
+                android:layout_width="200dip"
+                android:layout_height="wrap_content"
+                android:maxLines="1"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none"
+                android:password="true"
+                android:imeOptions="actionDone" />
+
+            <Button
+                android:id="@+id/ok"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@android:string/ok"/>
+        </LinearLayout>
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/incall_screen.xml b/res/layout/incall_screen.xml
new file mode 100644
index 0000000..64df29a
--- /dev/null
+++ b/res/layout/incall_screen.xml
@@ -0,0 +1,65 @@
+<?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.
+-->
+
+<!-- In-call Phone UI; see InCallScreen.java. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <!-- The "Call Card", which displays info about the currently
+         active phone call(s) on the device.  See call_card.xml.
+
+         Note that the CallCard is technically the size of the full screen
+         (since layout_width and layout_height are both "match_parent" here) but
+         we manually adjust its bottom margin in CallCard.updateCallInfoLayout()
+         to make sure it doesn't overlap with the onscreen buttons from
+         incall_touch_ui.xml. -->
+    <include
+        layout="@layout/call_card"
+        android:id="@+id/callCard"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+    <!-- In-call onscreen touch controls; see InCallTouchUi.java.
+         This widget contains the cluster of buttons shown at the bottom
+         of the in-call screen, and also the DTMF dialpad (which, when
+         visible, covers the upper part of the screen too.) -->
+    <include layout="@layout/incall_touch_ui"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+    <!-- ViewStub for OTASP-related UI elements (for the CDMA "activation"
+         call.)  Note that this ViewStub provides the *entire* OTASP
+         screen, including the status area at the top *and* touch controls
+         at the bottom of the screen.  The regular CallCard and the
+         InCallTouchUi widget are not used at all during an OTASP call. -->
+    <ViewStub android:id="@+id/otaCallCardStub"
+              android:layout="@layout/otacall_card"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              />
+
+    <!-- The "Manage conference" UI.  This panel is displayed (and covers up
+         the entire normal in-call UI) when the user clicks "Manage conference"
+         during a GSM conference call. -->
+    <ViewStub android:id="@+id/manageConferencePanelStub"
+              android:layout="@layout/manage_conference_panel"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              />
+
+</FrameLayout>
diff --git a/res/layout/incall_touch_ui.xml b/res/layout/incall_touch_ui.xml
new file mode 100644
index 0000000..5d3ea27
--- /dev/null
+++ b/res/layout/incall_touch_ui.xml
@@ -0,0 +1,243 @@
+<?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.
+-->
+
+<!-- In-call onscreen touch UI elements, used on some platforms.
+
+     This layout is a fullscreen overlay, drawn on top of the
+     non-touch-sensitive parts of the in-call UI (i.e. the call card).
+
+     The top-level View here is a InCallTouchUi (FrameLayout) with 2 children:
+       (1) inCallControls: the widgets visible while a regular call (or calls) is in progress
+       (2) incomingCallWidget: the UI displayed while an incoming call is ringing
+     In usual cases, one of these is visible at any given moment.
+     One exception is when incomingCallWidget is fading-out. At that moment, we show
+     inCallControls beneath incomingCallWidget for smoother transition.
+     -->
+<com.android.phone.InCallTouchUi xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android"
+    android:id="@+id/inCallTouchUi"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+    <!--
+        (1) inCallControls: the widgets visible while a regular call
+        (or calls) is in progress
+    -->
+    <RelativeLayout android:id="@+id/inCallControls"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:visibility="gone"
+                    >
+        <!-- DTMF dialpad shown in the upper part of the screen
+             (above the main cluster of buttons.) -->
+        <ViewStub android:id="@+id/dtmf_twelve_key_dialer_stub"
+                  android:layout="@layout/dtmf_twelve_key_dialer_view"
+                  android:layout_width="match_parent"
+                  android:layout_height="match_parent"
+                  android:layout_above="@+id/bottomButtons"
+                  android:layout_marginBottom="@dimen/dialpad_vertical_margin" />
+
+        <!-- Main cluster of onscreen buttons on the lower part of the screen. -->
+        <LinearLayout android:id="@+id/bottomButtons"
+                      android:orientation="vertical"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content"
+                      android:layout_alignParentBottom="true">
+
+            <!-- Row 1, the "extra button row": A couple of relatively rare
+                 buttons used only in certain call states.
+                 Most of the time this whole row is GONE.
+                 For now, at least, there's only ever one button visible here
+                 at a time, so this can be a simple FrameLayout. -->
+            <ViewStub android:id="@+id/extraButtonRow"
+                      android:layout="@layout/extra_button_row"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content" />
+
+            <!-- Row 2: The "End call" button. -->
+            <ImageButton android:id="@+id/endButton"
+                style="@style/InCallEndButton"
+                android:layout_width="match_parent"
+                android:src="@drawable/ic_dial_end_call"
+                android:background="@drawable/end_call_background"
+                android:contentDescription="@string/onscreenEndCallText" />
+
+            <!-- Row 3: The main batch of in-call buttons:
+                    Dialpad / Audio mode / Mute / Hold / Add call
+                 Visible in all states except while an incoming call is
+                 ringing. -->
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/dialpad_background"
+                android:paddingStart="@dimen/button_cluster_side_padding"
+                android:paddingEnd="@dimen/button_cluster_side_padding"
+                >
+
+                <!-- This row has either 4 or 5 buttons, depending on
+                     whether the device supports "Hold" (i.e. 4 buttons on
+                     CDMA devices, 5 buttons on GSM devices.)  The buttons
+                     are interspersed with 'layout_weight="1"' placeholder
+                     views so that they'll be spaced evenly in both cases.
+
+                     But note there are a couple of *pairs* of buttons that share a
+                     single "slot", namely Hold/Swap and Add/Merge.  For these, the
+                     code in InCallTouchUi is responsible for making sure that at any
+                     point exactly one of the pair is VISIBLE and the other is
+                     GONE. -->
+
+                <!-- Separator between left padding and 1st button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "Dialpad" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton android:id="@+id/dialpadButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_dialpad"
+                    android:contentDescription="@string/onscreenShowDialpadText"
+                    />
+
+                <!-- Separator between 1st and 2nd button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "Audio mode" -->
+                <!-- This is a multi-mode button that can behave either like a
+                     simple "compound button" with two states *or* like an
+                     action button that brings up a popup menu; see
+                     btn_compound_audio.xml and InCallTouchUi.updateAudioButton()
+                     for the full details. -->
+                <ToggleButton android:id="@+id/audioButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_audio"
+                    android:contentDescription="@string/onscreenAudioText"
+                    />
+
+                <!-- Separator between 2nd and 3rd button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "Mute" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton android:id="@+id/muteButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_mute"
+                    android:contentDescription="@string/onscreenMuteText"
+                    />
+
+                <!-- Separator between 3rd and 4th button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- This slot is either "Hold" or "Swap", depending on
+                     the state of the call.   One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Hold" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton android:id="@+id/holdButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_hold"
+                    android:contentDescription="@string/onscreenHoldText"
+                    />
+                <!-- "Swap" (or "Manage calls" in some CDMA states) -->
+                <ImageButton android:id="@+id/swapButton"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_incall_switch_holo_dark"
+                    android:contentDescription="@string/onscreenSwapCallsText"
+                    />
+
+                <!-- Separator between 4th and 5th button (if 5th exists) -->
+                <View android:id="@+id/holdSwapSpacer"
+                      style="@style/VerticalSeparator" />
+
+                <!-- This slot is either "Add" or "Merge", depending on
+                     the state of the call.  One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Add Call" -->
+                <ImageButton android:id="@+id/addButton"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_add_contact_holo_dark"
+                    android:contentDescription="@string/onscreenAddCallText"
+                    />
+                <!-- "Merge calls" -->
+                <!-- This button is used only on GSM devices, where we know
+                     that "Add" and "Merge" are never available at the same time.
+                     The "Merge" button for CDMA devices is "cdmaMergeButton" above. -->
+                <ImageButton android:id="@+id/mergeButton"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_merge_holo_dark"
+                    android:contentDescription="@string/onscreenMergeCallsText"
+                    />
+
+                <!-- Separator between 5th and 6th button (if 6th exists) -->
+                <View android:id="@+id/videoCallSpacer"
+                    style="@style/VerticalSeparator" />
+
+                <!-- This button is use for converting an ongoing call into a video call. -->
+                <ImageButton android:id="@+id/videoCallButton"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_videocall_holo_dark"
+                    android:contentDescription="@string/onscreenVideoCallText"
+                    />
+
+                <!-- Separator between 4th (or 5th) button and right padding -->
+                <View style="@style/VerticalSeparator" />
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <!--
+        (2) incomingCallWidget: the UI displayed while an incoming call is ringing.
+            See InCallTouchUi.showIncomingCallWidget().
+
+            Layout notes:
+            - Use an opaque black background since we need to cover up
+              a bit of the bottom of the contact photo
+            - The verticalOffset value gets us a little extra space above
+              the topmost "Respond by SMS" icon
+            - The negative layout_marginBottom shifts us slightly downward;
+              we're already aligned with the bottom of the screen, but we
+              don't have an icon in the downward direction so the whole
+              bottom area of this widget is just wasted space.
+    -->
+    <com.android.internal.widget.multiwaveview.GlowPadView
+        android:id="@+id/incomingCallWidget"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center|bottom"
+        android:layout_marginTop="20dip"
+        android:layout_marginBottom="-46dp"
+        android:background="@android:color/black"
+        android:visibility="gone"
+        android:gravity="top"
+
+        prvandroid:targetDrawables="@array/incoming_call_widget_3way_targets"
+        prvandroid:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions"
+        prvandroid:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions"
+        prvandroid:handleDrawable="@drawable/ic_in_call_touch_handle"
+        prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
+        prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius"
+        prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring"
+        prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin"
+        prvandroid:vibrationDuration="20"
+        prvandroid:feedbackCount="1"
+        prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+        prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+        />
+
+</com.android.phone.InCallTouchUi>
diff --git a/res/layout/manage_conference_panel.xml b/res/layout/manage_conference_panel.xml
new file mode 100644
index 0000000..f1fbfdf
--- /dev/null
+++ b/res/layout/manage_conference_panel.xml
@@ -0,0 +1,132 @@
+<?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.
+-->
+
+<!-- The "Manage conference" UI.  This panel is displayed (instead of
+     the inCallPanel) when the user clicks the "Manage conference"
+     button while on a conference call. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/manageConferencePanel"
+                android:background="#FF000000"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:visibility="gone"
+                >
+    <!-- This original header (with timer) is currently not being used,
+         but may be of use in the future. -->
+    <!-- Header, including chronometer and List divider -->
+    <Chronometer
+        android:id="@+id/manageConferencePanelHeader"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textSize="24sp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="5dip"
+        android:layout_marginBottom="5dip"
+        android:visibility="gone"/>
+
+    <ImageView
+        android:id="@+id/manageConferencePanelDivider"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:src="@android:drawable/divider_horizontal_dark"
+        android:scaleType="fitXY"
+        android:layout_below="@id/manageConferencePanelHeader"
+        android:visibility="gone"/>
+    <!-- End of the original header -->
+
+    <!-- Header which looks like ActionBar. -->
+    <FrameLayout
+        android:id="@+id/manageConferenceHeader"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@*android:drawable/ab_transparent_dark_holo">
+
+        <LinearLayout
+            android:id="@+id/manage_done"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="?android:attr/selectableItemBackground"
+            android:clickable="true"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:src="?android:attr/homeAsUpIndicator"
+                android:layout_gravity="center_vertical|left"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="?android:attr/actionBarSize"
+                style="@*android:style/TextAppearance.Holo.Widget.ActionBar.Title"
+                android:gravity="center_vertical"
+                android:text="@string/manageConferenceLabel"/>
+        </LinearLayout>
+
+    </FrameLayout>  <!-- End of header -->
+
+    <!-- The scrollview wrapper for the list of callers on
+         the conference call (in case the list gets too long). -->
+    <ScrollView
+        android:id="@+id/conferenceList"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/manageConferenceHeader">
+
+        <!-- The actual list of callers; this embedded LinearLayout
+             required since scrollview only supports a single child. -->
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:showDividers="middle|end"
+            android:divider="?android:attr/listDivider">
+
+            <!-- A conference can have at most MAX_CALLERS_IN_CONFERENCE (= 5) callers,
+                 so just define all those UI elements here. -->
+
+            <!-- Caller 0 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller0"/>
+
+            <!-- Caller 1 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller1"/>
+
+            <!-- Caller 2 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller2"/>
+
+            <!-- Caller 3 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller3"/>
+
+            <!-- Caller 4 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller4"/>
+
+        </LinearLayout>  <!-- End of "list of callers on conference call" -->
+
+    </ScrollView>  <!-- End of scrolling list wrapper for the linear layout -->
+
+</RelativeLayout>
diff --git a/res/layout/otacall_card.xml b/res/layout/otacall_card.xml
new file mode 100644
index 0000000..d90e940
--- /dev/null
+++ b/res/layout/otacall_card.xml
@@ -0,0 +1,195 @@
+<?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.
+-->
+
+<!-- Top-level container for UI elements used during the OTASP call;
+     see OtaUtils.java.
+
+     This layout file contains the entire OTASP screen, including the
+     status area at the top and touch controls at the bottom of the
+     screen.  The regular CallCard and the InCallTouchUi widget are not
+     used at all during an OTASP call.
+
+     The OTASP screen contains (in order, from top to bottom):
+     - Title and explanatory text
+     - Progress status message
+     - Progress bar
+     - Success / failure message
+     - DTMF dialpad
+     [ Separator / placeholder view between the "upper widgets" above and the buttons below ]
+     - Speaker button
+     - Action buttons like "Activate"/"Skip", or "End", or "Next"
+       (depending on whether we're in the listen/progress state
+       of the final success/failure state.
+
+     Only some of these elements are visible in any given state.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/otaTopLevel"
+    android:orientation="vertical"
+    android:gravity="center_horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+    <LinearLayout android:id="@+id/otaUpperWidgets"
+                  android:orientation="vertical"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content" >
+
+        <!-- Title: "Activate your phone" -->
+        <TextView android:id="@+id/otaTitle"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaWizardTitle"
+                  android:text="@string/ota_title_activate"
+        />
+
+        <View
+                  android:layout_width="wrap_content"
+                  android:layout_height="1dip"
+                  android:layout_gravity="center"
+                  android:background="@drawable/green_divider"
+                  android:layout_marginTop="10dip"
+                  android:focusable="false"
+                  android:clickable="false"
+        />
+
+        <!-- Explanatory text: "A special call needs to be made to activate
+             your phone service"... -->
+        <TextView android:id="@+id/otaActivate"
+                  android:layout_marginTop="@dimen/otaactivate_layout_marginTop"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  android:text="@string/ota_touch_activate"
+                  />
+
+        <!-- Progress status message, e.g. "Please wait while your phone
+             is being programmed" (in some states) -->
+        <TextView android:id="@+id/otaListenProgress"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:layout_marginTop="@dimen/otalistenprogress_layout_marginTop"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  />
+
+        <!-- Progress bar -->
+        <ProgressBar android:id="@+android:id/progress_large"
+                     style="?android:attr/progressBarStyleHorizontal"
+                     android:layout_marginTop="20dip"
+                     android:layout_width="match_parent"
+                     android:layout_height="wrap_content"
+                     android:visibility="gone"/>
+
+        <!-- Success or failure message (in some states) -->
+        <TextView android:id="@+id/otaSuccessFailStatus"
+                  android:gravity="start"
+                  android:layout_marginTop="@dimen/otasuccessfail_layout_marginTop"
+                  android:layout_marginStart="5dip"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  />
+
+        <!-- DTMF dialpad -->
+        <com.android.phone.DTMFTwelveKeyDialerView
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/otaDtmfDialerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:layout_marginTop="1dip"
+                android:visibility="gone" >
+
+            <!-- Note there's no "dtmfDialerField" EditText here;
+                 in the OTA UI there's no visible "digits" display
+                 attached to the dialpad. -->
+
+            <!-- Keypad section -->
+            <include layout="@layout/dialpad" />
+
+        </com.android.phone.DTMFTwelveKeyDialerView>
+
+    </LinearLayout>
+
+    <!-- Separator / placeholder view between the widgets at the upper
+         part of the screen and the buttons at the bottom.  This view sets
+         layout_weight="1" to ensure that the buttons will be positioned
+         at the very bottom of the screen. -->
+    <View android:id="@+id/otaSeparator"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+    />
+
+    <!-- "Speaker" button -->
+    <ToggleButton android:id="@+id/otaSpeakerButton"
+              android:layout_gravity="center"
+              android:textOn="@string/ota_speaker"
+              android:textOff="@string/ota_speaker"
+              style="@style/ccOtaButton" />
+
+    <!-- (2) Activate/cancel buttons -->
+    <RelativeLayout android:id="@+id/callCardOtaActivate"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "Activate" button -->
+        <Button android:id="@+id/otaActivateButton"
+                android:text="@string/ota_activate"
+                style="@style/ccOtaNextButton" />
+
+        <!-- "Skip" button -->   <!--  TODO: borrowing another button's label for now because I missed the localization deadline for adding a @string/ota_skip -->
+        <Button android:id="@+id/otaSkipButton"
+                android:text="@string/ota_skip_activation_dialog_skip_label"
+                style="@style/ccOtaSkipButton" />
+
+    </RelativeLayout>
+
+    <!-- (3) OTA listen/progress buttons -->
+    <RelativeLayout android:id="@+id/callCardOtaListenProgress"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "End" button -->
+        <Button android:id="@+id/otaEndButton"
+                android:text="@string/ota_call_end"
+                android:drawableStart="@drawable/ic_btn_back"
+                android:drawablePadding="3dip"
+                style="@style/ccOtaSkipButton" />
+    </RelativeLayout>
+
+    <!-- (4) OTA Success/Failure button -->
+    <RelativeLayout android:id="@+id/callCardOtaFailOrSuccessful"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "Next" button -->
+        <Button android:id="@+id/otaNextButton"
+                android:text="@string/ota_next"
+                android:drawableEnd="@drawable/ic_btn_next"
+                android:drawablePadding="10dip"
+                style="@style/ccOtaNextButton" />
+
+        <!-- "Try Again" button -->
+        <Button android:id="@+id/otaTryAgainButton"
+                android:text="@string/ota_try_again"
+                style="@style/ccOtaSkipButton" />
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/outgoing_call_broadcaster.xml b/res/layout/outgoing_call_broadcaster.xml
new file mode 100644
index 0000000..eb14647
--- /dev/null
+++ b/res/layout/outgoing_call_broadcaster.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- The screen shown during CALL intent being handled. If the process is
+     unexpectedly slow, we'll make the spinner VISIBLE, to notify users
+     the black screen is intentional. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/outgoing_call_broadcaster"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <ProgressBar
+        android:id="@+id/spinner"
+        style="@android:style/Widget.ProgressBar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:visibility="gone"/>
+</FrameLayout>
diff --git a/res/layout/pref_dialog_editphonenumber.xml b/res/layout/pref_dialog_editphonenumber.xml
new file mode 100644
index 0000000..b1d96f8
--- /dev/null
+++ b/res/layout/pref_dialog_editphonenumber.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- Layout used as the dialog's content View for EditPhoneNumberPreference. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:padding="5dip"
+    android:orientation="vertical">
+    
+    <TextView android:id="@+android:id/message"
+        style="?android:attr/textAppearanceMedium"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="?android:attr/textColorPrimary"
+        android:paddingStart="10dip"
+        android:paddingEnd="10dip"/>
+        
+    <LinearLayout
+        android:id="@+id/number_field"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1.0"
+        android:addStatesFromChildren="true"
+        android:gravity="center_vertical"
+        android:baselineAligned="false"
+        android:paddingStart="10dip"
+        android:paddingEnd="10dip">
+
+        <!-- The EditText field in the dialog is now created programmatically.
+             We're replacing the field in this layout with a container to 
+             attach the EditText field. -->
+        <LinearLayout android:id="@+id/edit_container"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="wrap_content"/>
+
+        <ImageButton android:id="@+id/select_contact"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="10dip"
+            android:src="@drawable/ic_see_contacts_holo_dark"
+            android:contentDescription="@string/selectContact" />
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/pref_dialog_editpin.xml b/res/layout/pref_dialog_editpin.xml
new file mode 100644
index 0000000..a5376a8
--- /dev/null
+++ b/res/layout/pref_dialog_editpin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<!-- Layout used as the dialog's content View for EditTextPreference. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@*android:id/edittext_container"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:padding="5dip"
+    android:orientation="vertical">
+    
+    <TextView android:id="@+android:id/message"
+        style="?android:attr/textAppearanceSmall"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="?android:attr/textColorSecondary" />
+        
+</LinearLayout>
diff --git a/res/layout/primary_call_info.xml b/res/layout/primary_call_info.xml
new file mode 100644
index 0000000..aeeeec5
--- /dev/null
+++ b/res/layout/primary_call_info.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- XML resource file for primary call info, which will be used by CallCard.
+     See also call_card.xml. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_weight="1">
+
+    <!-- Contact photo for primary call info -->
+    <ImageView android:id="@+id/photo"
+         android:layout_alignParentStart="true"
+         android:layout_alignParentTop="true"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:gravity="top|center_horizontal"
+         android:scaleType="centerCrop"
+         android:contentDescription="@string/contactPhoto" />
+
+    <!-- Used when the phone call is on hold, dimming the primary photo
+
+         Note: Theoretically it is possible to achieve this effect using
+         Drawable#setColorFilter().
+
+         But watch out: we also use cross fade between primary and
+         secondary photo, which may interfere with the dim effect with
+         setColorFilter(). To try it out, use GSM phones and do multiple
+         calls.
+
+         Detail: during the cross-fade effect we are currently using
+         TransitionDrawable. TransitionDrawable#setColorFilter() will call
+         the equivalent method for *both* drawables which are shared by
+         the two ImageViews. If we set setColorFilter() for "on hold" effect
+         during the cross-fade, *both* primary and secondary photos become
+         dim.
+
+         Theoretically it can be avoided (by copying drawable, or carefully
+         calling setColorFilter() conditionally. But it doesn't bang for the
+         buck for now.
+
+         TODO: try that. It may be smoother with slower devices.
+      -->
+    <View android:id="@+id/dim_effect_for_primary_photo"
+         android:layout_alignParentStart="true"
+         android:layout_alignParentTop="true"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:background="@color/on_hold_dim_effect"
+         android:visibility="gone" />
+
+    <!-- "Call Banner" for primary call, the foregound or ringing call.
+         The "call banner" is a block of info about a single call,
+         including the contact name, phone number, call time counter,
+         and other status info.  This info is shown as a "banner"
+         overlaid across the top of contact photo. -->
+    <RelativeLayout android:id="@+id/primary_call_banner"
+        style="@style/PrimaryCallInfoPrimaryCallBanner"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/call_banner_height"
+        android:paddingStart="@dimen/call_banner_side_padding"
+        android:paddingEnd="@dimen/call_banner_side_padding"
+        android:paddingTop="@dimen/call_banner_top_bottom_padding"
+        android:paddingBottom="@dimen/call_banner_top_bottom_padding"
+        android:background="@color/incall_call_banner_background">
+
+        <!-- Name (or the phone number, if we don't have a name to display). -->
+        <TextView android:id="@+id/name"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentStart="true"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingEnd="@dimen/call_banner_name_number_right_padding"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:singleLine="true"
+            android:textAlignment="viewStart"/>
+
+        <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
+        <LinearLayout android:id="@+id/labelAndNumber"
+            android:layout_below="@id/name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingEnd="@dimen/call_banner_name_number_right_padding"
+            android:orientation="horizontal">
+            <TextView android:id="@+id/phoneNumber"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:textDirection="ltr" />
+            <TextView android:id="@+id/label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:textAllCaps="true"
+                android:singleLine="true"
+                android:layout_marginStart="6dp" />
+        </LinearLayout>
+
+        <!-- Elapsed time indication for a call in progress. -->
+        <TextView android:id="@+id/elapsedTime"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:singleLine="true"
+            android:visibility="invisible" />
+
+        <!-- Call type indication: a special label and/or branding
+             for certain kinds of calls (like "Internet call" for a SIP call.) -->
+        <TextView android:id="@+id/callTypeLabel"
+            android:layout_below="@id/labelAndNumber"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:maxLines="1"
+            android:ellipsize="end" />
+
+    </RelativeLayout>  <!-- End of call_banner -->
+
+    <LinearLayout android:id="@+id/secondary_info_container"
+        style="@style/PrimaryCallInfoSecondaryInfoContainer"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical|right"
+        android:orientation="vertical"
+        android:background="@color/incall_secondary_info_background"
+        android:animateLayoutChanges="true">
+
+        <!-- Shown when a gateway provider is used during any outgoing call. -->
+        <LinearLayout android:id="@+id/providerInfo"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="@dimen/provider_info_top_bottom_padding"
+            android:paddingBottom="@dimen/provider_info_top_bottom_padding"
+            android:paddingStart="@dimen/call_banner_side_padding"
+            android:paddingEnd="@dimen/call_banner_side_padding"
+            android:gravity="end"
+            android:orientation="horizontal"
+            android:background="@android:color/transparent">
+            <TextView android:id="@+id/providerLabel"
+                android:layout_width="0px"
+                android:layout_height="wrap_content"
+                android:layout_weight="6"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textAllCaps="true"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:ellipsize="marquee" />
+            <TextView android:id="@+id/providerAddress"
+                android:layout_width="0px"
+                android:layout_height="wrap_content"
+                android:layout_weight="4"
+                android:gravity="end"
+                android:paddingStart="8dp"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textAllCaps="true"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:ellipsize="middle" />
+        </LinearLayout>
+
+        <!-- The "call state label": In some states, this shows a special
+             indication like "Dialing" or "Incoming call" or "Call ended".
+             It's unused for the normal case of an active ongoing call. -->
+        <TextView android:id="@+id/callStateLabel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="@dimen/provider_info_top_bottom_padding"
+            android:paddingBottom="@dimen/provider_info_top_bottom_padding"
+            android:paddingStart="@dimen/call_banner_side_padding"
+            android:paddingEnd="@dimen/call_banner_side_padding"
+            android:gravity="end"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:textAllCaps="true"
+            android:background="@android:color/transparent"
+            android:singleLine="true"
+            android:ellipsize="end" />
+    </LinearLayout>
+
+    <!-- Social status (currently unused) -->
+    <!-- <TextView android:id="@+id/socialStatus"
+              android:layout_below="@id/callTypeLabel"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:textAppearance="?android:attr/textAppearanceSmall"
+              android:textColor="@color/incall_call_banner_text_color"
+              android:maxLines="2"
+              android:ellipsize="end"
+              /> -->
+</RelativeLayout>
diff --git a/res/layout/secondary_call_info.xml b/res/layout/secondary_call_info.xml
new file mode 100644
index 0000000..b84ba82
--- /dev/null
+++ b/res/layout/secondary_call_info.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!-- XML resource file for secondary call info, which will be used by CallCard.
+     See also call_card.xml.
+
+     This should look similar to primary call info (primary_call_info.xml), but
+     to optimize the view usage, the structure is different. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Contact photo for call_info #2 -->
+    <ImageView android:id="@+id/secondaryCallPhoto"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="top|center_horizontal"
+        android:scaleType="centerCrop"
+        android:contentDescription="@string/onHold" />
+
+    <!-- Overlaps secondary photo when the secondary call is in HOLD state.
+
+         TODO: We could do better. See equivalent in primary xml. -->
+    <View android:id="@+id/dim_effect_for_secondary_photo"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:background="@drawable/clickable_dim_effect"
+         android:visibility="gone" />
+
+    <!-- Name (or the phone number, if we don't have a name to display). -->
+    <TextView android:id="@+id/secondaryCallName"
+        style="@style/SecondaryCallInfoSecondaryCallName"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/call_banner_height"
+        android:gravity="top|start"
+        android:paddingStart="@dimen/call_banner_side_padding"
+        android:paddingEnd="@dimen/call_banner_side_padding"
+        android:paddingTop="@dimen/call_banner_top_bottom_padding"
+        android:paddingBottom="@dimen/call_banner_top_bottom_padding"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textColor="@color/incall_call_banner_text_color"
+        android:singleLine="true"
+        android:background="@color/incall_call_banner_background" />
+
+    <!-- Call status of the background call, usually the string "On hold". -->
+    <TextView android:id="@+id/secondaryCallStatus"
+        style="@style/SecondaryCallInfoSecondaryCallStatus"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/call_banner_height"
+        android:gravity="top|end"
+        android:paddingStart="@dimen/call_banner_side_padding"
+        android:paddingEnd="@dimen/call_banner_side_padding"
+        android:paddingTop="@dimen/call_banner_top_bottom_padding"
+        android:paddingBottom="@dimen/call_banner_top_bottom_padding"
+        android:text="@string/onHold"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="@color/incall_call_banner_text_color"
+        android:textAllCaps="true"
+        android:singleLine="true" />
+</FrameLayout>
diff --git a/res/layout/sim_import_list_entry.xml b/res/layout/sim_import_list_entry.xml
new file mode 100644
index 0000000..0c89cfe
--- /dev/null
+++ b/res/layout/sim_import_list_entry.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:textAppearance="?android:attr/textAppearanceLarge"
+    android:paddingStart="16dip"
+    android:gravity="center_vertical"
+/>
diff --git a/res/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
new file mode 100644
index 0000000..5e98cff
--- /dev/null
+++ b/res/layout/sim_ndp.xml
@@ -0,0 +1,83 @@
+<?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.
+-->
+
+<!-- Layout for the Phone app's IccNetworkDepersonalizationPanel. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingStart="20dip"
+        android:paddingEnd="20dip">
+
+    <LinearLayout
+            android:id="@+id/entry_panel"
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true">
+
+        <TextView
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/label_ndp"/>
+
+        <EditText android:id="@+id/pin_entry"
+                android:inputType="textPassword"
+                android:imeOptions="actionDone"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:scrollHorizontally="true" />
+
+        <Button android:id="@+id/ndp_unlock"
+                android:layout_gravity="center_horizontal"
+                android:text="@string/sim_ndp_unlock_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingStart="20dip"
+                android:paddingEnd="20dip" />
+
+        <!-- Dismiss button.  (Not present in some products; see
+             sim_network_unlock_allow_dismiss in config.xml.) -->
+        <Button android:id="@+id/ndp_dismiss"
+                android:layout_gravity="center_horizontal"
+                android:text="@string/sim_ndp_dismiss_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingStart="20dip"
+                android:paddingEnd="20dip" />
+
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/status_panel"
+            android:orientation="vertical"
+            android:visibility="gone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:colorBackground="#80808080"
+            android:panelColorBackground="#fff">
+
+        <TextView android:id="@+id/status_text"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textStyle="bold"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:colorBackground="#80808080"
+            android:text="@string/requesting_unlock" />
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/sip_settings_ui.xml b/res/layout/sip_settings_ui.xml
new file mode 100644
index 0000000..872c4b5
--- /dev/null
+++ b/res/layout/sip_settings_ui.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2010, 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.
+*/
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:drawSelectorOnTop="false"
+        android:scrollbarAlwaysDrawVerticalTrack="true"
+    />
+
+</LinearLayout>
diff --git a/res/menu/incall_audio_mode_menu.xml b/res/menu/incall_audio_mode_menu.xml
new file mode 100644
index 0000000..0139895
--- /dev/null
+++ b/res/menu/incall_audio_mode_menu.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 Google Inc.
+
+     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.
+-->
+
+<!-- "Audio mode" popup menu for the in-call UI. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- TODO: Need final icon assets.  Also, PopupMenu currently ignores the
+         android:icon attribute anyway(!) -->
+    <item android:id="@+id/audio_mode_speaker"
+          android:icon="@drawable/ic_sound_holo_dark"
+          android:title="@string/audio_mode_speaker" />
+
+    <!-- We display *either* "earpiece" or "wired headset", never both,
+         depending on whether a wired headset is physically plugged in
+         (see InCallTouchUi.showAudioModePopup().) -->
+    <item android:id="@+id/audio_mode_earpiece"
+          android:icon="@drawable/ic_ab_dialer_holo_dark"
+          android:title="@string/audio_mode_earpiece" />
+    <item android:id="@+id/audio_mode_wired_headset"
+          android:icon="@drawable/ic_ab_dialer_holo_dark"
+          android:title="@string/audio_mode_wired_headset" />
+
+    <item android:id="@+id/audio_mode_bluetooth"
+          android:icon="@drawable/ic_bluetooth_holo_dark"
+          android:title="@string/audio_mode_bluetooth" />
+</menu>
diff --git a/res/menu/respond_via_message_settings_menu.xml b/res/menu/respond_via_message_settings_menu.xml
new file mode 100644
index 0000000..6f5e246
--- /dev/null
+++ b/res/menu/respond_via_message_settings_menu.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 Google Inc.
+
+     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.
+-->
+
+<!-- Menu for Respond-via-Message settings screen. -->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@+id/respond_via_message_reset"
+          android:title="@string/respond_via_sms_menu_reset_default_activity" />
+</menu>
diff --git a/res/mipmap-hdpi/ic_launcher_contacts.png b/res/mipmap-hdpi/ic_launcher_contacts.png
new file mode 100644
index 0000000..e0136f6
--- /dev/null
+++ b/res/mipmap-hdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_phone.png b/res/mipmap-hdpi/ic_launcher_phone.png
new file mode 100644
index 0000000..47d7894
--- /dev/null
+++ b/res/mipmap-hdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_contacts.png b/res/mipmap-mdpi/ic_launcher_contacts.png
new file mode 100644
index 0000000..3d490c3
--- /dev/null
+++ b/res/mipmap-mdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_phone.png b/res/mipmap-mdpi/ic_launcher_phone.png
new file mode 100644
index 0000000..3b333cf
--- /dev/null
+++ b/res/mipmap-mdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_contacts.png b/res/mipmap-xhdpi/ic_launcher_contacts.png
new file mode 100644
index 0000000..dde3cbb
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_phone.png b/res/mipmap-xhdpi/ic_launcher_phone.png
new file mode 100644
index 0000000..020c2fa
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_contacts.png b/res/mipmap-xxhdpi/ic_launcher_contacts.png
new file mode 100644
index 0000000..99b403b
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_phone.png b/res/mipmap-xxhdpi/ic_launcher_phone.png
new file mode 100644
index 0000000..1594e4e
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
new file mode 100644
index 0000000..58f5cf8
--- /dev/null
+++ b/res/values-af/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobieldata"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Foon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Noodbeller"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Foon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN-lys"</string>
+    <string name="unknown" msgid="6878797917991465859">"Onbekend"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privaat nommer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Betaalfoon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Hou aan"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Lyn is besig"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Netwerk besig"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Geen reaksie nie, uitgetel"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Bediener onbereikbaar"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nommer onbereikbaar"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Verkeerde gebruikernaam of wagwoord"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Geskakel van buite netwerk"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Bedienerfout. Probeer later weer."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Geen sein"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-grens oorskry"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio af"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Geen SIM of SIM-fout"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Buite diensarea"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Uitgaande oproepe word beperk deur FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Jy kan nie uitgaande oproepe maak terwyl oproepblokkeer aan is nie."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alle oproepe word deur toegangbeheer beperk."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Noodoproepe word beperk deur toegangbeheer."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Gewone oproepe word beperk deur toegangbeheer."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ongeldige nommer"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferensie-oproep"</string>
+    <string name="call_lost" msgid="317670617901479594">"Oproep is verlore."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-kode begin"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kode loop tans…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-kode gekanselleer"</string>
+    <string name="cancel" msgid="5044513931633602634">"Kanselleer"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-boodskap moet tussen <xliff:g id="MIN_LEN">%d</xliff:g> en <xliff:g id="MAX_LEN">%d</xliff:g> karakters wees. Probeer asseblief weer."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Bestuur konferensie-oproep"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Luidspreker"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Selfoonoorstuk"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Bedraade kopfoon"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Stuur die volgende tone?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Stuur luitone"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Stuur"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nee"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Vervang die plekhouerkarakter met"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Vermiste stemboodskapnommer"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Geen stemboodskapnommer is op die SIM-kaart gestoor nie."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Voeg nommer by"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Jou SIM-kaart is oopgesluit. Jou foon sluit tans oop…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM-netwerk ontsluit PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Ontsluit"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Maak toe"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Versoek tans netwerkontsluiting…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Netwerkaanvraag onsuksesvol ontsluit."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Netwerkontsluiting suksesvol."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-oproepinstellings"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-oproepinstellings"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Toegangspuntname"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Netwerkinstellings"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Stemboodskap"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Netwerkoperateurs"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Oproepinstellings"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Bykomende instellings"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Bykomende net-GSM-oproepinstellings"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Bykomende CDMA-oproepinstellings"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Bykomende net-CDMA-oproepinstellings"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Netwerkdiensinstellings"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Beller-ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Laai tans instellings..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nommer versteek in uitgaande oproepe"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nommer wat vertoon in uitgaande oproepe"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Gebruik verstek beheerinstellings om my nommer te vertoon in uitgaande oproepe"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Oproep wag"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Stel my tydens \'n oproep in kennis van inkomende oproepe"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Stel my tydens \'n oproep in kennis van inkomende oproepe"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Oproep-aanstuurinstellings"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Oproepaanstuur"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Stuur altyd aan"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Gebruik altyd hierdie nommer"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Stuur alle oproepe aan"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Stuur alle oproepe aan na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nommer is nie beskikbaar nie"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Gedeaktiveer"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Stuur aan wanneer besig"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nommer wanneer besig"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Stuur aan na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Gedeaktiveer"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Jou diensverskaffer ondersteun nie die deaktivering van oproepaanstuur wanneer jou foon beset is nie."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Stuur aan wanneer nie beantwoord nie"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nommer wanneer onbeantwoord"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Stuur aan na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Gedeaktiveer"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Jou diensverskaffer ondersteun nie deaktivering van oproepaanstuur wanneer jou foon nie antwoord nie."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Stuur aan wanneer onbereikbaar"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nommer wanneer onbereikbaar"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Stuur aan na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Gedeaktiveer"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Jou diensverskaffer ondersteun nie die deaktivering van oproepaanstuur wanneer jou foon onbereikbaar is nie."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Belinstellings"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Oproepinstellingsfout"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Lees tans instellings…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Opdateer tans instellings…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Stel tans instellings terug…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Onverwagte antwoord van netwerk."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Netwerk- of SIM-kaartfout."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Die instelling op jou foonprogram se belperking-nommers is aangeskakel. As gevolg hiervan werk sommige oproepverwante kenmerke nie."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Skakel die radio aan voordat jy na hierdie instellings kyk."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktiveer"</string>
+    <string name="disable" msgid="7274240979164762320">"Deaktiveer"</string>
+    <string name="change_num" msgid="239476305819844391">"Opdateer"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Netwerkverstek"</item>
+    <item msgid="7876195870037833661">"Versteek nommer"</item>
+    <item msgid="1108394741608734023">"Wys nommer"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Stemboodskapnommer verander."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Kon nie die stemboodskapnommer verander nie."\n" Kontak jou diensverskaffer indien hierdie probleem voortduur."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Kon nie die aanstuurnommer verander nie."\n"Kontak jou diensverskaffer indien hierdie probleem voortduur."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Kon nie die huidige aanstuur-instellings opspoor en stoor nie."\n"Skakel oor na nuwe diensverskaffer in elk geval?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Geen veranderinge is gemaak nie."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Kies stemboodskapdiens"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"My draer"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobiele netwerkinstellings"</string>
+    <string name="label_available" msgid="1181658289009300430">"Beskikbare netwerke"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Soek tans…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Geen netwerke gevind nie."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Deursoek netwerke"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Fout het voorgekom terwyl netwerke gesoek is."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registreer op <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Jou SIM-kaart laat nie \'n verbinding na hierdie netwerk toe nie."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Kan nie nou aan hierdie netwerk koppel nie. Probeer later weer."</string>
+    <string name="registration_done" msgid="495135664535876612">"Geregistreer op die netwerk."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Kies \'n netwerkoperateur"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Soek alle beskikbare netwerke"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Kies outomaties"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Kies voorkeurnetwerk outomaties"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Outomatiese registrasie..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Netwerkmodus"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Verander die netwerkbedryfsmodus"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Voorkeurnetwerk-modus"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Voorkeurnetwerk-modus: WCDMA verkies"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Voorkeurnetwerk-modus: net GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Voorkeurnetwerk-modus: net WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Voorkeurnetwerk-modus: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Voorkeurnetwerk-modus: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Voorkeurnetwerk-modus: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Voorkeurnetwerk-modus: net CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Voorkeurnetwerk-modus: net EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Voorkeurnetwerk-modus: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Voorkeurnetwerk-modus: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Voorkeurnetwerk-modus: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Voorkeurnetwerk-modus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Voorkeurnetwerk-modus: Globaal"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Voorkeurnetwerk-modus: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globaal"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Net EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA sonder EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo outomaties"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA outomaties"</item>
+    <item msgid="7913148405605373434">"Net WCDMA"</item>
+    <item msgid="1524224863879435516">"Net GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA verkies"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data geaktiveer"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktiveer datatoegang via mobiele netwerk"</string>
+    <string name="roaming" msgid="8871412572928323707">"Dataswerwing"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Verbind met datadienste tydens swerwing"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Verbind met datadienste tydens swerwing"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Jy het dataverbinding verloor omdat jy wegbeweeg het van jou tuisnetwerk af sonder om dataswerwing weer aan te skakel."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Laat dataswerwing toe? Dit kan baie duur wees!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM//UMTS-opsies"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-opsies"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Datagebruik"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data in huidige tydperk gebruik"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Datagebruiksperiode"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Datatempobeleid"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Kom meer te wete"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) van <xliff:g id="USED_2">%3$s</xliff:g> tydperk se maksimum"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum oorskry"\n"Datatempo verminder na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datatempo verminder na <xliff:g id="USED">%1$d</xliff:g> Kb/s as datagebruiklimiet oorskry word"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Meer inligting oor jou draer se mobielenetwerk-datagebruikbeleid"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Seluitsending-SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Seluitsending-SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Seluitsending-SMS geaktiveer"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Seluitsending-SMS gedeaktiveer"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Seluitsending SMS-instellings"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Nooduitsending"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Nooduitsending geaktiveer"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Nooduitsending gedeaktiveer"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratief"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administratief geaktiveer"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administratief gedeaktiveer"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Instandhouding"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Instandhouding geaktiveer"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Instandhouding gedeaktiveer"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Algemene nuus"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Besigheids- en finansiële nuus"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportnuus"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Vermaaklikheidsnuus"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Plaaslik"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Plaaslike nuus geaktiveer"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Plaaslike nuus gedeaktiveer"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Streeksvlak"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Streeksnuus geaktiveer"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Streeksnuus gedeaktiveer"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nasionaal"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nasionale nuus geaktiveer"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nasionale nuus gedeaktiveer"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internasionaal"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Internasionale nuus geaktiveer"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Internasionale nuus gedeaktiveer"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Taal"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Kies die nuustaal"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engels"</item>
+    <item msgid="1151988412809572526">"Frans"</item>
+    <item msgid="577840534704312665">"Spaans"</item>
+    <item msgid="8385712091143148180">"Japannees"</item>
+    <item msgid="1858401628368130638">"Koreaans"</item>
+    <item msgid="1933212028684529632">"Chinees"</item>
+    <item msgid="1908428006803639064">"Hebreeus"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Tale"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Plaaslike weer"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Plaaslike weer geaktiveer"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Plaaslike weer gedeaktiveer"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Verkeersverslae van area"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Areaverkeersberigte geaktiveer"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Areaverkeersberigte gedeaktiveer"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Plaaslike lughawevlugskedules"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Plaaslike lughawevlugskedules geaktiveer"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Plaaslike lughawevlugskedules gedeaktiveer"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurante"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurante geaktiveer"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurante gedeaktiveer"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Akkommodasie"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Verblyf geaktiveer"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Verblyf gedeaktiveer"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Kleinhandelsgids"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Kleinhandelsgids geaktiveer"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Kleinhandelsgids gedeaktiveer"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Advertensies"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Advertensies geaktiveer"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Advertensies gedeaktiveer"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aandelepryse"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aandelepryse geaktiveer"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aandelepryse gedeaktiveer"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Werksgeleenthede"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Werksgeleenthede geaktiveer"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Werksgeleenthede gedeaktiveer"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medies, gesondheid en hospitaal"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medies, gesondheid en hospitaal geaktiveer"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medies, gesondheid en hospitaal gedeaktiveer"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tegnologienuus"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tegnologienuus geaktiveer"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tegnologienuus gedeaktiveer"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multikategorie"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multikategorie geaktiveer"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multikategorie gedeaktiveer"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Gebruik slegs 2G-netwerke"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Spaar battery"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Stelselkeuse"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Verander die CDMA-swerfmodus"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Stelselkeuse"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Net tuis"</item>
+    <item msgid="1205664026446156265">"Outomaties"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-intekening"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Wissel tussen RUIM/SIM en NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"intekening"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktiveer toestel"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Stel datadiens op"</string>
+    <string name="fdn" msgid="7878832555095183202">"Belbeperking-nommers"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN-lys"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN-aktivering"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Vaste skakelnommers is geaktiveer"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Vaste skakelnommers is gedeaktiveer"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Aktiveer FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Deaktiveer FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Verander PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Deaktiveer FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Aktiveer FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Bestuur vaste skakelnommers"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Verander PIN vir FDN-toegang"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Bestuur lys van foonnommers"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Stemprivaatheid"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Aktiveer verbeterde privaatheidsmodus"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-modus"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Stel TTY-modus"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Outoherprobeer"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktiveer outoherprobeer-modus"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Voeg kontak by"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Verander kontak"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Vee kontak uit"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Voer PIN2 in"</string>
+    <string name="name" msgid="7329028332786872378">"Naam"</string>
+    <string name="number" msgid="7905950798349903858">"Nommer"</string>
+    <string name="save" msgid="4094274636321939086">"Stoor"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Voeg belbeperking-nommer by"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Voeg belbeperking-nommer by…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Belbeperking-nommer bygevoeg."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Redigeer belbeperking-nommer"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Dateer tans belbeperking-nommer op…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Belbeperking-nommer opgedateer."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Vee belbeperking-nommer uit"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Verwyder belbeperking-nommer…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Belbeperking-nommer uitgevee."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN is nie opgedateer nie omdat jy \'n verkeerde PIN ingevoer het."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN is nie opgedateer nie, omdat die getal nie 20 syfers kan oorskry nie."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN is nie bygewerk nie. Die PIN2 was verkeerd of die foonnommer is verwerp."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Lees tans van SIM-kaart af…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Geen kontakte op jou SIM-kaart nie."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Kies kontakte om in te voer"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Skakel vliegtuigmodus af om kontakte in te voer vanaf die SIM-kaart."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Aktiveer/deaktiveer SIM-PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Verander SIM-PIN"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Ou PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nuwe PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Bevestig nuwe PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Die ou PIN wat jy ingevoer het, is verkeerd. Probeer weer."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Die PIN\'s wat jy ingevoer het, stem nie ooreen nie. Probeer weer."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Sleutel \'n PIN wat 4 to 8 nommers lank is, in."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Deaktiveer SIM-PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Aktiveer SIM-PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Wag asseblief…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM-PIN geaktiveer"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM-PIN gedeaktiveer."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Die PIN wat jy ingevoer het, is verkeerd."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM-PIN suksesvol verander."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Wagwoord verkeerd, SIM is gesluit! PUK2 versoek."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Ou PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nuwe PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Bevestig nuwe PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Die PUK2 wat jy ingevoer het, is verkeerd. Probeer asseblief weer."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Die ou PIN2 wat jy ingevoer het, is verkeerd. Probeer asseblief weer."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Die PIN2\'s wat jy ingevoer het, stem nie ooreen nie. Probeer asseblief weer."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Sleutel \'n PIN2 wat 4 to 8 nommers lank is, in."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Sleutel \'n 8-nommer-PUK2 in."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 suksesvol verander"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Sleutel PUK2-kode in"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Wagwoord verkeerd. Verander PIN2 en probeer weer!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Wagwoord verkeerd, SIM is gesluit. PUK2 word versoek."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Klaar"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferensie-oproep <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Stemboodskapnommer"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Bel"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Probeer weer"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferensie-oproep"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Inkomende oproep"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Oproep beëindig"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Hou aan"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Lui af"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"In oproep"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"My nommer is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Bel"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Gemiste oproep"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Gemiste oproepe"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepe"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Gemiste oproep van <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Oproep aan die gang"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Hou aan"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Inkomende oproep"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nuwe stemboodskap"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nuwe stemboodskap (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Bel <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Stemboodskapnommer onbekend"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Geen diens nie"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Gekose netwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nie beskikbaar nie"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Lui af"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Bel terug"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Boodskap"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Om \'n oproep te maak, skakel eers vliegtuigmodus af."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nie geregistreer op netwerk nie."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobiele netwerk nie beskikbaar nie."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Oproep nie gestuur nie, geen geldige nommer ingevoer nie."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Oproep nie gestuur nie."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Begin MMI-volgorde…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nieondersteunde diens."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Kan nie oproepe wissel nie."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Kan nie oproep verdeel nie."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Onmoontlik om oproep deur te skakel."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Kan nie konferensie-oproepe doen nie."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Kan nie oproep verwerp nie."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Kan nie oproepe los nie."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetoproep"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Skakel tans radio aan…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Buite diensarea, probeer tans weer…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Oproep nie gestuur nie. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is nie \'n noodnommer nie!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Oproep nie gestuur nie. Bel asseblief \'n noodnommer!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Gebruik sleutelbord om te bel"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Hou aan"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Einde"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Nommerbord"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Demp"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Voeg oproep by"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Voeg oproepe saam"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Ruil"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Bestuur oproepe"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Bestuur konferensie"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Oudio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video-oproep"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Voer in"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Voer alles in"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Voer SIM-kontakte in"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Voer in uit kontakte"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Gehoorapparate"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Skakel gehoorapparaat-versoenbaarheid aan"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY af"</item>
+    <item msgid="3971695875449640648">"TTY vol"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"STMF-tone"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Stel die lengte van STMF-tone in"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normaal"</item>
+    <item msgid="2883365539347850535">"Lank"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Netwerkboodskap"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktiveer jou foon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"\'n Spesiale oproep moet gemaak word om jou foondiens te aktiveer. "\n\n"Druk \"Aktiveer\" en luister dan na die instruksies om jou foon te aktiveer."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Slaan aktivering oor?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"As jy aktivering oorslaan, kan jy nie oproepe maak of aan mobiele datanetwerke koppel nie (hoewel jy aan Wi-Fi-netwerke kan koppel). Tot tyd en wyl jy jou foon aktiveer, word jy gevra om dit te aktiveer elke keer wat jy dit aanskakel."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Slaan oor"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiveer"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Foon is geaktiveer."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Probleem met aktivering"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Volg die gesproke instruksies tot jy hoor dat aktivering afgehandel is."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Spreker"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Wag terwyl jou foon geprogrammeer word."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmering onsuksesvol"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Jou foon is nou geaktiveer. Dit kan tot 15 minute duur vir die diens om te begin."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Jou foon het nie geaktiveer nie. "\n"Jy moet dalk \'n area met beter dekking probeer (naby \'n venster of buite). "\n\n"Probeer weer of skakel kliëntediens vir meer opsies."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"OORMAAT SPC-MISLUKKINGS"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Terug"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Probeer weer"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Volgende"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialoog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Noodterugbel-modus betree"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Noodterugbel-modus"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Dataverbinding gedeaktiveer"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Geen dataverbinding vir <xliff:g id="COUNT">%s</xliff:g> minuut nie"</item>
+    <item quantity="other" msgid="3122217344579273583">"Geen dataverbinding vir <xliff:g id="COUNT">%s</xliff:g> minute nie"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Die telefoon sal in Noodterugbel-modus wees vir <xliff:g id="COUNT">%s</xliff:g> minuut. Terwyl in hierdie modus kan geen programme wat \'n dataverbinding nodig het, gebruik word nie. Wil jy nou uitgaan?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Die telefoon sal in Noodterugbel-modus wees vir <xliff:g id="COUNT">%s</xliff:g> minute. Terwyl in hierdie modus kan geen programme wat \'n dataverbinding nodig het, gebruik word nie. Wil jy nou uitgaan?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Die geselekteerde aksie is nie beskikbaar terwyl in die Noodterugbelmodus is nie. Die foon sal in hierdie modus vir <xliff:g id="COUNT">%s</xliff:g> minuut wees. Wil jy nou uitgaan?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Die geselekteerde aksie is nie beskikbaar terwyl in die Noodterugbelmodus is nie. Die foon sal in hierdie modus vir <xliff:g id="COUNT">%s</xliff:g> minuut wees. Wil jy nou uitgaan?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Die gekose handeling is nie beskikbaar tydens \'n noodoproep nie."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Verlaat noodterugbel-modus"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nee"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Maak toe"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Diens"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Opstelling"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nie gestel nie&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Ander oproepinstellings"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontakfoto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"gaan privaat"</string>
+    <string name="selectContact" msgid="781975788478987237">"kies kontak"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Internetoproep-instellings"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Internetoproep-rekeninge (SIP-rekeninge)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Rekeninge"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Ontvang inkomende oproepe"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Verminder batteryleeftyd"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Gebruik internetoproepe"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Gebruik internetbel (net Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Vir alle oproepe wanneer datanetwerk beskikbaar is"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Net vir internetoproepe"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Vra vir elke oproep"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Vir alle oproepe"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Maak oproep"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Gebruik internetoproep-rekening:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Gebruik altyd om internetoproepe te maak"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Jy kan verander watter Internetoproep-rekening om by verstek te gebruik vanaf die Foon &gt; Instellings&gt; Internetoproep-instellings &gt; Rekeningeskerm."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Selfoonoproep"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetoproep"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Geen internetoproep-rekening nie"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Daar is geen internetoproep-rekeninge op die selfoon nie. Wil jy nou een byvoeg?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Voeg by"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Voeg rekening by"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Verwyder rekening"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-rekeninge"</string>
+    <string name="saving_account" msgid="52903398217017954">"Stoor tans die rekening..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Verwyder tans die rekening..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Stoor"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Gooi weg"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Sluit die profiel"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Sluit"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primêre rekening. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Kontroleer tans status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registreer tans..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Probeer nog steeds..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ontvang nie oproepe nie."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Rekeningregistrasie is gestop omdat daar geen internetverbinding is nie."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Rekeningregistrasie is gestaak omdat daar geen Wi-Fi-verbinding is nie."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Rekeningregistrasie het misluk."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Ontvang oproepe."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Rekeningregistrasie het misluk: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sal later probeer"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Rekeningregistrasie het misluk: Verkeerde gebruikernaam of wagwoord"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Rekening registrasie onsuksesvol: Kontroleer die bedienernaam."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Hierdie rekening word tans gebruik deur die <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>-program."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-rekeningdetails"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-rekeningdetails"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Bediener"</string>
+    <string name="username_title" msgid="2479375923477682328">"Gebruikernaam"</string>
+    <string name="password_title" msgid="3323555249068171531">"Wagwoord"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Vertoonnaam"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Uitgaande-instaan-adres"</string>
+    <string name="port_title" msgid="5952939408078626657">"Poortnommer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Vervoertipe"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Stuur lewendighou"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Stel as primêre rekening"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Gebruik vir uitgaande oproepe"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Opsionele instellings"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Stawingsgebruikernaam"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Gebruikernaam gebruik vir stawing"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nie gestel nie&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Dieselfde as gebruikernaam&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opsioneel&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Raak om almal te wys"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Raak om almal te versteek"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> word vereis, kan nie leeg wees nie."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Poortnommer moet tussen 1 000 en 65 534 wees."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Geen internetverbinding nie"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Geen Wi-Fi-verbinding nie"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Om \'n internetoproep te maak, kontroleer eers jou internetverbinding."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Jy moet aan \'n Wi-Fi-netwerk gekoppel wees vir internetoproepe (gebruik Wi-Fi- en netwerkinstellings)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetoproepe nie ondersteun nie"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Outomaties"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Stuur altyd"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Stembel nie ondersteun nie"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan nie nou praat nie. Wat\'s nuus?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ek bel jou nou-nou terug."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ek bel jou later."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan nie nou praat nie. Bel my later?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Skryf jou eie..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Vinnige antwoorde"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Redigeer vinnige antwoorde"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Vinnige antwoord"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Stel verstek program terug"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Boodskap gestuur na <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"een"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"twee"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"drie"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"vier"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"vyf"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"ses"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sewe"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"agt"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nege"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"ster"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nul"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"huts"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"bel"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"terugvee"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Luidsprekerfoon geaktiveer."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Oproep stilgemaak."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Antwoord"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Stuur SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Wys af"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreer"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreer"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Klank"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Verstek klank (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Foon-luitoon"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibreer wanneer lui"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Belblad-raaktone"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Belblad outo-voltooi"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Luitoon en vibreer"</string>
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
new file mode 100644
index 0000000..968b554
--- /dev/null
+++ b/res/values-am/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"ስልክ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"የአደጋ ጊዜደዋይ"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"ስልክ"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"የFDN ዝርዝር"</string>
+    <string name="unknown" msgid="6878797917991465859">"ያልታወቀ"</string>
+    <string name="private_num" msgid="6713286113000232309">"የግል ቁጥር"</string>
+    <string name="payphone" msgid="1931775086311769314">"የክፍያ ስልክ"</string>
+    <string name="onHold" msgid="9035493194749959955">"ያዝናቆይ"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"መስመሩ ተይዟል"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"አውታረመረብ ተይዟል"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"ምንም ምላሽ የለም፣ ጊዜው አልቋል"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"አገልጋይ አይደረስበትም"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"ቁጥር አይደረስበትም"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"የተሳሳየ ተጠቃሚ ስም እና ይለፍ ቃል"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"ከአውታረ መረብ ውጪ የተደወለ"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"የአግልጋይ ስህተት፣ እባክዎ በድጋሚ ቆይተው ይሞክሩ።"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"ምንም አመልካች የለም"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM ወሰንአልፏል"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"ሬዲዮ ጠፍቷል"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"ምንም SIM ፣ ወይም የSIM ስህተት የለም"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"ከአገልግሎት መስጫ ክልል ውጪ"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"ወጪ ጥሪዎች በFDN ተከልክለዋል።"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"የጥሪ ክልከላ በርቶ ሳለ የወጪ ጥሪ ማድረግ አትችልም።"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"ሁሉም ጥሪዎች በመድረሻ መቆጣጠሪያ የተከለከሉ ናቸው።"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"የአደጋ ጊዜ ጥሪዎች በድረስ መቆጣጠሪያተከልክልዋል።"</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"መደበኛ ጥሪዎች በድረስ መቆጣጠሪያ ተከልክልዋል።"</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"ተቀባይነት የሌለው ቁጥር"</string>
+    <string name="confCall" msgid="1904840547188336828">"የስብሰባ ጥሪ"</string>
+    <string name="call_lost" msgid="317670617901479594">"ጥሪ ተቋርጣል።"</string>
+    <string name="ok" msgid="3811371167865772377">"እሺ"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"የMMI ኮድ ጀምሯል"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"የUSSD ኮድ አሂድ ላይ ነው..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"የMMI ኮድ ቀርቷል"</string>
+    <string name="cancel" msgid="5044513931633602634">"ይቅር"</string>
+    <string name="enter_input" msgid="1810529547726803893">"የUSSD መልዕክት በ<xliff:g id="MIN_LEN">%d</xliff:g> እና <xliff:g id="MAX_LEN">%d</xliff:g> ቁምፊዎች መካከል መሆን አለበት። እባክዎ እንደገና ይሞክሩ።"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"የስብሰባስልክ ጥሪ አደራጅ"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"ድምጽ ማጉያ"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"የስልክ እጀታ ጆሮማዳመጫ"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"ባለ ገመድ የጆሮ ማዳመጫ"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"ብሉቱዝ"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"የሚከተሉትንድምፆች ላክ?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"ድምፆች በመላክ ላይ "\n</string>
+    <string name="send_button" msgid="4106860097497818751">" ላክ"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"አዎ"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"አይ"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"የልቅ ምልክት ተካ በ"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"የድምፅመልዕክት ቁጥርአመለጠ"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"በSIM ካርዱ ላይምንም የድምፅመልዕክት ቁጥር አልከተቀመጠም።"</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"ቁጥር አክል"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"የSIM ካርድዎ አልታገደም። ስልክዎ በመከፈት ላይነው..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"የSIM አውታረመረብ መክፈቻ PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"ክፈት"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"አጥፋ"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"አውታረመረብ ለማስከፈት በመጠየቅ ላይ..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"የአውታረ መረብ ክፈትጥየቃአል ተሳካም።"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"የአውታረ መረብክፈት ተሳክቷል።"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"የGSM  ጥሪ ቅንብሮች"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA የጥሪ ቅንብሮች"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"የድረስ ነጥብ ስም"</string>
+    <string name="settings_label" msgid="3876743539816984008">"የአውታረመረብ ቅንብሮች"</string>
+    <string name="voicemail" msgid="8693759337917898954">"የድምፅ መልዕክት"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"የአውታረ መረብ ትእምርተ ከዋኝ"</string>
+    <string name="call_settings" msgid="6112441768261754562">"የጥሪ ቅንብሮች"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ተጨማሪ ቅንብሮች"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"ተጨማሪGSM ጥሪ ቅንብሮች"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"ተጨማሪCDMA ጥሪ ቅንብሮች"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"ተጨማሪCDMA ጥሪ ቅንብሮችብቻ"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"የአውታረ መረብአገልግሎት ቅንብሮች"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"የደዋይ ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"ቅንብሮች በመጫን ላይ..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"በወጪ ጥሪዎች ላይ ቁጥርተደብቋል"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"በወጪ ጥሪዎች ላይ ቁጥር ታይቷል"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"በወጪ ጥሪዎች ቁጥሬን ለማሳየት የነባሪ ከዋኝቅንብሮችን ተጠቀም"</string>
+    <string name="labelCW" msgid="6120513814915920200">"ጥሪ በመጠበቅ ላይ"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"በደውል ጊዜ፣ገቢ ደውሎችን አሳውቀኝ"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"በደውል ጊዜ፣ገቢ ደውሎችን አሳውቀኝ"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"የጥሪ በማስላለፍ ላይ ቅንብሮች"</string>
+    <string name="labelCF" msgid="2574386948026924737">"ጥሪ ማስተላለፍ"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"ሁልጊዜ አስተላልፍ"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"ሁልጊዜ ይህን ቁጥር ተጠቀም"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"ሁሉንም ጥሪዎች በማስተላለፍ ላይ"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"ሁሉንም ጥሪዎች ወደ<xliff:g id="PHONENUMBER">{0}</xliff:g> አስተለልፍ"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"ቁጥር የለም"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"ቦዝኗል"</string>
+    <string name="labelCFB" msgid="218938523102207587">"ሲያዝ አስተላልፍ"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"ቁጥሩ ሲያዝ"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"ወደ <xliff:g id="PHONENUMBER">{0}</xliff:g>በማስተላለፍ ላይ"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"ቦዝኗል"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"ስልክህ ስራ ሲበዛበት የድምጽ ተያያዥ ሞደም አቅራቢህ  የጥሪ-ማስተላለፍን  አይደግፍም።"</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"ካልተነሳ አስላልፍ"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"ቁጥሩ ሳይነሳ"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"ወደ <xliff:g id="PHONENUMBER">{0}</xliff:g>በማስተላለፍ ላይ"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"ቦዝኗል"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"ስልክህ በማይመልስበት ጊዜ የድምጽ ተያያዥ ሞደም አቅራቢህ  የጥሪ-ማስተላለፍን  አይደግፍም።"</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"ሳይገኝአስተላልፍ"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"ቁጥሩሳይገኝ"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"ወደ <xliff:g id="PHONENUMBER">{0}</xliff:g>በማስተላለፍ ላይ"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ቦዝኗል"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ስልክህ በማይደረስበት ጊዜ የድምጽ ተያያዥ ሞደምህ  የጥሪ-ማስተላለፍን አይደግፍም።"</string>
+    <string name="updating_title" msgid="6146755386174019046">"የጥሪ ቅንብሮች"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"የጥሪ ቅንብሮች ስህተት"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"ቅንብሮች በማንበብ ላይ..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"ቅንብሮችን በማዘመን ላይ…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"ቅንብሮችን በማህደር ላይ..."</string>
+    <string name="response_error" msgid="6674110501330139405">"ከአውታረ መረብ ያልተጠበቀ ምላሽ"</string>
+    <string name="exception_error" msgid="7027667130619518211">"አውታረ መረብ ወይም SIM ካርድ ስህተት።"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"የስልክህ መተግበሪያ የተወሰነ ስልክ ቁጥሮች ቅንብር የበራ ነው። በዚህም ውጤት መሰረት፣ ከጥሪ ጋር የተያያዙ አንዳንድ ባህሪያት እየሰሩ አይደለም።"</string>
+    <string name="radio_off_error" msgid="2304459933248513376">" እነዚህን ቅንብሮች ከማየትህ በፊት ሬዲዮኑን አብራ።"</string>
+    <string name="close_dialog" msgid="2365884406356986917">"እሺ"</string>
+    <string name="enable" msgid="1059008390636773574">"አንቃ"</string>
+    <string name="disable" msgid="7274240979164762320">"አቦዝን"</string>
+    <string name="change_num" msgid="239476305819844391">"አዘምን"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"ነባሪ አውታረመረብ"</item>
+    <item msgid="7876195870037833661">"ቁጥር ደብቅ"</item>
+    <item msgid="1108394741608734023">"ቁጥርአሳይ"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"የድምፅ መልዕክት ቁጥርተለውጧል።"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"የድምጽ ፖስታ ቁጥርን መለወጥ አልተቻለም፡፡ ይህ ችግር በዚህ ከቀጠለ የድምጸ ተያያዥ ሞደም አቅራቢህን "\n"አግኝ፡፡"</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"የማስተላለፊያ ቁጥርን መለወጥ አልተቻለም፡፡ ይህ ችግር በዚህ ከቀጠለ የድምጸ ተያያዥ ሞደም አቅራቢህን "\n"አግኝ፡፡"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"አሁን ያሉትን ማስተላለፊያ ቁጥሮች ቅንብሮችን ሰርስሮ ማውጣትና ማስቀመጥ አልተቻለም።"\n"ወደ አዲስ አቅራቢ የሆነ ሆኖ ቀይር?"</string>
+    <string name="no_change" msgid="3186040086622435212">"ምንም ለውጥ አልተደረገም።"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"የድምፅ መልዕክት አገልግሎት ምረጥ"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"ድምጸ ተያያዥ ሞደም"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"የተንቀሳቃሽ ስልክ አውታረ መረብ ቅንብሮች"</string>
+    <string name="label_available" msgid="1181658289009300430">"የሚገኙ አውታረመረቦች"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"በመፈለግ ላይ…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"ምንም አውታረመረብ አልተገኘም።"</string>
+    <string name="search_networks" msgid="1601136049300882441">"አውታረመረቦች ፈልግ"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"አውታረ መረቦች በመፈለግ ላይ ስህተት"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"በ<xliff:g id="NETWORK">%s</xliff:g> ላይ በመመዝገብ ላይ..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"የSIM ካርድህ ወደዚህ አውታረመረብ  ግንኙነት አይፈቅድም።"</string>
+    <string name="connect_later" msgid="2308119155752343975">"በአሁን ጊዜ ወደዚህ አውታረ መረብ ማገናኘት አልተቻለም፡፡ በኋላ እንደገና ሞክር፡፡"</string>
+    <string name="registration_done" msgid="495135664535876612">"በአውታረ መረብ ላይ የተመዘገበ።"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"የአውታረ መረብ ከዋኝ ምረጥ"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"የሚገኙ አውታረመረቦች በሙሉ ፈልግ"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"በራስ ሰር ምረጥ"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"ተመራጭ አውታረ መረብን በራስ ሰር ምረጥ"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"ራስ ሰር ምዝገባ...."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"የአውታረ መረብ ሁነታ"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"የአውታረመረቡንመከወኛ ሁነታ ለውጥ"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"ተመራጭ  የአውታረ መረብ ሁነታ"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"ተመራጭ የአውታረመረብ ፡WCDMA ሁነታ ተመራጭ"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"ተመራጭ የአውታረመረብ ፡GSM ሁነታ ብቻ"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"ተመራጭ የአውታረመረብ ፡WCDMA ሁነታ ብቻ"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"ተመራጭ የአውታረመረብ ፡GSM/WCDMA   ሁነታ"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"ተመራጭ የአውታረመረብ ፡CDMA ሁነታ"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"ተመራጭ የአውታረመረብ ፡CDMA/EvDo ሁነታ"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"ተመራጭ የአውታረመረብ ፡CDMA  ሁነታ ብቻ"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"ተመራጭ የአውታረመረብ ፡EvDo ሁነታ  ብቻ"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"ተመራጭ የአውታረመረብ ሁኔታ: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"ተመራጭ የአውታረመረብ ሁኔታ: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"ተመራጭ የአውታረመረብ ሁኔታ ፡ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"ተመራጭ የአውታረመረብ ፡ አለምአቀፍ"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"አለምአቀፍ"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo ብቻ"</item>
+    <item msgid="1508557726283094448">"CDMA  ያለ EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo በራስሰር"</item>
+    <item msgid="5958053792390386668">"GSM / WCDMA ራስሰር"</item>
+    <item msgid="7913148405605373434">"WCDMA ብቻ"</item>
+    <item msgid="1524224863879435516">"GSM ብቻ"</item>
+    <item msgid="3817924849415716259">"GSM / WCDMA ተመራጭ"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"ውሂብ ነቅቷል"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"በተንቀሳቃሽ ስልክ አውታረ መረብ ላይ የውሂብ መድረስ አንቃ"</string>
+    <string name="roaming" msgid="8871412572928323707">"ውሂብ በእንቅስቃሴ ላይ"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"በእንቅስቃሴ ላይ ሲሆን ወደ ውሂብ አገልግሎቶች ተያያዝ"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"በእንቅስቃሴ ላይ ሲሆን ወደ ውሂብ አገልግሎቶች ተያያዝ"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"የውሂብ ተያያዥነት የጠፋበት ምክንያት የቤትህን አውታረ መረብ እንቅስቃሴ ውሂብ በማጥፋትህ ነው።"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"የእንቅስቃሴ ላይ ውሂብ ይፈቀድ? ላቅ ያለ የእንቅስቃሴ ላይ ክፍያ ሊያክሉ ይችላሉ!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS አማራጮች"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA አማራጮች"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"የውሂብ አጠቃቀም"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"የውሂብ በአሁኑ ክፍለ ጊዜ ተጠቅሟል"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"የውሂብ አጠቃቀም ክፍለ ጊዜ"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"የውሂብ ደረጃ መምሪያ"</string>
+    <string name="throttle_help" msgid="243651091785169900">"በተጨማሪ ለመረዳት"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"የ<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)  <xliff:g id="USED_2">%3$s</xliff:g>  ከፍተኛ ክፈለ ጊዜ "\n"ቀጣይ ክፍለ ጊዜ በ<xliff:g id="USED_3">%4$d</xliff:g> ቀናቶች (<xliff:g id="USED_4">%5$s</xliff:g>) ይጀምራል።"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"የ<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) <xliff:g id="USED_2">%3$s</xliff:g> ከፍተኛ ክፈለ ጊዜ"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>ከከፍተኛው ዘሏል"\n" የውሂብ ደረጃ ወደ <xliff:g id="USED_1">%2$d</xliff:g> Kb/s ዝቅ ብሏል።"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"የ<xliff:g id="USED_0">%1$d</xliff:g>٪ ዙር ሄዷል "\n"ቀጣይ ክፍለ ጊዜ በ<xliff:g id="USED_1">%2$d</xliff:g> ቀናት(<xliff:g id="USED_2">%3$s</xliff:g>) ይጀምራል"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"የውሂብ አጠቃቀም ወሰን ከበለጠየውሂብ ደረጃ ወደ <xliff:g id="USED">%1$d</xliff:g>Kb/s ቀንሷል።"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"ተጨማሪ መረጃ ስለ ድምጸ ተያያዥ ሞደምዎ ተንቀሳቃሽ ስልክ አውታረ መረብዎ ውሂብ አጠቃቀም መምሪያ"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"የተንቀሳቃሽ ስልክ SMS ስርጭት"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"የተንቀሳቃሽ ስልክ SMS ስርጭት"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"የ SMS ህዋስ ማሰራጫ አልነቃም"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"የህዋስ SMS  ማሰራጫ አልነቃም"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"የህዋስ SMS  ማሰራጫ  ቅንብሮች"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"የአደጋ ጊዜ ስርጭት"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"የአደጋ ጊዜ ስርጭት ነቅቷል"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"የአደጋ ጊዜ ስርጭት አልነቃም"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"አስተዳደራዊ"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"አስተዳደራዊ ነቅቷል"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"አስተዳደራዊ አልነቃም"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"ጥገና"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"ጥገና ነቅቷል"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"ጥገና አልነቃም"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"ጠቅላላ ዜና"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"የሥራ እና ፋይናንስ ዜናዎች"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"የስፖርት ዜና"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"የመዝናኛ ዜና"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"የአገር ውስጥ"</string>
+    <string name="local_enable" msgid="6370463247609136359">"የአካባቢው ዜና ነቅቷል"</string>
+    <string name="local_disable" msgid="4405691986943795798">"የአካባቢው ዜና አልነቃም"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"ክልላዊ"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"ክልላዊ ዜና ነቅቷል"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"ክልላዊ ዜና አልነቃም"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"ብሔራዊ"</string>
+    <string name="national_enable" msgid="1172443648912246952">"ብሔራዊ ዜና አልነቃም"</string>
+    <string name="national_disable" msgid="326018148178601166">"ብሔራዊ ዜና አልነቁም"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"ዓለም ዓቀፍ"</string>
+    <string name="international_enable" msgid="5855356769925044927">"ዓለም ዓቀፍ ዜና ነቅቷል"</string>
+    <string name="international_disable" msgid="2850648591041088931">"ዓለም ዓቀፍ ዜና አልነቃም"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"ቋንቋ"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"የዜና ቋንቋዎችን ምረጥ"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"እንግሊዘኛ"</item>
+    <item msgid="1151988412809572526">"ፈረንሳይኛ"</item>
+    <item msgid="577840534704312665">"ስፓኒሽ"</item>
+    <item msgid="8385712091143148180">"ጃፓናዊ"</item>
+    <item msgid="1858401628368130638">"ኮሪያኛ"</item>
+    <item msgid="1933212028684529632">"ቻይናዊ"</item>
+    <item msgid="1908428006803639064">"እብራይስጥ"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">" ቋንቋዎች"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">" የአካባቢው  አየር ሁኔታ"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">" የአካባቢው  አየር ሁኔታ ነቅቷል"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">" የአካባቢው አየር ሁኔታ አልነቃም"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"የአካባቢ ትራፊክ ሪፖርቶች"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"የአካባቢ ትራፊክ ሪፖርቶች ነቅቷል"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"የአካባቢ ትራፊክ ሪፖርቶች አልነቁም"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"የአካባቢው  አውሮፕላን ማረፊያ የበረራ ፕሮግራም"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"የአካባቢው አውሮፕላን ማረፊያ የበረራ ፕሮግራም ነቅቷል"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"የአካባቢው አውሮፕላን ማረፊያ የበረራ ፕሮግራም አልነቃም"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"ምግብ ቤቶች"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"ምግብ ቤቶች ነቅተዋል"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"ምግብ ቤቶች አልነቁም"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"መኖሪያ"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"መኖሪያ ነቅቷል"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"ሎጅ አልነቃም"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"የችርቻሮ መሸጫ ማውጫ"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"የችርቻሮ መሸጫ ማውጫ ነቅቷል"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"የችርቻሮ መሸጫ ማውጫ አልነቃም"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"ማስታወቂያዎች"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"ማስታወቂያዎች ነቅተዋል"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"ማስታወቂያዎች አልነቃም"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"የገበያ ማዕከል ጥሪ"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"የገበያ ማዕከል ጥሪ ነቅቷል"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"የገበያ ማዕከል ጥቅሶች አልነቁም"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"የቅጥር ዕድሎች"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"የቅጥር ዕድሎች ነቅተዋል"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"የቅጥር ዕድሎች አልነቃም"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"ሕክምና፣ጤና እና ሆስፒታል"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"ሕክምና፣ጤና እና ሆስፒታል ነቅተዋል"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"ሕክምና፣ ጤና እና ሆስፒታል አልነቃም"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"የቴክኖሎጂ ዜና"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"የቴክኖሎጂ ዜና ነቅቷል"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"የቴክኖሎጂ ዜና አልነቃም"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"ብዙ ምድብ"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"ብዙ ምድብ ነቅቷል"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"ብዙ-ምድብ አልነቃም"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"የ2G  አውታረመረቦችን ብቻ ተጠቀም"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"ባትሪ ይቆጥባል"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"የሥርዓት ምርጫ"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"የCDMA በእንቅስቃሴ ላይ ሁኔታ ለውጥ"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"የሥርዓት ምርጫ"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"መነሻ ብቻ"</item>
+    <item msgid="1205664026446156265">"ራስ ሰር"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"የCDMA ደንበኝነት ምዝገባ"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"በRUIM/SIM እና NV መካከል ለውጥ"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"ምዝገባ"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"መሣሪያ አግብር"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"የውሂብ አግልግሎት አዋቅር"</string>
+    <string name="fdn" msgid="7878832555095183202">"በቋሚነት የሚደወልባቸው  ቁጥሮች"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN ዝርዝር"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"የFDN አግብር"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"የቋሚ መደወያቁጥሮች ነቅተዋል"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"የቋሚ መደወያቁጥሮች ቦዝነዋል"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"FDN አንቃ"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"FDN አቦዝን"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2  ለውጥ"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN አታስችል"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN አታስችል"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"የቋሚ መደወያቁጥሮችአደራጅ"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"ለFDN ድረስ PIN ለውጥ"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"የስልክ ቁጥር ዝርዝር አደራጅ"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"የድምፅ ብቸኝነት"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"የተሻሻለውን የብሕትውነት ሁነታ አስችል"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY ሁነታ"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY  ሁነት አዘጋጅ"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"ራስ ዳግም ሞክር"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"ራስ ድጋሚ አስጀምር ሁናቴ አስችል"</string>
+    <string name="menu_add" msgid="1882023737425114762">"እውቅያዎች አክል"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"እውቅያ አርትዕ"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"እውቅያ ሰርዝ"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"ፒን2 ተይብ"</string>
+    <string name="name" msgid="7329028332786872378">"ስም"</string>
+    <string name="number" msgid="7905950798349903858">"ቁጥር"</string>
+    <string name="save" msgid="4094274636321939086">"አስቀምጥ"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"ቋሚ ተደዋይ ቁጥር አክል"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"ቋሚ ተደዋይ ቁጥሮችን ማከል"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"ቋሚ መደወያ ቁጥር ታክሏል።"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"ቋሚ መደወያ ቁጥር አርትዕ"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"ቋሚ መደወያ ቁጥር በማዘመን ላይ...."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"ቋሚ መደወያ ቁጥር ዘምኗል።"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"በቋሚ መደወያ ቁጥር ሰርዝ"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"በቋሚ መደወያ ቁጥር በመሰረዝ ላይ..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"ቋሚ መደወያ ቁጥር ተሰርዟል።"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"የተሳሳተ ፒን ስላስገባህ FDN አልዘመነም፡፡"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"ቁጥሩ ከ20 አሀዞች በላይ መብለጥ ስለማይችል FDN አልዘመነም፡፡"</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN አልዘመነም። ፒን2 ትክክል አልነበረም፣ ወይም የስልክ ቁጥሩ ተቀባይነት አላገኘም።"</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"ከSIM ካርድ ላይ በማንበብ ላይ..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"በ SIM ካርድዎ ላይ ዕውቂያዎች የሉም።"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"ለማስገባት ዕውቂያዎች ምረጥ"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"ከሲም ካርድ ላይ ዕውቂያዎችን ለማስመጣት፣ የአይሮፕላን ሁኔታን መጀመሪያ  አጥፋ፡፡"</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM PIN አንቃ/አቦዝን"</string>
+    <string name="change_pin" msgid="9174186126330785343">"የSIM PIN ለውጥ"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"የድሮ PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"አዲስPIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"አዲስ PIN አረጋግጥ"</string>
+    <string name="badPin" msgid="8955102849303984935">"የተየበከው የድሮ ፒን ትክክል አይደለም። እባክህ እንደገና ሞክር።"</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"ያስገባኸው ፒኖች አይዛመዱም። እንደገና ሞክር።"</string>
+    <string name="invalidPin" msgid="5981171102258684792">"ከ4 እስከ 8 ቁጥሮች የያዘ PIN ተይብ"</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"የSIM PIN አቦዝን"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PIN አንቃ"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"እባክዎ ይጠብቁ…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM PIN ነቅቷል"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM ፒን  ቦዝኗል"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"የተየብከው PIN የተሳሳተ ነበር።"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM PIN በተሳካ ተለውጧል"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"የተሳሳተይለፍ ቃል፣SIM ተቆልፏል! PUK2 ይጠየቃል።"</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"የድሮ PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"አዲስPIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"አዲስ PIN አረጋግጥ"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"የተየብክው PUK2 ኮድ ትክክል አይደለም።እንደገና ሞክር።"</string>
+    <string name="badPin2" msgid="1041576234483629991">"የተየብከው የድሮ PIN2 ትክክል አይደለም።እባክህ እንደገና ሞክር።"</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"ያስገባኸው PIN2 አይዛመድም። እንደገና ሞክር።"</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"ከ4 እስከ 8 ቁጥሮች የሆኑPIN2 ተይብ።"</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"8 ቁጥሮች የሆኑ PUK2  ተይብ።"</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 በተሳካ ተለውጧል"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"የPUK2 ኮድ ተይብ"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"የተሳሳተ የይለፍ ቃል፣ ፒን2 ለውጥ እና ድጋሚ ሞክር!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"የተሳሳተ ይለፍ ቃል፣ SIM ተቆልፏል! PUK2 ይጠየቃል።"</string>
+    <string name="doneButton" msgid="2859593360997984240">"ተከናውኗል"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"የስብሰባ ጥሪ<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"የድምፅ መልዕክት ቁጥር"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"በመደወል ላይ"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"እንደገና በመሞከር ላይ"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"የስብሰባ ጥሪ"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"ገቢ ጥሪ"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"ጥሪ አብቅቷል"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"ያዝናቆይ"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"በመዝጋት ላይ"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"ጥሪ ላይ"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"ቁጥሬ<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> ነው"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"በመደወል ላይ"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"ያመለጠጥሪ"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"ያመለጡ ጥሪዎች"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ያመለጡ ጥሪዎች"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"ከ<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> ያመለጠ ጥሪ"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"እየተካሄደ ያለ ጥሪ"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"ያዝናቆይ"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"ገቢ ጥሪ"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"አዲስ የድምፅ መልዕክት"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"አዲስ የድምፅ መልዕክት<xliff:g id="COUNT">%d</xliff:g>"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"ደውል <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"የማይታወቅ የድምፅ መልዕክት ቁጥር"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"ምንም አገልግሎት የለም"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"የተመረጠ አውታረመረብ(<xliff:g id="OPERATOR_NAME">%s</xliff:g>) የለም"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"ዝጋ"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"መልሰህ ደውል"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"መልዕክት"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"ለመደወል፣ መጀመሪያየአውሮፕላኑን ሁነታ አጥፋ።"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"በአውታረ መረቡ ላይ አልተመዘገበም።"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"የተንቀሳቃሽ አደራጅ የለም።"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"ጥሪ አልተላከም፣ ትክክለኛ ቁጥር አልገባም።"</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"ጥሪ አልተላከም።"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"የMMI sequence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"የማይደገፍ አገልግሎት።"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"ጥሪዎችን ለመቀያየር አልተቻለም።"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"ጥሪዎችን ለመለየት አልተቻለም።"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"ጥሪዎችን ለመስደድ አልተቻለም።"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ለስብሰባ ጥሪዎች አልተቻለም።"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"ጥሪ አለመቀበል አልተቻለም።"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"ጥሪ(ዎችን) ለመተው አልተቻለም።"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"የበይነመረብ  ጥሪ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"የአደጋ ጊዜ ጥሪ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ሬዲዮ ክፈት"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"ከአገልግሎት መስጫ ክልል ውጪ፣ ድጋሚ በመሞከር ላይ..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"ጥሪ አልተላከም፣ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> የአደጋ  ቁጥር አይደለም!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"ጥሪ አልተላከም፣ እባክህ የአደጋ ጊዜ ቁጥር ደውል።"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"ለመደወል የሰሌዳ ቁልፍ ተጠቀም"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"ያዝ"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"መጨረሻ"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"የመደወያ ሰሌዳ"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"ድምፀ-ከል አድርግ"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"ጥሪ ያክሉ"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"ጥሪዎችን አዋህድ"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"ማገላበጥ"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"ጥሪዎችን አደራጅ"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"ስብሰባ አደራጅ"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"ኦዲዮ"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"የቪዲዮ ጥሪ"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"አስመጣ"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"ሁሉንም አስመጣ"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"የSIM ዕውቂያዎች አስመጣ"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"ከዕውቂያዎች አስገባ"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"ማዳመጫ መርጃዎች"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"የመስሚያ መርጃ ተጓዳኝአብራ"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY ጠፍቷል"</item>
+    <item msgid="3971695875449640648">"TTY ሙሉ"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"የDTMF ድምጾች"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"የDTMF  ድምፆች ርዝመት አዘጋጅ"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"መደበኛ"</item>
+    <item msgid="2883365539347850535">"ረጅም"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"የአውታረ መረብ መልዕክት"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"ስልክዎን ያግብሩ"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"የስልክዎን አገለግሎት ለማግበር ልዩ ጥሪ ያስፈልጋል።"\n\n"  \"አግብር\" ከተጫኑ በኋላ ስልክዎን ለማግበር የቀረቡትን መመሪያዎች ያዳምጡ።"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"አግብር ይዝለል?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"ማግበር ካዘለሉ፣ ጥሪ ማድረግ ወይም ተንቀሳቃሽ ስልክ ውሂብ አውታረ መረብ(በWi-Fi አውታረ መረቦች ማያያዝ ቢችሉም እንኳን ) ማያያዝ አይችሉም። ስልክዎን እስኪያገብሩ ድረስ፣ ባበሩት ቁጥር እንዲያገብሩት ይጠየቃሉ።"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"ዝለል"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"አግብር"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"ስልክ አግብረሃል!"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"ከአግብር ጋር ያለ ችግር"</string>
+    <string name="ota_listen" msgid="162923839877584937">"አግብር መጠናቀቁን እስኪሰሙ የተነገሩትን መመሪያዎች ይከተሉ።"</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"ድምጽ ማጉያ"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"ስልክህ ፍርግም የተደረገ እስኪሆን ድረስ ቆይ።"</string>
+    <string name="ota_failure" msgid="4311299546379674378">"መፈርገም አልተሳካም"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"አሁን ስልክዎ አግብሯል።አገልግሎቱ ለመጀመር እስከ 15 ደቂቃዎች ሊፈጅ ይችላል።"</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"ስልክህ አላገበረም።"\n" ጥሩ ሽፋን ያለበት አካባቢ ማግኘት ያስፈልግሃል (መስኮት፣ ወይም ውጪ አካባቢ)።ለበለጠ አማራጮች የደንበኞች አገልግሎት ደውል ወይም "\n\n"እንደገና ሞክር።"</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ከልክ ያለፈ የSPC  መታወክ"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"ተመለስ"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"በድጋሚ ሞክር"</string>
+    <string name="ota_next" msgid="3904945374358235910">"በመቀጠል"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"የአደጋጊዜ ተዘዋዋሪ ጥሪ ሁነታ ገብቷል"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"የአደጋጊዜ ተዘዋዋሪጥሪ ሁነታ"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"የውሂብ ተያያዥነት አልነቃም"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">" ለ<xliff:g id="COUNT">%s</xliff:g> ደቂቃ ምንም የውሂብ ተያያዥነት የለም"</item>
+    <item quantity="other" msgid="3122217344579273583">"ለ <xliff:g id="COUNT">%s</xliff:g> ደቂቃ ምንም የውሂብ ተያያዥነት የለም"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"ለ<xliff:g id="COUNT">%s</xliff:g> ደቂቃ ስልኩ በየአደጋ ጥሪ ሁናቴ ውስጥ ይሆናል፡፡ በዚህ ሁናቴ ውስጥ ምንም መተግበሪያዎች የውሂብ ግንኙነት በመጠቀም መጠቀም አይቻልም፡፡ አሁን መውጣት ትፈልጋለህ?"</item>
+    <item quantity="other" msgid="8617116564023933114">"ለ<xliff:g id="COUNT">%s</xliff:g>ደቂቃዎች ስልኩ በየአደጋ ጥሪ ሁናቴ ውስጥ ይሆናል፡፡ በዚህ ሁናቴ ውስጥ ምንም መተግበሪያዎች የውሂብ ግንኙነት በመጠቀም መጠቀም አይቻልም፡፡ አሁን መውጣት ትፈልጋለህ?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"የአደጋ ጥሪ ሁናቴ በሚሆንበት ጊዜ የተመረጠው እርምጃ አይገኝም፡፡ ስልኩ ለ<xliff:g id="COUNT">%s</xliff:g> ደቂቃ በዚህ ሁናቴ ውስጥ ይሆናል፡፡ አሁን መውጣት ትፈልጋለህ?"</item>
+    <item quantity="other" msgid="6115622137771382224">"የአደጋ ጥሪ ሁናቴ በሚሆንበት ጊዜ የተመረጠው እርምጃ አይገኝም፡፡ ስልኩ ለ<xliff:g id="COUNT">%s</xliff:g> ደቂቃዎች በዚህ ሁናቴ ውስጥ ይሆናል፡፡ አሁን መውጣት ትፈልጋለህ?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"የተመረጠው እርምጃ በአደጋ ጥሪ ጊዜ ለክንውን ሊገኝ አይችልም።"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁኔታ ወጥቷል"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"አዎ"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"አይ"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"እንቢበል"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"አገልግሎት"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"አዋቅር"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;አልተዘጋጀም &gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"ሌላ ጥሪ ቅንብሮች"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"የዕውቂያ ፎቶ"</string>
+    <string name="goPrivate" msgid="865837794424530980">"ወደ ብሕታዊነት ሂድ"</string>
+    <string name="selectContact" msgid="781975788478987237">"ዕውቂያ ምረጥ"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"የበይነ መረብ ጥሪ ቅንብሮች"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"የበይነ መረብ ጥሪ (SIP) መለያ"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"መለያዎች"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"ገቢ ጥሪዎች ተቀበል"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"የባትሪ ህይወት ይቀንሳል"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"የበየነ መረብ ጥሪ ተጠቀም"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"የበይነመረብ ጥሪ(Wi-Fi ብቻ) ተጠቀም"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"ለሁሉም ጥሪዎች የውሂብ አውታረመረብ ሲኖር"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"ለበይነ መረብ ጥሪዎች ብቻ"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"ለእያንዳንዱ ጥሪ ጠይቅ"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"ለሁሉም ጥሪዎች"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"ጥሪ አድርግ"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"የበየነ መረብ ጥሪ መለያ ተጠቀም፡"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"ሁልጊዜ የበይነመረብ ጥሪዎችን ለማድረግ ተጠቀም"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"የትኛውን የበየነ መረብ የመደወያ መለያ ለመጠቀም በነባሪ ከስልኩ&gt; ቅንብሮች  &gt; የበየነ መረብ ቅንብሮች  &gt; የመለያዎች ማሳያ መለወጥ ይችላሉ።"</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"የተንቀሳቃሽ ስልክ ጥሪ"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"የበይነመረብ  ጥሪ"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"ምንም የበይነ መረብ ጥሪ መለያ"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"በዚህ ስልክ ላይ ምንም የበየነ መረብ መደወያ መለያዎች የሉም፡፡ አሁን አንድ ማከል ትፈልጋለህ?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"አክል"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"መለያ አክል"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"መለያ አስወግድ"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP መለያዎች"</string>
+    <string name="saving_account" msgid="52903398217017954">"መለያውን በማስቀመጥ ላይ.."</string>
+    <string name="removing_account" msgid="7183999896088628100">"መለያውን በማስወገድ ላይ..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"አስቀምጥ"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"አስወግድ"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"መገለጫውን ዝጋ"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ይሁን"</string>
+    <string name="close_profile" msgid="6886968271423155284">"ዝጋ"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"ቀዳሚ መለያ፡<xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"ሁኔታን በመመልከት ላይ..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"በመመዝገብ ላይ...."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"አሁንም በመሞከር ላይ..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"ጥሪዎች አይቀበልም"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"የበይነመረብ ግኑኝነት ስለሌለ የመለያ ምዝገባ ቆሟል፡፡"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"ምንም የWi-Fi ተያያዥ ስለሌለ የመለያ ምዝገባ ቆሟል"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"የመለያ ምዝገባ ስኬታማ አልነበረም"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"ጥሪዎች በመቀበል ላይ"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"የመለያ ምዝገባ ስኬታማ አልነበረም፤ (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)፣ ኋላ ላይ እንደገና ይሞከራል"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"የመለያ ምዝገባ ስኬታማ አልነበረም፤ የተሳሳተ ተጠቃሚ ስም ወይም ይለፍ ቃል፡፡"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"የመለያ ምዝገባ ስኬታማ አልነበረም፤ የአገልጋዩን ስም ትክክለኛነት አረጋግጥ፡፡"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"ይህ መለያ በአሁኑ ጊዜ በ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>ትግበራ ጥቅም ላይ ነው።"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP መለያ ዝርዝሮች"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP መለያ ዝርዝሮች"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"አገልጋይ"</string>
+    <string name="username_title" msgid="2479375923477682328">"የተጠቃሚ ስም"</string>
+    <string name="password_title" msgid="3323555249068171531">" የይለፍ ቃል"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"የማሳያ ስም"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"የወደ ውጪ እጅ አዙር አድራሻ"</string>
+    <string name="port_title" msgid="5952939408078626657">"ወደብ ቁጥር"</string>
+    <string name="transport_title" msgid="8253139511847746640">"የማጓጓዣ አይነት"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"keep-alive ላክ"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"እንደ ቀዳሚ መለያ አዘጋጅ"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"ለወደ ውጪ ጥሪዎች ይጠቅማል"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"አማራጭ ቅንብሮች"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"የማረጋገጫ  ተጠቃሚ ስም"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"ተጠቃሚ ስም ለማረጋገጫ ተጠቅሟል"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;አልተዘጋጀም &gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;እንደ ተጠቃሚ ስም ተመሳሳይ&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;አማራጭ&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ ሁሉን ለማሳየት ንካ"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"ሁሉንም ለመደበቅ ▽ ንካ"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>ይጠይቃል፣ ባዶ ቦታ መተው አልተቻለም።"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"የወደብ ቁጥር በ1000 እና 65534 ውስጥ መሆን አለበት።"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"ምንም በይነ መረብ ተያያዥ የለም"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"ምንምWi-Fi ትይይዝ የለም"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"የበይነ መረብ ጥሪ ለማድረግ፣ የበይነ መረብ መጀመሪያ ተያያዥነት ተመልከት"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"ለአውታረ መረብ(የገመድ አልባ &amp; አውታረ መረብ ቅንብሮችን ይጠቀሙ) ጥሪዎች ወደ Wi-Fi አውታረ መረብ ማገናኘት አለብዎ።"</string>
+    <string name="no_voip" msgid="8901474054537199865">"የበይነ መረብ ጥሪ አይደገፍም"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"ራስ ሰር"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"ሁልጊዜ ላክ"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"የድምፅ ጥሪ አይታገዝም"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"አሁን ማውራት አልችልም። ሰላም ነው?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"ወዲያው መልሼ እደውላለሁ።"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"ኋላ እደውላለሁ።"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"አሁን ማውራት አልችልም። ትንሽ ቆይተው ይደውሉ?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"የእራስዎን ይጻፉ..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"ፈጣን ምላሾች"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"ፈጣን ምላሾች አርትዕ"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"ፈጣን ምላሽ"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"ነባሪውን መተግበሪያ ዳግም አስጀምር"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"ለ <xliff:g id="PHONE_NUMBER">%s</xliff:g> የተላከ መልዕክት"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"አንድ"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"ሁለት"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"ሦስት"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"አራት"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"አምስት"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"ስድስት"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"ሰባት"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"ስምንት"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"ዘጠኝ"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"ኮከብ"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"ዜሮ"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"ፓውንድ"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"ደውል"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"የኋሊት ደምሳሽ"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"የስልክ ድምፅ ማጉያ ነቅቷል።"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"ጥሪ ፀጥ  ብሏል"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"መልስ"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS ላክ"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"አትቀበል"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ንዘር"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ንዘር"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ድምፅ"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"ነባሪ ድምጽ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"የስልክ ጥሪ ድምፅ"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"በሚደወልበት ጊዜ ንዘር"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"የመደወያ ሰሌዳ ድምፆች ዳስ"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"የመደወያ ሰሌዳ ራስ-ሙላ"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"የደወል ቅላጼ እና ንዘረት"</string>
+</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
new file mode 100644
index 0000000..9d5bf57
--- /dev/null
+++ b/res/values-ar/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"بيانات الجوال"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"الهاتف"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"طالب الطوارئ"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"الهاتف"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"قائمة FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"غير معروف"</string>
+    <string name="private_num" msgid="6713286113000232309">"رقم خاص"</string>
+    <string name="payphone" msgid="1931775086311769314">"هاتف الدفع"</string>
+    <string name="onHold" msgid="9035493194749959955">"معلقة"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"الخط مشغول"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"الشبكة مشغولة"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"ليس هناك استجابة، انقضت المهلة المحددة"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"لا يمكن الوصول إلى الخادم"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"الرقم لا يمكن الوصول إليه"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"اسم المستخدم غير صحيح أو كلمة المرور غير صحيحة"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"تم الاتصال من خارج الشبكة"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"خطأ بالخادم: إعادة المحاولة لاحقًا."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"لا إشارة"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"تم تعدي حد ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"تم إيقاف اللاسلكي"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"لا تتوفر بطاقة SIM أو حدث خطأ في البطاقة"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"خارج نطاق الخدمة"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"يتم تقييد المكالمات الصادرة بواسطة FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"لا يمكنك إجراء مكالمات صادرة أثناء تشغيل حظر المكالمات."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"تم تقييد كل المكالمات بواسطة التحكم في الدخول."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"تم تقييد مكالمات الطوارئ بواسطة التحكم في الدخول."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"تم تقييد المكالمات العادية بواسطة التحكم في الدخول."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"الرقم غير صالح"</string>
+    <string name="confCall" msgid="1904840547188336828">"مكالمة جماعية"</string>
+    <string name="call_lost" msgid="317670617901479594">"تم فقد الاتصال."</string>
+    <string name="ok" msgid="3811371167865772377">"موافق"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"بدأ رمز MMI"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"جارٍ تشغيل رمز USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"تم إلغاء كود MMI"</string>
+    <string name="cancel" msgid="5044513931633602634">"إلغاء"</string>
+    <string name="enter_input" msgid="1810529547726803893">"يجب أن تتراوح حروف رسالة USSD بين <xliff:g id="MIN_LEN">%d</xliff:g> و<xliff:g id="MAX_LEN">%d</xliff:g>. الرجاء إعادة المحاولة."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"إدارة مكالمة جماعية"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"السماعة"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"سماعة الأذن للهاتف"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"سماعة رأس سلكية"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"بلوتوث"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"هل تريد إرسال النغمات التالية؟"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"إرسال النغمات"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"إرسال"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"نعم"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"لا"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"استبدال حرف البدل بـ"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"رقم البريد الصوتي مفقود"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"لم يتم تخزين رقم بريد صوتي على بطاقة SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"إضافة رقم"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"تم إلغاء حظر بطاقة SIM. جارٍ إلغاء تأمين الهاتف..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"رقم التعريف الشخصي لإلغاء تأمين شبكة SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"إلغاء تأمين"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"استبعاد"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"جارٍ طلب إلغاء تأمين الشبكة..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"لم ينجح طلب إلغاء تأمين الشبكة."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"نجح إلغاء تأمين الشبكة."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"إعدادات اتصال نظام GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"إعدادات اتصال CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"الدخول إلى أسماء النقاط"</string>
+    <string name="settings_label" msgid="3876743539816984008">"إعدادات الشبكة"</string>
+    <string name="voicemail" msgid="8693759337917898954">"البريد الصوتي"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"مشغلو الشبكة"</string>
+    <string name="call_settings" msgid="6112441768261754562">"إعدادات الاتصال"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"إعدادات إضافية"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"إعدادات اتصال GSM الإضافية فقط"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"إعدادات اتصال CDMA الإضافية"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"إعدادات اتصال CDMA الإضافية فقط"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"إعدادات خدمة الشبكة"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"معرف المتصل"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"جارٍ تحميل الإعدادات…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"الرقم مخفي في المكالمات الصادرة"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"الرقم المعروض في المكالمات الصادرة"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"استخدام إعدادات المشغل الافتراضية لعرض رقمي في المكالمات الصادرة"</string>
+    <string name="labelCW" msgid="6120513814915920200">"انتظار المكالمة"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"تنبيهي بالمكالمات الواردة أثناء المكالمة"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"تنبيهي بالمكالمات الواردة أثناء المكالمة"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"إعدادات إعادة توجيه الاتصال"</string>
+    <string name="labelCF" msgid="2574386948026924737">"إعادة توجيه الاتصال"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"إعادة التوجيه دومًا"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"استخدام هذا الرقم دائمًا"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"إعادة التوجيه كل المكالمات"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"إعادة توجيه كل المكالمات إلى <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"الرقم غير متاح"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"معطّل"</string>
+    <string name="labelCFB" msgid="218938523102207587">"إعادة التوجيه عندما يكون مشغول"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"الرقم عندما يكون مشغولاً"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"إعادة التوجيه إلى <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"معطّل"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"لا يتيح مشغل شبكة الجوال تعطيل إعادة توجيه الاتصال عندما يكون هاتفك مشغولاً."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"إعادة التوجيه عند عدم الرد"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"الرقم عندما لا يتم الرد"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"إعادة التوجيه إلى <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"معطّل"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"لا يتيح مشغل شبكة الجوال تعطيل إعادة توجيه الاتصال عند عدم رد هاتفك."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"إعادة التوجيه عندما لا يمكن الوصول"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"الرقم عندما لا يمكن الوصول"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"إعادة التوجيه إلى <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"معطّل"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"لا يتيح مشغل شبكة الجوال تعطيل إعادة توجيه الاتصال عند عدم التمكن من الوصول إلى هاتفك."</string>
+    <string name="updating_title" msgid="6146755386174019046">"إعدادات الاتصال"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"خطأ في إعدادات الاتصال"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"جارٍ قراءة الإعدادات..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"جارٍ تحديث الإعدادات..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"جارٍ إعادة الإعدادات..."</string>
+    <string name="response_error" msgid="6674110501330139405">"رد غير متوقع من الشبكة."</string>
+    <string name="exception_error" msgid="7027667130619518211">"خطأ في الشبكة أو في بطاقة SIM"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"تم تشغيل إعداد أرقام الاتصال الثابتة بالتطبيق المثبت على هاتفك. ونتيجة لذلك، لن تعمل بعض الميزات المرتبطة بالمكالمات."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"شغّل اللاسلكي قبل عرض هذه الإعدادات."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"موافق"</string>
+    <string name="enable" msgid="1059008390636773574">"تمكين"</string>
+    <string name="disable" msgid="7274240979164762320">"تعطيل"</string>
+    <string name="change_num" msgid="239476305819844391">"تحديث"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"الشبكة الافتراضية"</item>
+    <item msgid="7876195870037833661">"إخفاء الرقم"</item>
+    <item msgid="1108394741608734023">"إظهار الرقم"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"تم تغيير رقم البريد الصوتي."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"تعذر تغيير رقم البريد الصوتي."\n"يمكنك الاتصال بمشغل شبكة الجوال إذا استمرت هذه المشكلة في الظهور."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"تعذر تغيير رقم إعادة التوجيه."\n"اتصل بمشغل شبكة الجوّال إذا استمرت هذه المشكلة في الظهور."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"تتعذر عملية استعادة إعدادات إعادة توجيه الأرقام الحالية وحفظها."\n"هل تريد الانتقال إلى الموزع الجديد على أي حال؟"</string>
+    <string name="no_change" msgid="3186040086622435212">"لم يتم إجراء أية تغييرات."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"اختيار خدمة البريد الصوتي"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"مشغل شبكة الجوال"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"إعدادات شبكة الجوال"</string>
+    <string name="label_available" msgid="1181658289009300430">"الشبكات المتاحة"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"جارِ البحث…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"لم يتم العثور على شبكات."</string>
+    <string name="search_networks" msgid="1601136049300882441">"بحث في الشبكات"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"حدث خطأ أثناء البحث عن شبكات."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"جارٍ التسجيل على <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"لا تسمح بطاقة SIM بالاتصال بهذه الشبكة."</string>
+    <string name="connect_later" msgid="2308119155752343975">"يتعذر الاتصال بهذه الشبكة في الوقت الحالي. حاول مرة أخرى لاحقًا."</string>
+    <string name="registration_done" msgid="495135664535876612">"مسجل على الشبكة."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"اختر مشغل شبكة جوال"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"البحث عن كل الشبكات المتاحة"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"اختيار تلقائي"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"اختيار الشبكة المفضلة تلقائيًا"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"التسجيل التلقائي..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"وضع الشبكة"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"تغيير وضع تشغيل الشبكة"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"وضع الشبكة المفضل"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"وضع الشبكة المفضل: تم تفضيل WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"وضع الشبكة المفضل: GSM فقط"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"وضع الشبكة المفضل: WCDMA فقط"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"وضع الشبكة المفضل: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"وضع الشبكة المفضل: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"وضع الشبكة المفضل: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"وضع الشبكة المفضل: CDMA فقط"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"وضع الشبكة المفضل: EvDo فقط"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"وضع الشبكة المفضل: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"وضع الشبكة المفضل: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"وضع الشبكة المفضل: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"وضع الشبكة المفضل: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"وضع الشبكة المفضل: عام"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"وضع الشبكة المفضل: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"عام"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo فقط"</item>
+    <item msgid="1508557726283094448">"CDMA w/o EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo تلقائي"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA تلقائي"</item>
+    <item msgid="7913148405605373434">"WCDMA فقط"</item>
+    <item msgid="1524224863879435516">"نظام GSM فقط"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA المفضل"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"تم تمكين البيانات"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"تمكين الدخول إلى البيانات عبر شبكة الجوال"</string>
+    <string name="roaming" msgid="8871412572928323707">"تجوال البيانات"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"اتصال بخدمات البيانات عند التجوال"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"اتصال بخدمات البيانات عند التجوال"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"لقد فقدت اتصال البيانات نظرًا لأنك أوقفت تشغيل تجوال البيانات بشبكتك الرئيسية."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"هل تريد السماح بتجوال البيانات؟ قد يكلفك ذلك رسوم تجوال مرتفعة!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"خيارات نظام GSM/النظام العالمي لاتصالات الجوال عن بعد (UMTS)"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"خيارات CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"استخدام البيانات"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"البيانات المستخدمة في المدة الحالية"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"مدة استخدام البيانات"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"سياسية معدل البيانات"</string>
+    <string name="throttle_help" msgid="243651091785169900">"مزيد من المعلومات"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) من <xliff:g id="USED_2">%3$s</xliff:g> الحد الأقصى للمدة"\n"تبدأ المدة التالية خلال <xliff:g id="USED_3">%4$d</xliff:g> يوم (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) من <xliff:g id="USED_2">%3$s</xliff:g> الحد الأقصى للمدة"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> تم تعدي الحد الأقصى"\n"تم تخفيض معدل البيانات إلى <xliff:g id="USED_1">%2$d</xliff:g> كيلوبايت/ثانية"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"انقضت نسبة <xliff:g id="USED_0">%1$d</xliff:g>٪ من الدورة"\n"تبدأ الفترة التالية خلال <xliff:g id="USED_1">%2$d</xliff:g> يوم (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"تخفيض معدل البيانات إلى <xliff:g id="USED">%1$d</xliff:g> كيلوبايت/ثانية إذا تم تعدي حد البيانات"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"مزيد من المعلومات حول سياسة استخدام بيانات شبكة جوال مشغل شبكة الجوال"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"الرسائل القصيرة SMS لبث الخلية"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"الرسائل القصيرة SMS لبث الخلية"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"تم تمكين الرسائل القصيرة SMS لبث الخلية"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"تم تعطيل الرسائل القصيرة SMS لبث الخلية"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"إعدادات الرسائل القصيرة SMS لبث الخلية"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"بث الطوارئ"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"تم تمكين بث الطوارئ"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"تم تعطيل بث الطوارئ"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"إداري"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"تم تمكين الإداري"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"تم تعطيل الإداري"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"الصيانة"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"تم تمكين الصيانة"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"تم تعطيل الصيانة"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"أخبار عامة"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"أخبار الأعمال والأخبار المالية"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"أخبار رياضية"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"أخبار ترفيهية"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"محلي"</string>
+    <string name="local_enable" msgid="6370463247609136359">"تم تمكين الأخبار المحلية"</string>
+    <string name="local_disable" msgid="4405691986943795798">"تم تعطيل الأخبار المحلية"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"إقليمي"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"تم تمكين الأخبار الإقليمية"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"تم تعطيل الأخبار الإقليمية"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"إقليمي"</string>
+    <string name="national_enable" msgid="1172443648912246952">"تم تمكين الأخبار الإقليمية"</string>
+    <string name="national_disable" msgid="326018148178601166">"تم تعطيل الأخبار القومية"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"دولي"</string>
+    <string name="international_enable" msgid="5855356769925044927">"تم تمكين الأخبار الدولية"</string>
+    <string name="international_disable" msgid="2850648591041088931">"تم تعطيل الأخبار الدولية"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"اللغة"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"حدد لغة الأخبار"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"الإنجليزية"</item>
+    <item msgid="1151988412809572526">"الفرنسية"</item>
+    <item msgid="577840534704312665">"الإسبانية"</item>
+    <item msgid="8385712091143148180">"اليابانية"</item>
+    <item msgid="1858401628368130638">"الكورية"</item>
+    <item msgid="1933212028684529632">"الصينية"</item>
+    <item msgid="1908428006803639064">"العبرية"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"اللغات"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"الطقس المحلي"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"تم تمكين الطقس المحلي"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"تم تعطيل الطقس المحلي"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"تقارير حركة المرور بالمنطقة"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"تم تمكين تقارير حركة المرور بالمنطقة"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"تم تعطيل تقارير حركة المرور بالمنطقة"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"جداول مواعيد رحلات الطائرات المحلية"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"تم تمكين جداول مواعيد رحلات الطائرات المحلية"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"تم تعطيل جداول مواعيد رحلات الطائرات المحلية"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"مطاعم"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"تم تمكين المطاعم"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"تم تعطيل المطاعم"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"السكن"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"تم تمكين السكن"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"تم تعطيل السكن"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"دليل البيع بالتجزئة"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"تم تمكين دليل البيع بالتجزئة"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"تم تعطيل دليل البيع بالتجزئة"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"الإعلانات"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"تم تمكين الإعلانات"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"تم تعطيل الإعلانات"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"أسعار الأسهم"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"تم تمكين أسعار الأسهم"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"تم تعطيل أسعار الأسهم"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"فرص وظائف"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"تم تمكين فرص الوظائف"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"تم تعطيل فرص الوظائف"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"طبي والصحة والمستشفى"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"تم تمكين الطبي والصحة والمستشفى"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"تم تعطيل الطبي والصحة والمستشفى"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"أخبار التكنولوجيا"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"تم تمكين أخبار التكنولوجيا"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"تم تعطيل أخبار التكنولوجيا"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"متعددة الفئات"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"تم تمكين المتعددة الفئات"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"تم تعطيل متعددة الفئات"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"استخدام شبكات 2G فقط"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"لحفظ البطارية"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"تحديد النظام"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"تغيير وضع التجوال عبر CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"تحديد النظام"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"الرئيسية فقط"</item>
+    <item msgid="1205664026446156265">"تلقائي"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"اشتراك CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"تغيير بين RUIM/SIM وNV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"الاشتراك"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"بطاقة RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"تنشيط الجهاز"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"إعداد خدمة البيانات"</string>
+    <string name="fdn" msgid="7878832555095183202">"أرقام الاتصال الثابتة"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"قائمة FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"تنشيط FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"تم تمكين أرقام الاتصال الثابتة"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"تم تعطيل أرقام الاتصال الثابتة"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"تمكين FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"تعطيل FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"تغيير رقم التعريف الشخصي PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"تعطيل FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"تمكين FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"إدارة أرقام الاتصال الثابتة"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"تغيير رقم التعريف الشخصي للدخول إلى FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"إدارة قائمة أرقام الهاتف"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"خصوصية الصوت"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"تمكين وضع الخصوصية المحسن"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"وضع TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"تعيين وضع TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"إعادة المحاولة تلقائيًا"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"تمكين وضع إعادة المحاولة التلقائي"</string>
+    <string name="menu_add" msgid="1882023737425114762">"إضافة جهة اتصال"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"تعديل جهة الاتصال"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"حذف جهة الاتصال"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"اكتب رقم تعريف شخصي PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"الاسم"</string>
+    <string name="number" msgid="7905950798349903858">"الرقم"</string>
+    <string name="save" msgid="4094274636321939086">"حفظ"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"إضافة رقم اتصال ثابت"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"جارٍ إضافة رقم الاتصال الثابت..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"تمت إضافة رقم الاتصال الثابت."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"تعديل رقم الاتصال الثابت"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"جارٍ تحديث رقم الاتصال الثابت..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"تم تحديث رقم الاتصال الثابت."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"حذف رقم الاتصال الثابت"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"جارٍ حذف رقم الاتصال الثابت..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"تم حذف رقم الاتصال الثابت."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"لم يتم تحديث FDN لأنك كتبت رقم تعريف شخصي غير صحيح."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"لم يتم تحديث FDN لأن العدد لا يمكن أن يتجاوز 20 رقمًا."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"لم يتم تحديث FDN. رقم PIN2 غير صحيح، أو تم رفض رقم الهاتف."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"جارٍ القراءة من بطاقة SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"ليس هناك جهات اتصال على بطاقة SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"حدد جهات اتصال لاستيرادها"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"لاستيراد جهات اتصال من بطاقة SIM، الرجاء إيقاف وضع الطائرة أولاً."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"تمكين/تعطيل رقم التعريف الشخصي لبطاقة SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"تغيير رقم التعريف الشخصي لبطاقة SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"رقم التعريف الشخصي لبطاقة SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"رقم التعريف الشخصي القديم"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"رقم التعريف الشخصي الجديد"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"تأكيد رقم التعريف الشخصي الجديد"</string>
+    <string name="badPin" msgid="8955102849303984935">"رقم التعريف الشخصي القديم الذي كتبته غير صحيح. حاول مرة أخرى."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"أرقام التعريف الشخصي PIN2 التي كتبتها غير متطابقة. حاول مرة أخرى."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"اكتب رقم التعريف الشخصي المكون من 4 إلى 8 أرقام."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"تعطيل رقم التعريف الشخصي لبطاقة SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"تمكين رقم التعريف الشخصي لبطاقة SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"يُرجى الانتظار…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"تم تمكين رقم التعريف الشخصي لبطاقة SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"تم تعطيل رقم التعريف الشخصي لبطاقة SIM."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"رقم التعريف الشخصي الذي كتبته ليس صحيحًا."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"تم تغيير رقم التعريف الشخصي لبطاقة SIM بنجاح."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"كلمة المرور غير صحيحة، تم تأمين بطاقة SIM! رقم PUK2 مطلوب."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"رقم التعريف الشخصي PIN2 القديم"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"رقم تعريف شخصي PIN2 جديد"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"تأكيد رقم التعريف الشخصي PIN2 الجديد"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"رقم PUK2 الذي كتبته غير صحيح. حاول مرة أخرى."</string>
+    <string name="badPin2" msgid="1041576234483629991">"رقم التعريف الشخصي PIN2 القديم الذي كتبته غير صحيح. الرجاء المحاولة مرة أخرى."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"أرقام التعريف الشخصي PIN2 التي كتبتها غير متطابقة. حاول مرة أخرى."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"اكتب رقم التعريف الشخصي PIN2 المكون من 4 إلى 8 أرقام."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"اكتب PUK2 يتكون من 8 أحرف."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"تم تغيير رقم التعريف الشخصي PIN2 بنجاح."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"اكتب رمز PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"كلمة المرور غير صحيحة.غيّر رقم التعريف الشخصي PIN2 وأعد المحاولة."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"كلمة المرور غير صحيحة، تم تأمين بطاقة SIM. رقم PUK2 مطلوب."</string>
+    <string name="doneButton" msgid="2859593360997984240">"تم"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"مكالمة جماعية <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"رقم البريد الصوتي"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"طلب"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"جارٍ إعادة المحاولة"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"مكالمة جماعية"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"مكالمة واردة"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"تم إنهاء الاتصال"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"معلقة"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"إنهاء المكالمة"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"قيد الاتصال"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"رقمي هو <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"جارٍ الطلب"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"مكالمة فائتة"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"المكالمات الفائتة"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> من المكالمات الفائتة"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"مكالمة فائتة من <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"مكالمة حالية"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"معلقة"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"مكالمة واردة"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"بريد صوتي جديد"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"بريد صوتي جديد (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"طلب <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"رقم البريد الصوتي غير معروف"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"لا خدمة"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"الشبكة المحددة (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) غير متاحة"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"قطع الاتصال"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"معاودة الاتصال"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"رسالة"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"لإجراء مكالمة، أوقف تشغيل وضع الطائرة أولاً."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"غير مسجل على الشبكة."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"شبكة الجوال غير متاحة."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"لم يتم إرسال الاتصال، لم يتم إدخال رقم صالح."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"لم يتم إرسال الاتصال."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"جارٍ بدء تسلسل MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"خدمة غير معتمدة."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"يتعذر تبديل المكالمات."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"يتعذر فصل المكالمة."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"تعذر تحويل الاتصال."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"يتعذر إجراء مكالمات جماعية."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"يتعذر رفض المكالمة."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"يتعذر إجراء مكالمات."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"مكالمة عبر الإنترنت"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"مكالمة الطوارئ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"جارٍ تشغيل اللاسلكي..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"خارج نطاق الخدمة، جارٍ إعادة المحاولة..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"لم يتم إرسال المكالمة. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ليس رقم طوارئ."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"لم يتم إرسال الاتصال. اطلب رقم طوارئ."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"استخدام لوحة المفاتيح للطلب"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"تعليق"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"الانتهاء"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"لوحة الاتصال"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"كتم الصوت"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"إضافة مكالمة"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"دمج المكالمات"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"تبديل"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"إدارة المكالمات"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"إدارة المؤتمر"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"الصوت"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"مكالمة فيديو"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"استيراد"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"استيراد الكل"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"استيراد جهات اتصال بطاقة SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"استيراد من جهات الاتصال"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"أدوات السمع المساعدة"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"تشغيل التوافق مع أداة السمع"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"إيقاف تشغيل TTY"</item>
+    <item msgid="3971695875449640648">"TTY مكتمل"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"نغمات DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"تعيين طول نغمات DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"عادي"</item>
+    <item msgid="2883365539347850535">"طويلة"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"رسالة الشبكة"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"تنشيط الهاتف"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"يلزم إجراء اتصال خاص لتنشيط خدمة الهاتف. "\n\n"بعد الضغط على \"تنشيط\"، استمع إلى الإرشادات المقدمة لتنشيط هاتفك."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"هل تريد تخطي التنشيط؟"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"إذا تخطيت التنشيط، فلن تتمكن من إجراء مكالمات أو الاتصال بشبكات بيانات الجوال (ومع ذلك، يمكنك الاتصال بشبكات Wi-Fi). إلى أن تنشط هاتفك، ستتم مطالبتك بتنشيطه في كل مرة تشغله فيها."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"تخطٍ"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"تنشيط"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"تم تنشيط الهاتف."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"مشكلة في التنشيط"</string>
+    <string name="ota_listen" msgid="162923839877584937">"اتبع الإرشادات المنطوقة حتى تسمع ما يفيد بانتهاء التنشيط."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"مكبر الصوت"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"انتظر حتى تتم برمجة هاتفك."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"لم تنجح البرمجة"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"تم تنشيط هاتفك الآن. قد يستغرق بدء الخدمة ما يصل إلى 15 دقيقة."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"لم يتم تنشيط الهاتف. "\n"ربما يلزمك البحث عن منطقة بها تغطية أفضل (بجانب نافذة أو بالخارج). "\n\n"حاول مرة أخرى أو اتصل بخدمة العملاء للحصول على مزيد من الخيارات."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"إخفاقات في المواصفات الزائدة"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"رجوع"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"حاول مرة أخرى"</string>
+    <string name="ota_next" msgid="3904945374358235910">"التالي"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"تم الدخول إلى وضع هاتف معاودة الاتصال بالطوارئ"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"وضع هاتف معاودة الاتصال بالطوارئ"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"تم تعطيل اتصال البيانات"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"لا اتصال بيانات لمدة <xliff:g id="COUNT">%s</xliff:g> دقيقة"</item>
+    <item quantity="other" msgid="3122217344579273583">"لا اتصال بيانات لمدة <xliff:g id="COUNT">%s</xliff:g> دقيقة"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT">%s</xliff:g> دقائق. لا يمكن استخدام تطبيقات أثناء استخدام هذا الوضع. هل تريد الخروج الآن؟"</item>
+    <item quantity="other" msgid="8617116564023933114">"سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT">%s</xliff:g> دقائق. لا يمكن استخدام تطبيقات تستخدم اتصال البيانات أثناء استخدام هذا الوضع. هل تريد الخروج الآن؟"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"الإجراء المحدد ليس متاحًا أثناء استخدام وضع معاودة الاتصال بالطوارئ. سيظل الهاتف في هذا الوضع لمدة <xliff:g id="COUNT">%s</xliff:g> دقائق. هل تريد الخروج الآن؟"</item>
+    <item quantity="other" msgid="6115622137771382224">"الإجراء المحدد ليس متاحًا أثناء استخدام وضع معاودة الاتصال بالطوارئ. سيظل الهاتف في هذا الوضع لمدة <xliff:g id="COUNT">%s</xliff:g> دقائق. هل تريد الخروج الآن؟"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"الإجراء المحدد ليس متاحًا أثناء إجراء اتصال بالطوارئ."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"الخروج من وضع معاودة الاتصال بالطوارئ"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"نعم"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"لا"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"استبعاد"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"الخدمة"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"الإعداد"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;لم يتم التعيين&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"إعدادات الاتصال الأخرى"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"صورة جهة الاتصال"</string>
+    <string name="goPrivate" msgid="865837794424530980">"انتقال إلى مكالمة خاصة"</string>
+    <string name="selectContact" msgid="781975788478987237">"تحديد جهة اتصال"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"إعدادات الاتصال عبر الإنترنت"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"حسابات الاتصال عبر الإنترنت (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"الحسابات"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"تلقي المكالمات الواردة"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"يقلل من عمر البطارية"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"استخدام الاتصال عبر الإنترنت"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"استخدام الاتصال عبر الإنترنت (Wi-Fi فقط)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"لكل المكالمات عند توفر شبكة البيانات"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"فقط للمكالمات عبر الإنترنت"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"المطالبة لكل اتصال"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"لكل المكالمات"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"إجراء اتصال"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"استخدام حساب الاتصال عبر الإنترنت:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"الاستخدام دومًا لإجراء مكالمات عبر الإنترنت"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"يمكنك تغيير حساب مكالمات الإنترنت الذي تريد استخدامه افتراضيًا من الهاتف &gt; إعدادات &gt; إعدادات مكالمات لإنترنت &gt; شاشة الحسابات."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"اتصال عبر هاتف خلوي"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"مكالمة عبر الإنترنت"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"ليس هناك حساب اتصال عبر الإنترنت"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"لا توجد حسابات مكالمات الإنترنت على هذا الهاتف. هل تريد إضافة حساب الآن؟"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"إضافة"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"إضافة حساب"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"إزالة الحساب"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"حسابات SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"جارٍ حفظ الحساب..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"جارٍ إزالة الحساب..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"حفظ"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"تجاهل"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"إغلاق الملف الشخصي"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"موافق"</string>
+    <string name="close_profile" msgid="6886968271423155284">"إغلاق"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"حساب أساسي. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"جارٍ فحص الحالة..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"جارٍ التسجيل..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"لا تزال المحاولة مستمرة..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"عدم استلام مكالمات."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"توقف تسجيل الحساب نظرًا لعدم توفر اتصال بالإنترنت."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"توقف تسجيل الحساب نظرًا لعدم توفر اتصال Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"لم يتم تسجيل الحساب بنجاح."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"جارٍ استلام مكالمات."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"لم يتم تسجيل الحساب بنجاح: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)؛ ستتم المحاولة لاحقًا"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"لم يتم تسجيل الحساب بنجاح: اسم مستخدم غير صحيح أو كلمة مرور غير صحيحة."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"لم يتم تسجيل الحساب بنجاح: تحقق من اسم الخادم."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"هذا الحساب قيد الاستخدام حاليًا من خلال تطبيق <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"تفاصيل حساب SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"تفاصيل حساب SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"الخادم"</string>
+    <string name="username_title" msgid="2479375923477682328">"اسم المستخدم"</string>
+    <string name="password_title" msgid="3323555249068171531">"كلمة المرور"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"اسم العرض"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"عنوان وكيل صادر"</string>
+    <string name="port_title" msgid="5952939408078626657">"رقم المنفذ"</string>
+    <string name="transport_title" msgid="8253139511847746640">"نوع النقل"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"إرسال رسالة للتحقق من الاتصال"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"تعيين كحساب أساسي"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"مستخدمة للمكالمات الصادرة"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"الإعدادات الاختيارية"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"اسم المستخدِم للمصادقة"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"اسم المستخدِم المستخدَم للمصادقة"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;لم يتم تعيينه&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;مثل اسم المستخدم&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;اختياري&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ المس لإظهار الكل"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ المس لإخفاء الكل"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> مطلوب ولا يمكن تركه فارغًا."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"يجب أن يكون رقم المنفذ ما بين 1000 و65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"لا يوجد اتصال بالإنترنت"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"ليس هناك اتصال Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"لإجراء مكالمة إنترنت، تحقق من اتصالك بالإنترنت أولاً."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"يلزمك الاتصال بشبكة Wi-Fi لإجراء مكالمات عبر الإنترنت (استخدم إعدادات اللاسلكي والشبكة)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"الاتصال عبر الإنترنت غير معتمد"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"تلقائي"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"الإرسال دائمًا"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"الاتصال الصوتي غير معتمد"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"لا يمكنني التحدث الآن. ماذا هناك؟"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"سأعاود الاتصال بك."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"سأتصل بك لاحقًا."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"لا يمكنني التحدث الآن. اتصل بي لاحقًا."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"اكتب ردك..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"الردود السريعة"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"تعديل الردود السريعة"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"رد سريع"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"إعادة تعيين التطبيق الافتراضي"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"تم إرسال الرسالة إلى <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"واحد"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"اثنان"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"ثلاثة"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"أربعة"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"خمسة"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"ستة"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"سبعة"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"ثمانية"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"تسعة"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"نجمة"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"صفر"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"رنين"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"طلب"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"مسافة للخلف"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"تم تمكين مكبر صوت الهاتف."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"تم كتم صوت المكالمة."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"رد"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"إرسال رسائل قصيرة SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"رفض"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"الاهتزاز"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"الاهتزاز"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"الصوت"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"الصوت الافتراضي (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"نغمة رنين الهاتف"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"اهتزاز عند الرنين"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"نغمات لمس لوحة الطلب"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"الإكمال التلقائي للوحة الاتصال"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"نغمة الرنين والاهتزاز"</string>
+</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
new file mode 100644
index 0000000..2e11611
--- /dev/null
+++ b/res/values-be/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobile Data"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Phone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Экстраныя выклікі"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Тэлефон"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Спіс FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Невядомы"</string>
+    <string name="private_num" msgid="6713286113000232309">"Прыватны нумар"</string>
+    <string name="payphone" msgid="1931775086311769314">"Таксафон"</string>
+    <string name="onHold" msgid="9035493194749959955">"У чаканні"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Лінія занятая"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Сетка занятая"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Няма адказу, тайм-аўт"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Сервер недаступны"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Колькасць недаступная"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Няправільнае імя ці пароль"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Выклік з-за межаў сеткі"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Памылка сервера. Паспрабуйце пазней."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Няма сігналу"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Ліміт ACM перавышаны"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Радыё выключанае"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Няма SIM-карты або памылка яе чытання"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Па-за зонай абслугоўвання"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Выходныя выклікі абмежаваныя FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Вы не можаце рабіць выходныя выклікi, калі ўключана забарона выклікаў."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Усе выклікі абмежаваныя кантролем доступу."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Экстраныя выклікі абмежаваныя кантролем доступу."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Звычайныя выклікі абмежаваныя кантролем доступу."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Несапраўдны нумар"</string>
+    <string name="confCall" msgid="1904840547188336828">"Канферэнц-выклік"</string>
+    <string name="call_lost" msgid="317670617901479594">"Выклік быў страчаны."</string>
+    <string name="ok" msgid="3811371167865772377">"ОК"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Пачалося выкананне MMI кода"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Запускаецца USSD-код..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Код MMI адменены"</string>
+    <string name="cancel" msgid="5044513931633602634">"Адмяніць"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Паведамленне USSD павінна складацца з наступнай колькасцi знакаў:  ад <xliff:g id="MIN_LEN">%d</xliff:g> да <xliff:g id="MAX_LEN">%d</xliff:g>. Паспрабуйце яшчэ раз."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Кіраванне канферэнц-выклікам"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Дынамік"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Дынамік тэлефона"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Правадная гарнітура"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Адправіць наступныя тоны?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Адпраўка сігналаў"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Адправіць"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Так"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Не"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Замяніце выпадковы сімвал:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Адсутнічае нумар галасавой пошты"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карце няма нумару галасавой пошты."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Дадаць нумар"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Ваша SIM-карта была разблакаваная. Ваш тэлефон разблакоўваецца..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN-код разблакавання сеткі SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Разблакаваць"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Адхіліць"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Запыт разблакавання сеткі..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Запыт разблакавання сеткі няўдалы."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Сетка паспяхова разблакавана."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Налады выклікаў GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Налады выклікаў CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Назвы кропак доступу"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Налады сеткі"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Галасавая пошта"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+    <string name="networks" msgid="8873030692174541976">"Сеткавыя аператары"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Налады выклікаў"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Дадатковыя налады"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Дадатковыя налады выклікаў толькі для GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Дадатковыя налады выклікаў CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Дадатковыя налады толькі для выклікаў CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Налады сеткавых паслуг"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"АВН"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Загрузка налад..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Нумар схаваны з выходных выклікаў"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Нумар, якi паказваецца ў выходных выкліках"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Выкарыстоўваць налады па змаўчаннi, каб аператар мог адлюстроўваць мой нумар у выходных выкліках"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Чаканне выкліку"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Паведамляць пра ўваходныя выклікі падчас размовы"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Паведамляць пра ўваходныя выклікі падчас размовы"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Налады пераадрасацыі выкліку"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Пераадрасацыя выкліку"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Заўсёды пераадрасоўваць"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Заўсёды выкарыстоўваць гэты нумар"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Пераадрасацыя ўсіх выклікаў"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Пераадрасацыя ўсіх тэлефанаванняў на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Нумар недаступны"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Адключана"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Пераадрасацыя, калі занята"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Нумар, калі занята"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Пераадрасацыя на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Адключана"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Ваш аператар не падтрымлівае адключэнне перанакіравання выклікаў, калі тэлефон заняты."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Пераадрасацыя, калі няма адказу"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Нумар, калі няма адказу"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Пераадрасацыя на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Адключана"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Ваш аператар не падтрымлівае адключэнне перанакіравання выклікаў, калі тэлефон не адказвае."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Пераадрасоўваць, калі недаступны"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Нумар, калі недаступны"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Пераадрасацыя на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Адключана"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ваш аператар не падтрымлівае адключэнне пераадрасацыi выклікаў, калі тэлефон недаступны."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Налады выклікаў"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Памылка налад выкліку"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Чытанне налад..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Абнаўленне налад..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Вяртанне налад..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Нечаканы адказ ад сеткі."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Памылка сеткі ці SIM-карты."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Уключаны дазволеныя нумары. У выніку некаторыя функцыі адносна званкоў не працуюць."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Перад праглядам гэтых параметраў уключыце радыё."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"ОК"</string>
+    <string name="enable" msgid="1059008390636773574">"Уключыць"</string>
+    <string name="disable" msgid="7274240979164762320">"Адключыць"</string>
+    <string name="change_num" msgid="239476305819844391">"Абнавіць"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Для сеткі па змаўчаннi"</item>
+    <item msgid="7876195870037833661">"Схаваць нумар"</item>
+    <item msgid="1108394741608734023">"Паказаць нумар"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Нумар галасавой пошты змяніўся."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Не атрымалася змяніць нумар галасавой пошты."\n"Калі праблема не вырашыцца, звярніцеся да свайго аператара."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Не атрымалася змяніць нумар для пераадрасацыi."\n"Калі гэтая праблема не вырашыцца, звярніцеся да свайго аператара."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Немагчыма атрымаць і захаваць бягучыя налады пераадрасацыі нумару."\n"Усё роўна пераключыць на новага пастаўшчыка?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Змены не выкананы."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Выберыце службу галасавой пошты"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Мой аператар"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Налады мабільнай сеткі"</string>
+    <string name="label_available" msgid="1181658289009300430">"Даступныя сеткі"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Пошук..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Сеткі не знойдзены."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Шукаць сеткі"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Памылка падчас пошуку сетак."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Рэгістрацыя ў сетцы <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не дазваляе падключацца да гэтай сеткі."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Зараз немагчыма падключыцца да гэтай сеткі. Паўтарыце спробу пазней."</string>
+    <string name="registration_done" msgid="495135664535876612">"Зарэгістраваны ў сетцы."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Выберыце аператара сеткі"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Пошук усіх даступных сетак"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Выбраць аўтаматычна"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Аўтаматычна выбраць прыярытэтную сетку"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Аўтаматычная рэгістрацыя..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Сеткавы рэжым"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Змяніць рэжым работы сеткі"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Пераважны сеткавы рэжым"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Пераважны рэжым сеткі: пераважна WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Пераважны рэжым сеткі: толькі GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Пераважны рэжым сеткі: толькі WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Пераважны рэжым сеткі: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Пераважны рэжым сеткі: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Пераважны рэжым сеткі: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Пераважны рэжым сеткі: толькі CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Пераважны рэжым сеткі: толькі EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Пераважная сетка: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Пераважная сетка: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Пераважная сетка: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Пераважная сетка: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Пераважная сетка: глабальная"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Пераважная сетка: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Глабальныя"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Толькі EVDO"</item>
+    <item msgid="1508557726283094448">"CDMA без EvDo"</item>
+    <item msgid="4341433122263841224">"Аўтаматычны выбар CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Аўтаматычны выбар GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Толькі WCDMA"</item>
+    <item msgid="1524224863879435516">"Толькі GSM"</item>
+    <item msgid="3817924849415716259">"Пажадана GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Дадзеныя ўключаныя"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Уключыць перадачу дадзеных праз мабільныя сеткі"</string>
+    <string name="roaming" msgid="8871412572928323707">"Перадача дадзеных у роўмінгу"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Злучацца з паслугамі перадачы дадзеных ў роўмінгу"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Злучацца з паслугамі перадачы дадзеных у роўмінгу"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Падлучэнне для перадачы дадзеных страчана, таму што вы выйшлі з зоны пакрыцця сваёй сеткі, а перадача дадзеных у роўмінгу адключана."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Дазволіць перадачу дадзеных у роўмінгу? Гэта можа прывесці да значных дадатковых выплат."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Параметры CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Выкарыстанне дадзеных"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Выкарыстанне дадзеных у бягучы перыяд"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Перыяд выкарыстання дадзеных"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Палітыка хуткасці перадачы дадзеных"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Дадатковая iнфармацыя"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) з максімуму перыяду <xliff:g id="USED_2">%3$s</xliff:g>"\n"Наступны перыяд пачнецца праз <xliff:g id="USED_3">%4$d</xliff:g> д. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) з максімуму перыяду (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Максімум <xliff:g id="USED_0">%1$s</xliff:g> перавышаны"\n"Хуткасць перадачы дадзеных зніжана да <xliff:g id="USED_1">%2$d</xliff:g> Кб/с"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>?? цыклу прайшло"\n"Наступны перыяд пачнецца праз <xliff:g id="USED_1">%2$d</xliff:g> д. (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Хуткасць перадачы дадзеных зніжаецца да <xliff:g id="USED">%1$d</xliff:g> Кб/с, калі абмежаванне выкарыстання дадзеных перавышанае"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Больш падрабязная інфармацыя аб палітыцы выкарыстання дадзеных у сетцы вашага мабільнага аператара"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Перадача SMS на сотавыя"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Перадача SMS на сотавыя"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Перадача SMS на сотавыя ўключана"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Перадача SMS на сотавыя адключаная"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Налады перадачы SMS на сотавыя"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Экстраная перадача"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Уключаная экстраная перадача"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Экстраная перадача адключаная"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Адміністрацыйны"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Адміністрацыйныя функцыi ўключаныя"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Адміністрацыйныя функцыi адключаны"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Абслугоўванне"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Тэхнічнае абслугоўванне ўключана"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Абслугоўванне адключана"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Агульныя навіны"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Навіны бізнэсу і фінансаў"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Навіны спорту"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Забаўляльныя навіны"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Мясцовы"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Мясцовыя навіны ўключаны"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Мясцовыя навіны адключаны"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Рэгіянальныя"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Рэгіянальныя навіны ўключаны"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Рэгіянальныя навіны адключаны"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Нацыянальны"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Нацыянальныя навіны ўключаныя"</string>
+    <string name="national_disable" msgid="326018148178601166">"Нацыянальныя навіны адключаныя"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Міжнародны"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Уключаны міжнародныя навіны"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Міжнародныя навіны адключаныя"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Мова"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Выберыце мову навін"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Англійская"</item>
+    <item msgid="1151988412809572526">"Французская"</item>
+    <item msgid="577840534704312665">"Іспанская"</item>
+    <item msgid="8385712091143148180">"Японская"</item>
+    <item msgid="1858401628368130638">"Карэйская"</item>
+    <item msgid="1933212028684529632">"Кітайская"</item>
+    <item msgid="1908428006803639064">"Іўрыт"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Мовы"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Мясцовае надвор\'е"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Мясцовае надвор\'е ўключана"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Мясцовае надвор\'е адключана"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Мясцовыя транспартныя паведамленні"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Мясцовыя транспартныя паведамленні ўключаны"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Мясцовыя транспартныя паведамленні адключаны"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Расклады палётаў мясцовага аэрапорту"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Уключаныя расклады палётаў мясцовага аэрапорта"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Расклады палётаў мясцовага аэрапорта адключаныя"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Рэстараны"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Рэстараны ўключаны"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Рэстараны адключаныя"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Жыллё"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Жыллё ўключана"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Жыллё адключана"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Рознічны каталог"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Рознічны каталог ўключаны"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Рознічны каталог адключаны"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Рэклама"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Рэклама ўключаная"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Рэклама адключана"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Катыроўкі акцый"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Кацiроўкі акцый уключаны"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Кацiроўкі акцый выключаны"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Магчымасці працаўладкавання"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Магчымасці працаўладкавання ўключаны"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Магчымасці працаўладкавання адключаныя"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Медыцына, здароўе і бальніцы"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Уключаны раздзел \"Медыцына, здароўе і бальніцы\""</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Адключаны раздзел \"Медыцына, здароўе і бальніцы\""</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Навіны тэхналогій"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Навіны тэхналогій уключаны"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Навіны тэхналогій адключаны"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Мульці-катэгорыя"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Мульці-катэгорыя ўключана"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Мульці-катэгорыя адключаная"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Карыстацца толькі сеткамі 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Эканоміць батарэю"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Выбар сістэмы"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Змяніць рэжым роўмінгу CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Выбар сістэмы"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Толькі галоўная"</item>
+    <item msgid="1205664026446156265">"Аўтаматычна"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Падпіска CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Пераключацца паміж RUIM/SIM і NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"падпіска"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Актывацыя прылады"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Налады службы перад. дадзеных"</string>
+    <string name="fdn" msgid="7878832555095183202">"Фіксаваныя нумары"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Спіс FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Актывацыя FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Фіксаваныя нумары ўключаны"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Фіксаваныя нумары адключаны"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Уключыць FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Адключыць FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Змяніць PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Адключыць FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Уключыць FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Кіраванне зафіксаванымі нумарамі"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Змяніць PIN-код для доступу FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Кіраванне спісам тэлефонных нумароў"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Палiтыка прыватнасцi Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Уключыць пашыраны рэжым прыватнасці"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY рэжым"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Задаць рэжым TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Аўтаматычны паўтор"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Уключыць рэжым аўтаматычнага паўтору"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Дадаць кантакт"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Рэдагаваць кантакт"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Выдаліць кантакт"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Увядзіце код PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Імя"</string>
+    <string name="number" msgid="7905950798349903858">"Нумар"</string>
+    <string name="save" msgid="4094274636321939086">"Захаваць"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Дадаць дазволены нумар"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Даданне дазволенага нумару..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Даданы дазволены нумар."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Змяніць дазволены нумар"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Абнаўленне дазволенага нумару..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Дазволеныя нумары абноўленыя."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Выдаліць дазволены нумар"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Выдаленне дазволенага нумару..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Дазволены нумар выдалены."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN не быў абноўлены, таму што вы набралі няправільны PIN-код."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN не абноўлены, таму што нумар не можа бвць больш за 20 знакаў."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Cпiс дазволеных нумароў не адноўлены. PIN2 ўведзены няправiльна, або нумар быў адхiлены."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Чытанне з SIM-карты..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"На вашай SIM-карце няма кантактаў."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Выберыце кантакты для імпарту"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Каб імпартаваць кантакты з SIM-карты, спачатку адключыце рэжым палёту."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Уключэнне/адключэнне PIN-коду SIM-карты"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Змена PIN-коду SIM-карты"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN-код SIM-карты:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Стары PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Новы PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Пацвердзіць новы PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Стары PIN-код, які вы ўвялі, няправільны. Паспрабуйце яшчэ раз."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN-коды, якія вы ўвялі, не супадаюць. Паспрабуйце яшчэ раз."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Увядзіце PIN-код, які змяшчае ад 4 да 8 лічбаў."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Адключыць PIN-код SIM-карты"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Уключыць PIN-код SIM-карты"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Пачакайце..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN-код SIM-карты актываваны."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN-код SIM-карты адключаны."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Вы набралі няправільны PIN-код."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN-код SIM-карты паспяхова зменены."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Пароль няправільны, SIM заблакаваная! Патрабуецца PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Стары PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Новы PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Пацвердзіць новы PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Код PUK2 уведзены няправільна. Паспрабуйце яшчэ раз."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Стары код PIN2 уведзены няяправільна. Паспрабуйце яшчэ раз."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Коды PIN2, якія вы ўвялі, не супадаюць. Паспрабуйце яшчэ раз."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Увядзіце PUK2, які ўключае 4-8 лічбаў."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Увядзіце PUK2, які складаецца з 8 лічбаў."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Код PIN2 паспяхова зменены."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Увядзіце PUK2-код"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Няправільны пароль. Змяніце код PIN2 і паспрабуйце яшчэ раз."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Няправiльны пароль. SIM-карта заблакавана. Патрабуецца код PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Гатова"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Канферэнц-выклік <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Нумар галасавой пошты"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Набор"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Паўторная спроба..."</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Канферэнц-выклік"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Уваходны выклік"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Выклік скончаны"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"У чаканні"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Завяршэнне"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"У выкліку"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Мой нумар – <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Набор"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Прапушчаны выклік"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Прапушчаныя выклікі"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Прапушчаных выклікаў: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Прапушчаны выклік ад <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Бягучы выклік"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"У чаканні"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Уваходны выклік"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Новая галасавая пошта"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Новыя паведамленнi галасавой пошты (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Набраць <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Невядомы нумар галасавой пошты"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Не абслугоўваецца"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Выбраная сетка (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недаступная"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Скончыць размову"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Адказаць"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Паведамленне"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Каб зрабіць выклік, спачатку выключыце рэжым \"У самалёце\"."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Не зарэгістраваны ў сетцы."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Мабільная сетка недаступная."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Выклік не адпраўлены. Уведзены несапраўдны нумар."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Выклік не дасланы."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Пачатак паслядоўнасці MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Паслуга не падтрымліваецца."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Немагчыма пераключыць выклікі."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Немагчыма аддзяліць выклік."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Немагчыма перавесці выклік."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Канферэнц-выклікі немагчымы."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Немагчыма адхіліць выклік."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Немагчыма зрабіць выклік."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Інтэрнэт-выклік"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Экстраны выклік"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Уключэнне радыё..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Па-за зонай абслугоўвання, спрабую зноў..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Выклік не зроблены. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не з\'яўляецца экстраным нумарам."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Выклік не зроблены. Набярыце экстраны нумар."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Выкарыстоўвайце клавіятуру, каб набраць нумар"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Утрымліваць"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Скончыць"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Кнопкі набору"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Выключыць гук"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Дадаць выклік"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Аб\'яднаць выклікі"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Пераключыць"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Кіраваць выклікамі"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Кірав. канферэнцыяй"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аўдыё"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Відэавыклік"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Імпартаваць"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Імпартаваць усе"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Імпартаванне кантактаў з SIM-карты"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Імпартаваць з кантактаў"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Слыхавы апарат"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Уключыць функцыю сумяшчальнасці са слыхавым апаратам"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY адключаны"</item>
+    <item msgid="3971695875449640648">"TTY поўны"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Сігналы DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Задаць даўжыню тонаў DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Звычайны"</item>
+    <item msgid="2883365539347850535">"Доўгі"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Паведамленне сеткі"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Актываваць тэлефон"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Каб актываваць абслугоўванне вашага тэлефона, трэба выканаць спецыяльны выклік. "\n\n"Націсніце \"Актываваць\" і слухайце інструкцыі, неабходныя для актывацыі тэлефона."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Прапусціць актывацыю?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Калі прапусціць актывацыю, вы не зможаце здзяйсняць званкі або падлучэнні да мабільных сетак перадачы дадзеных (хаця вы зможаце падлучыцца да Wi-Fi). Кожны раз пры ўключэнні тэлефона вам будзе прапанавана актываваць яго."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Прапусціць"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Актываваць"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Тэлефон актываваны."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Праблема з актывацыяй"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Выконвайце гукавыя інструкцыі, пакуль не пачуеце, што актывацыя завершаная."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Дынамік"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Пачакайце, пакуль ваш тэлефон праграмуецца."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Няўдалае праграмаванне"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Цяпер тэлефон актываваны. Запуск службы можа заняць да 15 хвілін."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Ваш тэлефон не актываваны. "\n"Магчыма, вам спатрэбіцца знайсці вобласць з лепшым пакрыццём (каля акна ці на вуліцы). "\n\n"Паўтарыце спробу ці звярнiцеся ў цэнтр абслугоўвання кліентаў, каб атрымаць дадатковую інфармацыю."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ПАМЫЛКІ ПЕРАВЫШЭННЯ SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Назад"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Паспрабаваць яшчэ раз"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Далей"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"У рэжыме аварыйнага зваротнага выкліку"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Рэжым аварыйнага зваротнага выкліку"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Падлучэнне для перадачы дадзеных адключана"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Няма злучэння, каб перадаць дадзеныя, на працягу <xliff:g id="COUNT">%s</xliff:g> хв."</item>
+    <item quantity="other" msgid="3122217344579273583">"Няма злучэння для перадачы дадзеных на працягу <xliff:g id="COUNT">%s</xliff:g> хв."</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Тэлефон будзе ў рэжыме экстранага выкліку на працягу наступнай колькасці хвілін: <xliff:g id="COUNT">%s</xliff:g>. У гэтым рэжыме нельга выкарыстоўваць прыкладанні, якія карыстаюцца злучэннем для перадачы дадзеных. Выйсці зараз?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Тэлефон будзе ў рэжыме экстранага выкліку на працягу наступнай колькасці хвілін: <xliff:g id="COUNT">%s</xliff:g>. У гэтым рэжыме нельга запускаць прыкладанні, якія карыстаюцца злучэннем для перадачы дадзеных. Выйсці зараз?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Выбранае дзеянне недаступнае падчас экстранага выкліку. Тэлефон будзе ў гэтым рэжыме на працягу <xliff:g id="COUNT">%s</xliff:g> хв. Выйсці зараз?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Выбранае дзеянне недаступнае падчас экстранага выкліку. Тэлефон будзе ў гэтым рэжыме на працягу наступнай колькасці хвілін: <xliff:g id="COUNT">%s</xliff:g>. Выйсці зараз?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Выбранае дзеянне недаступнае падчас экстранага выкліку."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Выхад з рэжыму экстранага выкліку"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Так"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Не"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Скасаваць"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Служба"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Налады"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не заданы&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Іншыя налады выкліку"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Званкі праз правайдара <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"фатаграфія кантакта"</string>
+    <string name="goPrivate" msgid="865837794424530980">"перайсці да прыватнай гаворкі"</string>
+    <string name="selectContact" msgid="781975788478987237">"выбраць кантакт"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Налады iнтэрнэт-выклікаў"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Уліковыя запісы iнтэрнэт-тэлефаніі (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Уліковыя запісы"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Прыём уваходных выклікаў"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Зніжае тэрмін службы батарэі"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Выкарыстанне iнтэрнэт-тэлефаніі"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Выкарыстанне iнтэрнэт-тэлефаніі (толькі Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Для ўсіх выклікаў, калі маецца сетка перадачы дадзеных"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Толькі для iнтэрнэт-выклікаў"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Пытацца для кожнага выкліку"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Для ўсіх выклікаў"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Размясціць выклік"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Выкарыстоўваць уліковы запіс iнтэрнэт-тэлефаніі:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Заўсёды выкарыстоўваць, каб рабіць iнтэрнэт-выклікі"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Вы можаце змяніць уліковы запіс iнтэрнэт-тэлефаніі, які выкарыстоўваецца па змаўчанні, у раздзеле \"Тэлефон &gt; Налады &gt; Налады iнтэрнэт-тэлефаніі\", на экране \"Ўліковыя запісы\"."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Выклік з сотавага тэлефона"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Інтэрнэт-выклік"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Няма ўліковага запісу iнтэрнэт-тэлефаніі"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"На гэтым тэлефоне няма выклікаў праз уліковыя запісы iнтэрнэт-тэлефаніі. Дадаць такі ўліковы запіс зараз?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Дадаць"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Дадаць уліковы запіс"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Выдаліць уліковы запіс"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Уліковыя запісы SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Захаванне ўліковага запісу..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Выдаленне ўліковага запісу..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Захаваць"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Адхіліць"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Закрыць профіль"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ОК"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Закрыць"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Першасны ўліковы запіс. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Правяраецца стан..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Рэгістрацыя..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Спроба рэгістрацыі..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Выклікі не прымаюцца."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Рэгістрацыя ўліковага запісу спынена, таму што няма падключэння да Інтэрнэту."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Рэгістрацыя ўліковага запісу спынена, таму што няма падлучэння да Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Няўдалая рэгістрацыя ўліковага запісу."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Прыём выклікаў."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Няўдалая рэгістрацыя ўліковага запісу: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Спроба будзе паўтораная пазней"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Няўдалая рэгістрацыя ўліковага запісу: няправільнае імя карыстальніка або пароль."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Няўдалая рэгістрацыя ўліковага запісу: праверце імя сервера."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Гэты ўліковы запіс зараз выкарыстоўваецца прыкладаннем <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Інфармацыя ўліковага запісу SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Інфармацыя ўліковага запісу SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Сервер"</string>
+    <string name="username_title" msgid="2479375923477682328">"Імя карыстальніка"</string>
+    <string name="password_title" msgid="3323555249068171531">"Пароль"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Адлюстроўваць імя"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Адрас выходнага проксі"</string>
+    <string name="port_title" msgid="5952939408078626657">"Нумар порта"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Тып транспарту"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Адправіць Keep-Alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Усталяваць у якасці першаснага ўліковага запісу"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Выкарыстоўваецца для выходных выклікаў"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Дадатковыя налады"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Імя карыстальніка для праверкі сапраўднасці"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Імя карыстальніка, якое выкарыстоўваецца для праверкі сапраўднасці"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;не заданы&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Такі ж, як імя карыстальніка&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"Дадатковы"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"... Націсніце, каб паказаць усё"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"... Дакраніцеся, каб схаваць усё"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Поле <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> з\'яўляецца абавязковым для запаўнення, яго нельга пакідаць пустым."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Порт павінен мець нумар ад 1000 да 65534"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Няма падключэння да Інтэрнэту"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Няма падключэння да Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Каб зрабіць iнтэрнэт-выклік, спачатку праверце падключэнне да Інтэрнэту."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Каб рабіць iнтэрнэт-выклікі, вы павінны падключыцца да сеткі Wi-Fi (скарыстайцеся раздзелам \"Бесправадныя сеткі i налады\")."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Інтэрнэт-тэлефанія не падтрымліваецца"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Аўтаматычна"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Заўсёды адсылаць"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Галасавы выклік не падтрымліваецца"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Не магу размаўляць. У чым справа?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Я ператэлефаную."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Я патэлефаную пазней."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Не магу размаўляць. Набяры пазней."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Напiшыце сваё..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Хуткія адказы"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Рэдагаваць хуткія адказы"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Хуткі адказ"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Скінуць налады прыкладання"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Паведамленне адпраўлена на нумар <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"адзін"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"два"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"тры"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"чатыры"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"пяць"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"шесць"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"сем"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"восем"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"дзевяць"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"зорка"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"нуль"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"фунт"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"набор"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"забой"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Уключаная гучная сувязь."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Выклік сцішаны."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Адказаць"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Адправiць SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Адхіліць"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вібрацыя"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вібрацыя"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Гук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Гук па змаўчанні (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Мелодыя тэлефона"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вібрацыя падчас званка"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Набор гукаў сэнсарнай панэлі"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Аўтазапаўненне поля набору нумара"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Рынгтон і вiбрацыя"</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
new file mode 100644
index 0000000..b6ce840
--- /dev/null
+++ b/res/values-bg/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Мобилни данни"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Набиране на спешни номера"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Телефон"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Списък с FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Неизвестен номер"</string>
+    <string name="private_num" msgid="6713286113000232309">"Частен номер"</string>
+    <string name="payphone" msgid="1931775086311769314">"Импулсен телефон"</string>
+    <string name="onHold" msgid="9035493194749959955">"Задържане на обаждането"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Линията е заета"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Мрежата е заета"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Няма отговор – времето за изчакване изтече"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Няма връзка със сървъра"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Няма достъп до номера"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Неправилно потребителско име или парола"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Обаждане извън мрежата"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Грешка в сървъра. Опитайте отново по-късно."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Няма сигнал"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Надвишено ограничение за ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Радиото е изкл."</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Няма SIM карта или грешка в SIM картата"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Район без покритие"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Изходящите обаждания са ограничени от FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Не можете да провеждате изходящи обаждания, докато има забрана за обаждания."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Всички обаждания са ограничени от контрола за достъп."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Спешните обаждания са ограничени от контрола за достъп."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Нормалните обаждания са ограничени от контрола за достъп."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Невалиден номер"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конферентно обаждане"</string>
+    <string name="call_lost" msgid="317670617901479594">"Разговорът се загуби."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI кодът бе стартиран"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD кодът се изпълнява…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI кодът бе анулиран"</string>
+    <string name="cancel" msgid="5044513931633602634">"Отказ"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Съобщението с USSD трябва да бъде между <xliff:g id="MIN_LEN">%d</xliff:g> и <xliff:g id="MAX_LEN">%d</xliff:g> знака. Моля, опитайте отново."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Управление на конферентно обаждане"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Говорител"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Телефонна слушалка"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Слушалки с кабел"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Да се изпратят ли следните мелодии? "\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Мелодиите се изпращат"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Изпращане"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Да"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Не"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Замяна на заместващия символ със:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Липсващ номер на гласова поща"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM картата няма съхранен номер за гласова поща."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Добавяне на номер"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM картата ви е отблокирана. Телефонът ви се отключва…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN за отключване на SIM мрежа"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Отключване"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Отхвърляне"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Изпраща се заявка за отключване на мрежата..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Заявката за отключване на мрежата не бе успешна."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Отключването на мрежата бе успешно."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Настройки за обаждане с GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Настройки за обаждане в CDMА"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Имена на точки за достъп"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Настройки на мрежата"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Гласова поща"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Мрежови оператори"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Настройки за обаждане"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Допълнителни настройки"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Допълнителни настройки само за обаждане с GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Допълнителни настройки за обаждане в CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Допълнителни настройки само за обаждане в CDMА"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Настройки на мрежата за услуги"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Идентификация на обаждането"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Настройките се зареждат…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Скриване на номера при изходящи обаждания"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Показване на номера при изходящи обаждания"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Използване на стандартните ннастройки на оператора за извеждане на номера ми при изходящи обаждания"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Изчакващо обаждане"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Да бъда уведомяван/а за вх. обаждания по време на разговор"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Да бъда уведомяван/а за вх. обаждания по време на разговор"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Настройки за пренасочване на обажданията"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Пренасочване на обаждания"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Да се пренасочва винаги"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Винаги използвайте този номер"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Пренасочване на всички обаждания"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Всички обаждания се пренасочват към <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Номерът не е наличен"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Деактивирано"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Пренасочване при заета линия"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Показва номер, при заета мрежа"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Пренасочва се към <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Деактивирано"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Операторът ви не поддържа деактивиране на пренасочването на обаждания по време на разговор."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Пренасочване, когато няма отговор"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Показва номер, когато няма отговор"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Пренасочва се към <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Деактивирано"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Операторът ви не поддържа деактивиране на пренасочването на обаждания, когато телефонът ви не отговаря."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Пренасочване, когато няма връзка"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Показва номер, когато няма достъп"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Пренасочва се към <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Деактивирано"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Операторът ви не поддържа деактивиране на пренасочването на обаждания, когато няма връзка с телефона."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Настройки за обаждане"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Грешка в настройките за обаждане"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Извършва се четене на настройки…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Настройките се актуализират…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Настройките се променят в първоначалното състояние…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Неочакван отговор от мрежата."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Грешка в мрежата или SIM картата."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Настройката „Фиксирани номера за набиране“ на приложението ви Телефон е включена. В резултат на това някои функции, свързани с обажданията, не работят."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Включете радиото, преди да разгледате тези настройки."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Активиране"</string>
+    <string name="disable" msgid="7274240979164762320">"Деактивиране"</string>
+    <string name="change_num" msgid="239476305819844391">"Актуализиране"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Мрежа по подразбиране"</item>
+    <item msgid="7876195870037833661">"Скриване на номера"</item>
+    <item msgid="1108394741608734023">"Номерът да се показва"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Номерът за гласова поща бе променен."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Номерът за гласовата поща не можа да се промени."\n"Свържете се с оператора си, ако проблемът не се отстрани."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Пренасочващият номер не можа да се промени."\n"Свържете се с оператора си, ако проблемът не се отстрани."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Текущите настройки за пренасочващи номера не можаха да бъдат извлечени и запазени."\n"Искате ли да превключите към новия доставчик?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Не бяха направени промени."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Избор на услугата за гласова поща"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Моят оператор"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Настройки на мобилната мрежа"</string>
+    <string name="label_available" msgid="1181658289009300430">"Налични мрежи"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Търси се…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Не са намерени мрежи."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Търсене на мрежи"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Грешка при търсенето на мрежи."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Извършва се регистрация на <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM картата ви не позволява връзка с тази мрежа."</string>
+    <string name="connect_later" msgid="2308119155752343975">"В момента не може да се осъществи връзка с тази мрежа. Опитайте отново по-късно."</string>
+    <string name="registration_done" msgid="495135664535876612">"Регистрация в мрежа."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Избиране на мрежов оператор"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Търсене на всички налични мрежи"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Автоматичен избор"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Автоматичен избор на предпочитана мрежа"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Регистрира се автоматично..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Режим на мрежата"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Промяна на операционния режим на мрежата"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Предпочитан режим на мрежата"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Предпочитан режим на мрежата: Предпочита се WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Предпочитан режим на мрежата: Само GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Предпочитан режим на мрежата: Само WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Предпочитан режим на мрежата: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Предпочитан режим на мрежата: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Предпочитан режим на мрежата: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Предпочитан режим на мрежата: Само CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Предпочитан режим на мрежата: Само EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Предпочитан режим на мрежата: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Предпочитан режим на мрежата: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Предпочитан режим на мрежата: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Предпочитан режим на мрежата: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Предпочитан режим на мрежата: Глобален"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Предпочитан режим на мрежата: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Глобален"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Само EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA без EvDo"</item>
+    <item msgid="4341433122263841224">"Авт. CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Авт. GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Само WCDMA"</item>
+    <item msgid="1524224863879435516">"Само GSM"</item>
+    <item msgid="3817924849415716259">"Предпочита се GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Данните са активирани"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Активиране на достъп до данните в мобилната мрежа"</string>
+    <string name="roaming" msgid="8871412572928323707">"Роуминг на данни"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Свързване с услуги за данни при роуминг"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Свързване с услуги за данни при роуминг"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Изгубихте връзката за данни, защото сте излезли от домашната си мрежа при изключен роуминг."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Да се разреши ли роуминг на данни? Това може да доведе до висока такса за роуминг!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Опции за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Опции на CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Използване на данни"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Използвани данни за текущия период"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Период за използване на данни"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Правила за скоростта на данните"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Научете повече"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) макс. от <xliff:g id="USED_2">%3$s</xliff:g> период "\n"Следващият период започва след <xliff:g id="USED_3">%4$d</xliff:g> дни (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) макс. от <xliff:g id="USED_2">%3$s</xliff:g> период"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> надвишен максимум"\n"Скоростта на данните е намалена до <xliff:g id="USED_1">%2$d</xliff:g> Кб/сек"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ от цикъла са изтекли"\n"Следващият период започва след <xliff:g id="USED_1">%2$d</xliff:g> дни (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Намаляване на скоростта на данните до <xliff:g id="USED">%1$d</xliff:g> Кб/сек, ако се превиши съответното ограничение"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Още информация за правилата за използване на данни на оператора ви"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS с клетъчно предаване"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS с клетъчно предаване"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS съобщението с клетъчно предаване е активирано"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS съобщението с клетъчно предаване е деактивирано"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Настройки за SMS с клетъчно предаване"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Спешно предаване"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Спешното предаване е активирано"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Спешното предаване е деактивирано"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Администраторски"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Администраторските права са активирани"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Администраторските права са деактивирани"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Поддръжка"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Поддръжката е активирана"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Поддръжката е деактивирана"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Общи новини"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Новини за бизнес и финанси"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Спортни новини"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Новини за шоубизнес"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"В района"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Местните новини са активирани"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Местните новини са деактивирани"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Регионално"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Регионалните новини са активирани"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Регионалните новини са деактивирани"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Национални"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Националните новини са активирани"</string>
+    <string name="national_disable" msgid="326018148178601166">"Националните новини са деактивирани"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Международни"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Международните новини са активирани"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Международните новини са деактивирани"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Език"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Избор на език за новините"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"английски"</item>
+    <item msgid="1151988412809572526">"френски"</item>
+    <item msgid="577840534704312665">"испански"</item>
+    <item msgid="8385712091143148180">"японски"</item>
+    <item msgid="1858401628368130638">"корейски"</item>
+    <item msgid="1933212028684529632">"китайски"</item>
+    <item msgid="1908428006803639064">"иврит"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Езици"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Времето в района"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Времето в района е активирано"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Времето в района е деактивирано"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Отчети за трафика в района"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Отчетите за трафик в района са активирани"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Отчетите за трафик в района са деактивирани"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Разписания на местните полети"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Разписанията на местните полети са активирани"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Разписанията на местните полети са деактивирани"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Ресторанти"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ресторантите са активирани"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Ресторантите са деактивирани"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Настаняване"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Настаняването е активирано"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Настаняването деактивирано"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Директория за търговия на дребно"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Директорията за търговия на дребно е активирана"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Директорията за търговия на дребно е деактивирана"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Реклами"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Рекламите са активирани"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Рекламите са деактивирани"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Борсови котировки"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Борсовите котировки са активирани"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Борсовите котировки са деактивирани"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Възможности за работа"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Възможностите за работа са активирани"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Възможностите за работа са деактивирани"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Лекар, здравна помощ и болница"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"„Лекар, здравна помощ и болница“ е активирано"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"„Лекар, здравна помощ и болница“ е деактивирано"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Технологични новини"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Технологични новини са активирани"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Технологичните новини са деактивирани"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Мултикатегория"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Мултикатегорията е активирана"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Мултикатегорията е деактивирана"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Да се използват само 2G мрежи"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Запазва батерията"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Избор на система"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Промяна на режима на роуминг на CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Избор на система"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Само „Начало“"</item>
+    <item msgid="1205664026446156265">"Автоматично"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Абонамент за CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Промяна между RUIM/SIM и NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"абонамент"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Активиране на устройството"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Настройка на услугата за данни"</string>
+    <string name="fdn" msgid="7878832555095183202">"Фиксирани номера за набиране"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Списък с FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Активиране на FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Фиксираните номера за набиране са активирани"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Фиксираните номера за набиране са деактивирани"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Активиране на FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Деактивиране на FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Промяна на PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Деактивиране на FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Активиране на FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Управление на фиксираните номера за набиране"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Промяна на PIN за достъп до FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Управление на списъка с телефонни номера"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Гласова поверителност"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Активиране на разширен режим на поверителност"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Режим TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Задаване на режим TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Автоматичен нов опит"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Активиране на режим „Автоматичен нов опит“"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Добавяне на контакт"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Редактиране на контакт"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Изтриване на контакта"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Въведете PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Име"</string>
+    <string name="number" msgid="7905950798349903858">"Номер"</string>
+    <string name="save" msgid="4094274636321939086">"Запазване"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Добавяне на фиксирани номера за набиране"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Извършва се добавяне на фиксирани номера за набиране…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Фиксираните номера за набиране са добавени."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Редактиране на фиксирани номера за набиране"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Фиксирани номера за набиране се актуализират…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Фиксираните номера за набиране са актуализирани."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Изтриване на фиксирани номера за набиране"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Фиксираните номера за набиране се изтриват…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Фиксираните номера за набиране са изтрити."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN не бе актуализирано, защото сте въвели неправилен ПИН."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN не бе актуализирано, защото номерът не може да надвишава 20 цифри."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN не е актуализирано. PIN2 бе неправилен или телефонният номер бе отхвърлен."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Извършва се четене на данни от SIM картата…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Няма контакти в SIM картата ви."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Избиране на контакти за импортиране"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"За да импортирате контакти от SIM картата, първо изключете самолетния режим."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Активиране/деактивиране на PIN за SIM карта"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Промяна на PIN за SIM карта"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN код за SIM карта:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Стар PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Нов PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Потвърждаване на новия PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Въведеният от вас стар ПИН не е правилен. Опитайте отново."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Въведените от вас ПИН кодове не са идентични. Опитайте отново."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Въведете PIN с четири до осем цифри."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Деактивиране на PIN кода за SIM карта"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Активиране на PIN за SIM карта"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Моля, изчакайте…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"ПИН кодът за SIM картата бе активиран."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"ПИН кодът за SIM картата бе деактивиран."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Въведеният ПИН не e правилен."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"ПИН кодът за SIM картата бе променен успешно."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Паролата не е правилна. SIM картата е заключена! Въведете PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Стар PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Нов PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Потвърждаване на новия PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Въведеният от вас PUK2 код не е правилен. Опитайте отново."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Въведеният от вас стар PIN2 не е правилен. Опитайте отново."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Въведените от вас PIN2 кодове не са идентични. Опитайте отново."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Въведете PIN2 с четири до осем цифри."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Въведете PUK2 код с осем цифри."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 бе променен успешно."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Въвеждане на PUK2 код"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Паролата не е правилна. Променете PIN2 и опитайте отново."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Паролата не е правилна. SIM картата е заключена. Въведете PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Готово"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конферентно обаждане<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Номер за гласова поща"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Набиране"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Извършва се повторен опит"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конферентно обаждане"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Вх. обаждане"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Обаждането завърши"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Задържане на обаждането"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Приключване на разговора"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Вх. обаждане"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Моят номер е <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Набира се"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуснато обаждане"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропуснати обаждания"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуснати обаждания"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропуснато обаждане от <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Текущо обаждане"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Задържане на обаждането"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Входящо обаждане"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нова гласова поща"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нова гласова поща на (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Набиране на <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Неизвестен номер за гласова поща"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Няма покритие"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Избраната мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) не е налична"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Затваряне"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Обратно обаждане"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Съобщение"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Първо изключете самолетния режим, за да може да осъществите обаждане."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Няма регистрация в мрежата."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Няма мобилна мрежа."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Обаждането не е изпратено, не е въведен валиден номер."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Обаждането не е изпратено."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Стартира се последователността MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Неподдържана услуга."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Обажданията не могат да се превключат."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Обаждането не може да се отдели."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Обаждането не може да се прехвърли."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Не могат да се правят конферентни обаждания."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Обаждането не може да се отхвърли."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Обаждането или съответно обажданията не могат да се освободят."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Интернет обаждане"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Спешно обаждане"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радиото се включва…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Район без покритие, извършва се повторен опит..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Обаждането не е извършено. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е спешен номер!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Обаждането не е извършено. Наберете спешен номер!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Използвайте клавиатурата за набиране"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Задържане"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Край"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Клавиатура за набиране"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Без звук"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Добавяне на обаждане"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Обединяване на обаждания"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Размяна"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Управление на обажданията"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Упр. на конференция"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видеообаждане"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Импортиране"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Импортиране на всички"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Импортиране на контактите от SIM картата"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Импортиране от контактите"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Слухови апарати"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Включване на съвместимостта за слухов апарат"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY е изкл."</item>
+    <item msgid="3971695875449640648">"Пълен TTY режим"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF мелодии"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Настройване на дължината на мелодиите DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Нормална"</item>
+    <item msgid="2883365539347850535">"Продължително"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Мрежово съобщение"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Активиране на вашия телефон"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"За активиране на телефонните услуги трябва да направите специално обаждане. "\n\n"След като натиснете „Активиране“, чуйте предоставените инструкции за тази цел."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Да се пропусне ли активацията?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ако пропуснете активирането, не може да осъществявате обаждания или свързване към мобилни мрежи с данни (възможно е свързване към мрежи с Wi-Fi). Докато не активирате телефона си, от вас ще се иска да го правите при всяко включване."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Пропускане"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Активиране"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Телефонът е активиран."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Проблем с активацията"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Следвайте устните инструкции, докато чуете, че активацията е завършена."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Говорител"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Изчакайте, докато телефонът ви се програмира."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Програмирането не бе успешно"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Телефонът ви вече е активиран. Стартирането на услугата може да отнеме до 15 минути."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Телефонът ви не се активира. "\n"Намерете място с по-добро покритие (близо до прозорец или навън). "\n\n"Опитайте отново или се обадете за отдела за обслужване на клиенти за още опции."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ПРЕКАЛЕНО МНОГО ГРЕШКИ В SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Назад"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Опитайте отново"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Следващ"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Влизане в режим на обратно обаждане при спешност"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Режим на обратно обаждане при спешност"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Връзката с данни е деактивирана"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Няма връзка за данни в продължение на <xliff:g id="COUNT">%s</xliff:g> минута"</item>
+    <item quantity="other" msgid="3122217344579273583">"Няма връзка за данни в продължение на <xliff:g id="COUNT">%s</xliff:g> минути"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT">%s</xliff:g> минута. През това време не може да се използват приложения за връзка с данни. Искате ли да излезете сега?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT">%s</xliff:g> минути. През това време не може да се използват приложения за връзка с данни. Искате ли да излезете сега?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Избраното действие не е налично в режим на обратно спешно обаждане. Телефонът ще бъде в този режим в продължение на <xliff:g id="COUNT">%s</xliff:g> минута. Искате ли да излезете сега?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Избраното действие не е налично в режим на спешно обратно обаждане. Телефонът ще бъде в този режим в продължение на <xliff:g id="COUNT">%s</xliff:g> минути. Искате ли да излезете сега?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Избраното действие не е налично по време на спешно обаждане."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Излиза се от режим на спешно обратно обаждане"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Да"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Не"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Отхвърляне"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Услуга"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Настройка"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не е зададено&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Други настройки за обаждане"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"снимка на контакта"</string>
+    <string name="goPrivate" msgid="865837794424530980">"към частно"</string>
+    <string name="selectContact" msgid="781975788478987237">"избиране на контакта"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Настройки за интернет обаждания"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Профили за интернет обаждания (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Профили"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Получаване на входящи обаждания"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Намалява живота на батерията"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Използване на интернет обаждания"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Използване на интернет обаждания (само при Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"За всички обаждания, когато е налице мрежа за данни"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Само за интернет обаждания"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Да се пита за всяко обаждане"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"За всички обаждания"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Провеждане на обаждане"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Използване на профил за интернет обаждания:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Да се използва винаги за провеждане на интернет обаждания"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Можете да промените кой профил да се използва по подразбиране за интернет обаждания от екрана „Телефон“ &gt; „Настройки“ &gt; „Настройки за интернет обаждания“ &gt; „Профили“."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Обаждане по клетъчен телефон"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Интернет обаждане"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Няма профил за интернет обаждания"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Няма профили за интернет обаждания на този телефон. Искате ли да добавите сега?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Добавяне"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Добавяне на профил"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Премахване на профила"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Профили за SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Профилът се запазва..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Профилът се премахва..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Запазване"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Отхвърляне"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Затваряне на потребителския профил"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Затваряне"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Основен профил. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Състоянието се проверява..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Регистрира се..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Още се опитва..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Не се получават обаждания."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Регистрирането на профила спря, защото няма връзка с интернет."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Регистрирането на профила спря, защото няма връзка с Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Профилът не бе регистриран успешно."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Получават се обаждания."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Регистрацията на профила не бе успешна: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Ще се опита по-късно"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Профилът не бе регистриран успешно: Неправилно потребителско име или парола."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Профилът не бе регистриран успешно: Проверете името на сървъра."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Този профил понастоящем се използва от приложението <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Подробности за профила за SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Подробности за профила за SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Сървър"</string>
+    <string name="username_title" msgid="2479375923477682328">"Потребителско име"</string>
+    <string name="password_title" msgid="3323555249068171531">"Парола"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Екранно име"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Адрес на изходящ прокси сървър"</string>
+    <string name="port_title" msgid="5952939408078626657">"Номер на порта"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Тип транспорт"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Изпращане на съобщение за проверка на връзката"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Задаване като основен профил"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Използва се за изходящи обаждания"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Незадължителни настройки"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Потребителско име за удостоверяване"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Потребителско име, използвано за удостоверяване"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Не е зададено&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Същото като потребителското име&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;По избор&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Докоснете за показване на всички"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Докоснете за скриване на всички"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"„<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ е задължително и трябва да се попълни."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Номерът на порта трябва да бъде между 1000 и 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Няма връзка с интернет"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Няма връзка с Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"За да проведете интернет обаждане, първо проверете връзката си с интернет."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"За интернет обаждания трябва да сте свързани с Wi-Fi мрежа (използвайте настройките за кабелна и безжична мрежа)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Интернет обажданията не се поддържат"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Автоматично"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Да се изпращат винаги"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Гласови обаждания не се поддържат"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Сега не мога да говоря. Какво има?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ще ви се обадя веднага обратно."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ще ви се обадя по-късно."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Сега не мога да говоря. По-късно?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Напишете свой собствен..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Бързи отговори"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Редактиране на бързи отговори"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Бърз отговор"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Възст. на станд. настройки"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"До <xliff:g id="PHONE_NUMBER">%s</xliff:g> бе изпратено съобщение."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"едно"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"две"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"три"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"четири"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"пет"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"шест"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"седем"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"осем"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"девет"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"звездичка"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"нула"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"диез"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"набиране"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Високоговорителят бе активиран."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Обаждането бе спряно."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Отговор"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Изпращане на SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Отхвърлям"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибриране"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибриране"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Стандартен звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Мелодия на телефона"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибриране при звънене"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Тонове при набиране"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Авт. довършване на клавиат. за набиране"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодия и вибриране"</string>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
new file mode 100644
index 0000000..5fafbb3
--- /dev/null
+++ b/res/values-ca/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Dades mòbils"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telèfon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Marcador d\'emergència"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telèfon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Llista FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Desconegut"</string>
+    <string name="private_num" msgid="6713286113000232309">"Número privat"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telèfon de monedes"</string>
+    <string name="onHold" msgid="9035493194749959955">"En espera"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Línia ocupada"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Xarxa ocupada"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"No hi ha resposta, s\'ha esgotat el temps d\'espera"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"No es pot accedir al servidor"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"No es pot contactar amb aquest número"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nom d\'usuari o contrasenya incorrectes"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Trucada des de fora de la xarxa"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Error del servidor. Torna-ho a provar més tard."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Sense senyal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Límit d\'ACM superat"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Ràdio desactivada"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Cap SIM o error de la SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Fora de l\'àrea de servei"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"FDN restringeix les trucades de sortida."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"No pots fer trucades de sortida mentre la restricció de trucades estigui activada."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Totes les trucades estan restringides pel control d\'accés."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Les trucades d\'emergència estan restringides pel control d\'accés."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Les trucades normals estan restringides pel control d\'accés."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Número no vàlid"</string>
+    <string name="confCall" msgid="1904840547188336828">"Trucada de conferència"</string>
+    <string name="call_lost" msgid="317670617901479594">"S\'ha perdut la trucada."</string>
+    <string name="ok" msgid="3811371167865772377">"D\'acord"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Codi MMI iniciat"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"S\'està executant el codi USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Codi MMI cancel·lat"</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancel·la"</string>
+    <string name="enter_input" msgid="1810529547726803893">"El missatge USSD ha de contenir entre <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> caràcters. Torna-ho a provar."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestiona la trucada de conferència"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altaveu"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Auricular de microtelèfon"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Auricular amb cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Voleu enviar els codis següents?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"S\'estan enviant els tons"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Envia"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sí"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Substitueix el caràcter comodí per"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Falta el número de correu de veu"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"No hi ha cap número de correu de veu emmagatzemat a la targeta SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Afegeix número"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"La targeta SIM s\'ha desbloquejat. El telèfon s\'està desbloquejant..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN de desbloqueig de xarxa SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloqueja"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Omet"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"S\'està sol·licitant el desbloqueig de la xarxa..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Sol·licitud de desbloqueig de xarxa incorrecta."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Desbloqueig de la xarxa correcte."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Configuració de trucades GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Configuració de trucades CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Noms de punts d\'accés"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Configuració de xarxa"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Correu de veu"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operadors de xarxa"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Configuració de trucada"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuració addicional"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Configuració addicional de trucades només GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Configuració addicional de trucades CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Configuració addicional de trucades només CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Configuració del servei de xarxa"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Identificació de trucada"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Carregant la configuració..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Número amagat en trucades sortints"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Número mostrat a les trucades de sortida"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilitza la configuració predeterminada de l\'operador per mostrar el meu número a les trucades de sortida"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Trucada en espera"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Durant una trucada, avisa\'m de les trucades entrants"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Durant una trucada, avisa\'m de les trucades entrants"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Configuració de la desviació de trucades"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Desviació de trucades"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Desvia sempre"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Utilitza sempre aquest número"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Es desvien totes les trucades"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Totes les trucades es desvien a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"El número no està disponible"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Desactivat"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Desvia quan comuniqui"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Número quan comunica"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"S\'està desviant a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Desactivat"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"El teu operador no permet desactivar la desviació de trucades quan el telèfon està ocupat."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Desvia quan no hi hagi resposta"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Número quan no hi ha resposta"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"S\'està desviant a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Desactivat"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"El teu operador no permet desactivar la desviació de trucades quan el telèfon no respon."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Desvia quan no s\'hi pugui connectar"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Número quan no es pugui establir la connexió"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"S\'està desviant a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desactivat"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"El teu operador de telefonia mòbil no permet desactivar la desviació de trucades quan el telèfon no pot establir la trucada."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Configuració de trucada"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Error de configuració de trucada"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"S\'està llegint la configuració…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"S\'està actualitzant la configuració..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"S\'està tornant la configuració als valors originals…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Resposta inesperada de la xarxa."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Error de xarxa o de targeta SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"La configuració dels números de marcatge fix de l\'aplicació Telèfon està activada. En conseqüència, algunes funcions relacionades amb les trucades no funcionen."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Activa la ràdio abans de visualitzar aquesta configuració."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"D\'acord"</string>
+    <string name="enable" msgid="1059008390636773574">"Activa"</string>
+    <string name="disable" msgid="7274240979164762320">"Desactiva"</string>
+    <string name="change_num" msgid="239476305819844391">"Actualitza"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Predeterminat de la xarxa"</item>
+    <item msgid="7876195870037833661">"Amaga el número"</item>
+    <item msgid="1108394741608734023">"Mostra el número"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Número del correu de veu canviat."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"No s\'ha pogut canviar el número de bústia de veu."\n"Contacta amb el teu operador de telefonia mòbil si el problema continua."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"No s\'ha pogut canviar el número de desviació."\n"Contacta amb el teu operador de telefonia mòbil si el problema continua."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"No s\'ha pogut recuperar ni desar la configuració actual del número de desviació."\n"Vols canviar al proveïdor nou igualment?"</string>
+    <string name="no_change" msgid="3186040086622435212">"No s\'ha fet cap canvi."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Trieu un servei de correu de veu"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"El meu operador"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Configuració de la xarxa mòbil"</string>
+    <string name="label_available" msgid="1181658289009300430">"Xarxes disponibles"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"S\'està cercant…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"No s\'ha trobat cap xarxa."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Cerca xarxes"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"S\'ha produït un error en cercar xarxes."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"S\'està registrant a <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"La targeta SIM no et permet connectar-te a aquesta xarxa."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Ara mateix no es pot connectar a aquesta xarxa. Torna-ho a provar més tard."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrat a la xarxa."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Selecciona un operador de xarxa"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Cerca totes les xarxes disponibles"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Selecció automàtica"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Selecciona automàticament la xarxa preferida"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registre automàtic..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Mode de xarxa"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Canvia el mode de funcionament de la xarxa"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Mode de xarxa preferit"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mode de xarxa preferit: WCDMA preferit"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mode de xarxa preferit: només GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mode de xarxa preferit: només WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mode de xarxa preferit: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mode de xarxa preferit: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mode de xarxa preferit: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mode de xarxa preferit: només CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mode de xarxa preferit: només EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Mode de xarxa preferit: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Mode de xarxa preferit: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Mode de xarxa preferit: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Mode de xarxa preferit: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Mode de xarxa preferit: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Mode de xarxa preferit: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Només EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA sense EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automàtic"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automàtic"</item>
+    <item msgid="7913148405605373434">"Només WCDMA"</item>
+    <item msgid="1524224863879435516">"Només GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferit"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dades activades"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Permet l\'accés a dades a través de la xarxa mòbil"</string>
+    <string name="roaming" msgid="8871412572928323707">"Itinerància de dades"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Estableix connexió amb serveis de dades en itinerància"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Estableix connexió amb serveis de dades en itinerància"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Has perdut la connectivitat de dades perquè has abandonat la xarxa local amb la itinerància de dades desactivada."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Voleu permetre la itinerància de dades? Els costos poden ser molt alts."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opcions de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opcions de CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Ús de dades"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Dades utilitzades al període actual"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Període d\'ús de dades"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Política de velocitat de dades"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Més informació"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) del període <xliff:g id="USED_2">%3$s</xliff:g> màxim"\n"El període següent comença d\'aquí a <xliff:g id="USED_3">%4$d</xliff:g> dies (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de període <xliff:g id="USED_2">%3$s</xliff:g> màxim"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> màxim superat"\n"Velocitat de dades reduïda a <xliff:g id="USED_1">%2$d</xliff:g> kbps"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ del cicle transcorregut"\n"El període següent comença d\'aquí a <xliff:g id="USED_1">%2$d</xliff:g> dies (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"La velocitat de dades es redueix a <xliff:g id="USED">%1$d</xliff:g> kbps si se supera el límit d\'ús de dades"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Més informació sobre la política d\'us de dades de la xarxa mòbil de l\'operador"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de difusió de cel·la"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS de difusió de cel·la"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS de difusió de cel·la activat"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS de difusió de cel·la desactivat"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Configuració d\'SMS de difusió de cel·la"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusió d\'emergència"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusió d\'emergència activada"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusió d\'emergència desactivada"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratiu"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administratiu activat"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administratiu desactivat"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Manteniment"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Manteniment activat"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Manteniment desactivat"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Notícies generals"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Notícies financeres i de negocis"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Notícies d\'esports"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Notícies d\'entreteniment"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Notícies locals activades"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Notícies locals desactivades"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Notícies regionals activades"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Notícies regionals desactivades"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Notícies nacionals activades"</string>
+    <string name="national_disable" msgid="326018148178601166">"Notícies nacionals desactivades"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internacional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Notícies internacionals activades"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Notícies internacionals desactivades"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Idioma"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Seleccioneu l\'idioma de les notícies"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Anglès"</item>
+    <item msgid="1151988412809572526">"Francès"</item>
+    <item msgid="577840534704312665">"Espanyol"</item>
+    <item msgid="8385712091143148180">"Japonès"</item>
+    <item msgid="1858401628368130638">"Coreà"</item>
+    <item msgid="1933212028684529632">"Xinès"</item>
+    <item msgid="1908428006803639064">"Hebreu"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Idiomes"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Informació del temps local"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Informació del temps local activada"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Informació del temps local desactivada"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Informes del trànsit de la zona"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Informes del trànsit de la zona activats"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Informes del trànsit de la zona desactivats"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Horaris de vols dels aeroports locals"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Horaris de vols dels aeroports locals activats"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Horaris de vols dels aeroports locals desactivats"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants activats"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants desactivats"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Allotjaments"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Allotjaments activats"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Allotjaments desactivats"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Directori de comerços"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Directori de comerços activat"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Directori de comerços desactivat"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anuncis"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anuncis activats"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anuncis desactivats"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotitzacions de borsa"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotitzacions de borsa activades"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotitzacions de borsa desactivades"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunitats de feina"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunitats de feina activades"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunitats de feina desactivades"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicina, salut i hospitals"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicina, salut i hospitals activat"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicina, salut i hospitals desactivat"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Notícies de tecnologia"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Notícies de tecnologia activades"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Notícies de tecnologia desactivades"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multicategoria"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multicategoria activada"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multicategoria desactivada"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Utilitza només les xarxes 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Estalvia bateria"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selecció del sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Canvia el mode d\'itinerància CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selecció del sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Només local"</item>
+    <item msgid="1205664026446156265">"Automàtic"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Subscripció CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Canvia entre RUIM/SIM i NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscripció"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activació del dispositiu"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configuració del servei de dades"</string>
+    <string name="fdn" msgid="7878832555095183202">"Números de marcatge fix"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Llista FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activació d\'FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Números de marcatge fix activats"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Números de marcatge fix desactivats"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Activa FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Desactiva FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Canvia el PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Desactiva FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Activa FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gestiona els números de marcatge fix"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Canvia el PIN per a l\'accés FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gestiona la llista de números de telèfon"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privadesa de veu"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activa el mode de millora de la privadesa"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Mode TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Defineix el mode TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Reintent automàtic"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Activa el mode de reintent automàtic"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Afegeix un contacte"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Edita el contacte"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Suprimeix el contacte"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Escriu el PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nom"</string>
+    <string name="number" msgid="7905950798349903858">"Número"</string>
+    <string name="save" msgid="4094274636321939086">"Desa"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Afegeix un número de marcatge fix"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"S\'està afegint el número de marcatge fix..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Número de marcatge fix afegit."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Edita el número de marcatge fix"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"S\'està actualitzant el número de marcatge fix..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Número de marcatge fix actualitzat."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Suprimeix el número de marcatge fix"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"S\'està suprimint el número de marcatge fix..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Número de marcatge fix suprimit."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN no s\'ha actualitzat ja que has escrit un PIN incorrecte."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN no s\'ha actualitzat ja que el nombre no pot excedir els 20 dígits."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"El número FDN no s\'ha actualitzat. El PIN2 no és correcte o bé s\'ha rebutjat el número de telèfon."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"S\'està llegint de la targeta SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"No hi ha cap contacte a la targeta SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Seleccioneu contactes per importar-los"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Per importar contactes des de la targeta SIM, primer has de desactivar el mode d\'avió."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Activa/Desactiva el PIN de la SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Canvia el PIN de la SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN de la SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN antic"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN nou"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmeu el PIN nou"</string>
+    <string name="badPin" msgid="8955102849303984935">"El PIN antic que has escrit no és correcte. Torna-ho a provar."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Els PIN que has introduït no coincideixen. Torna-ho a provar."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Escriviu un PIN que tingui de 4 a 8 números."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Desactiva el PIN de la SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Activació del PIN de la SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Espereu-vos…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN de la SIM activat."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN de la SIM desactivat."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"El PIN que has escrit és incorrecte."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"El PIN de la SIM s\'ha modificat correctament."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Contrasenya incorrecta; s\'ha bloquejat la SIM. S\'ha sol·licitat el codi PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 antic"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 nou"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmeu el PIN2 nou"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"El PUK2 que has escrit no és correcte. Torna-ho a provar."</string>
+    <string name="badPin2" msgid="1041576234483629991">"El PIN2 antic que has escrit no és correcte. Torna-ho a provar."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Els PIN2 que has escrit no coincideixen. Torna-ho a provar."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Escriviu un PIN2 que tingui de 4 a 8 números."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Escriviu un PUK2 de 8 números."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"El PIN2 s\'ha modificat correctament."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Escriviu el codi PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Contrasenya incorrecta. Canvia el PIN2 i torna-ho a provar."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Contrasenya incorrecta; s\'ha bloquejat la SIM. S\'ha sol·licitat el codi PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Fet"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Trucada de conferència <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número del correu de veu"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"S\'està marcant"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"S\'està tornant a provar"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Trucada de conferència"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Trucada entrant"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Trucada finalitzada"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"S\'està penjant"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"En una trucada"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"El meu número és <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Marcatge"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Trucada perduda"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Trucades perdudes"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> trucades perdudes"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Trucada perduda de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Trucada en procés"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"En espera"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Trucada entrant"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Correu de veu nou"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Correu de veu nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Marca <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número del correu de veu desconegut"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Sense servei"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"La xarxa seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no està disponible"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Penja"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Torna la trucada"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Missatge"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Per fer una trucada, primer apagueu el mode d\'avió."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"No registrat a la xarxa."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"La xarxa mòbil no està disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"No s\'ha enviat la trucada perquè no s\'ha introduït cap número vàlid."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"No s\'ha enviat la trucada."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"S\'està iniciant la seqüència MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Servei no compatible."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"No es poden canviar les trucades."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"No es pot separar la trucada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"No es pot transferir la trucada."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No es poden fer trucades de conferència."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"No es pot rebutjar la trucada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"No es pot alliberar les trucades."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Trucada per Internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Trucada d\'emergència"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"S\'està activant la ràdio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Fora de l\'àrea de servei; s\'està tornant a provar..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"No s\'ha enviat la trucada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no és un número d\'emergència."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Trucada no enviada. Marca un número d\'emergència."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilitzeu el teclat per marcar"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Posa en espera"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Final"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Teclat"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Silencia"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Afegeix una trucada"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Combina les trucades"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Canvia"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestiona les trucades"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gestiona conferència"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Àudio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videotrucada"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importa"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importa-ho tot"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"S\'estan important els contactes de la SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importa dels contactes"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Audiòfons"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activa la compatibilitat amb audiòfons"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY desactivat"</item>
+    <item msgid="3971695875449640648">"TTY ple"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tons DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Defineix la durada dels tons DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Llarg"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Missatge de xarxa"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activació del telèfon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Cal fer una trucada especial per activar el servei del telèfon. "\n\n"Després de prémer \"Activa\", escolteu les instruccions proporcionades per activar el telèfon."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Voleu ometre l\'activació?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Si ometeu l\'activació, no podreu fer trucades ni connectar-vos a xarxes de dades mòbils (tot i que podreu connectar-vos a xarxes Wi-fi). Fins que activeu el telèfon, se us demanarà que ho feu cada cop que l\'engegueu."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omet"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activa"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"El telèfon està activat."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema d\'activació"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Seguiu les instruccions parlades fins que escolteu que s\'ha completat l\'activació."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Altaveu"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Espera mentre es programa el telèfon."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programació incorrecta"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"El telèfon s\'ha activat. El servei pot trigar fins a 15 minuts en iniciar-se."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"El telèfon no s\'ha activat. "\n"Pot ser que t\'hagis de desplaçar a una zona amb més cobertura (a prop d\'una finestra o a l\'exterior). "\n\n"Torna-ho a provar o truca al servei d\'atenció al client per obtenir més opcions."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ERRORS SPC EN EXCÉS"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Enrere"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Torna-ho a provar"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Següent"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"S\'ha entrat al mode de crida de retorn d\'emergència"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mode de crida de retorn d\'emergència"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Connexió de dades desactivada"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"No hi ha hagut connexió de dades durant <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+    <item quantity="other" msgid="3122217344579273583">"No hi ha hagut connexió de dades durant <xliff:g id="COUNT">%s</xliff:g> minuts"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"El telèfon estarà en mode de devolució de trucades d\'emergència durant <xliff:g id="COUNT">%s</xliff:g> minut. Mentre estigui en aquest mode, no es podran utilitzar aplicacions que utilitzin una connexió de dades. En vols sortir ara?"</item>
+    <item quantity="other" msgid="8617116564023933114">"El telèfon estarà en mode de devolució de trucades d\'emergència durant <xliff:g id="COUNT">%s</xliff:g> minuts. Mentre estigui en aquest mode, no es podran utilitzar aplicacions que utilitzin una connexió de dades. En vols sortir ara?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"L\'acció seleccionada no està disponible mentre estiguis en mode de devolució de trucades d\'emergència. El telèfon estarà en aquest mode durant <xliff:g id="COUNT">%s</xliff:g> minuts. En vols sortir ara?"</item>
+    <item quantity="other" msgid="6115622137771382224">"L\'acció seleccionada no està disponible mentre estiguis en mode de devolució de trucades d\'emergència. El telèfon estarà en aquest mode durant <xliff:g id="COUNT">%s</xliff:g> minuts. En vols sortir ara?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"L\'acció seleccionada no està disponible en una trucada d\'emergència."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"S\'està sortint del mode de devolució de trucades d\'emergència"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sí"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Omet"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Servei"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuració"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;No definit&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Altres opcions de configuració de trucades"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Trucada mitjançant <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto de contacte"</string>
+    <string name="goPrivate" msgid="865837794424530980">"passa a privat"</string>
+    <string name="selectContact" msgid="781975788478987237">"selecciona el contacte"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Configuració de les trucades per Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Comptes per a trucades per Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Comptes"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Recepció de trucades entrants"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Redueix la durada de la bateria"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Trucades per Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Trucades per Internet (només Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Per a totes les trucades quan hi hagi xarxes de dades disponibles"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Només trucades per Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Pregunta cada vegada"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Per a totes les trucades"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Fes una trucada"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Utilitza el compte per a trucades per Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Utilitza-ho sempre per fer trucades per Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Pots canviar quin compte vols utilitzar com a opció predeterminada per a les trucades per Internet del telèfon a la pantalla &gt; Configuració &gt; Configuració de les trucades per Internet &gt; Comptes."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Trucada amb telèfon mòbil"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Trucada per Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"No hi ha cap compte per a trucades per Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"En aquest telèfon no hi ha comptes de trucades per Internet. Vols afegir-n\'hi un?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Afegeix"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Afegeix un compte"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Elimina el compte"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Comptes SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"S\'està desant el compte..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"S\'està eliminant el compte..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Desa"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Descarta"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Tanca el perfil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"D\'acord"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Tanca"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Compte principal. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"S\'està comprovant l\'estat..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"S\'està registrant..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Encara s\'està provant..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"No s\'estan rebent trucades."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"S\'ha aturat el registre del compte perquè no hi ha connexió a Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"S\'ha aturat el registre del compte perquè no hi ha cap connexió Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"S\'ha produït un error en registrar el compte."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"S\'estan rebent trucades."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"S\'ha produït un error en registrar el compte: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ho tornarem a provar més tard"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"S\'ha produït un error en el registre del compte: el nom d\'usuari o la contrasenya no són correctes."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"S\'ha produït un error en el registre del compte: comprova el nom del servidor."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"L\'aplicació <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> està utilitzant aquest compte actualment."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalls del compte SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalls del compte SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Servidor"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nom d\'usuari"</string>
+    <string name="password_title" msgid="3323555249068171531">"Contrasenya"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nom de visualització"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adreça de servidor intermediari de sortida"</string>
+    <string name="port_title" msgid="5952939408078626657">"Número de port"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipus de transport"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Envia mantenir en línia"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Defineix com a compte principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilitzat per a trucades sortints"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Configuració opcional"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nom d\'usuari utilitzat per a l\'autenticació"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nom d\'usuari utilitzat per a l\'autenticació"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;No definit&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Igual que el nom d\'usuari&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Toca per mostrar-ho tot"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Toca per amagar-ho tot"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> és obligatori, no es pot deixar en blanc."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"El número de port hauria de ser entre 1000 i 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"No hi ha connexió a Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"No hi ha connexió Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Per fer una trucada per Internet, primer comprova la connexió a Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Has d\'estar connectat a una xarxa Wi-Fi per fer trucades per Internet (utilitza la configuració Wi-Fi i Xarxa)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"No s\'admeten les trucades per Internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automàtic"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Envia sempre"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"No s\'admeten les trucades de veu"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Ara no puc parlar. Què passa?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Et truco de seguida."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Et truco més tard."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ara no puc parlar. Truques després?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Escriu la teva…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respostes ràpides"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edita les respostes ràpides"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Resposta ràpida"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Restableix aplic. predetermin."</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Missatge enviat a <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"un"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dos"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tres"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"quatre"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinc"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sis"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"set"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"vuit"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nou"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"estrella"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"coixinet"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"marca"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"retrocés"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Altaveu activat."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Trucada silenciada."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Resposta"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Envia SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Rebutja"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibra"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibra"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"So"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"So predeterminat (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"To del telèfon"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar en sonar"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Sonar en marcar els números"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Compleció autom. del teclat"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"To i vibració"</string>
+</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
new file mode 100644
index 0000000..5895ac4
--- /dev/null
+++ b/res/values-cs/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilní data"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Tísňové vytáčení"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Seznam povolených telefonních čísel"</string>
+    <string name="unknown" msgid="6878797917991465859">"Neznámý volající"</string>
+    <string name="private_num" msgid="6713286113000232309">"Soukromé číslo"</string>
+    <string name="payphone" msgid="1931775086311769314">"Veřejný telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Přidržený hovor"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linka je obsazená."</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Síť je zaneprázdněna."</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Bez odezvy, vypršel časový limit"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server je nedostupný"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Volané číslo je nedostupné"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nesprávné uživatelské jméno nebo heslo"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Volání z vně sítě"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Chyba serveru: Zkuste to znovu později."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Není signál."</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Byl dosažen limit ACM."</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Rádio je vypnuto"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"SIM karta chybí nebo nefunguje."</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Nepokrytá oblast."</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Odchozí hovory jsou omezeny na povolená telefonní čísla."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Pokud je zapnuto blokování hovorů, nelze provádět odchozí hovory."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Všechny hovory jsou omezeny řízením přístupu."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Tísňová volání jsou omezena řízením přístupu."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Běžné hovory jsou omezeny řízením přístupu."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Neplatné číslo"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferenční hovor"</string>
+    <string name="call_lost" msgid="317670617901479594">"Hovor byl ztracen."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Kód MMI byl spuštěn"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Kód USSD je spuštěn..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kód MMI byl zrušen"</string>
+    <string name="cancel" msgid="5044513931633602634">"Zrušit"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Zpráva USSD musí mít délku od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znaků. Zkuste to znovu."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovat konferenční hovor"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Reproduktor"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Sluchátko"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Kabelová náhlavní soupr."</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Odeslat následující tóny?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Odesílání tónů"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Odeslat"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ano"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Nahradit zástupné znaky jinými znaky"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Chybí číslo hlasové schránky"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM kartě není uloženo žádné číslo hlasové schránky."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Přidat číslo"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM karta byla odblokována. Telefon se odblokovává..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Kód PIN odblokování sítě pro SIM kartu"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Odemknout"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Zavřít"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Žádost o odblokování sítě..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Požadavek na odblokování sítě se nezdařil."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Síť byla úspěšně odblokována."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Nastavení hovorů GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavení hovorů CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Názvy přístupových bodů (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Nastavení sítě"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Hlasová schránka"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
+    <string name="networks" msgid="8873030692174541976">"Síťoví operátoři"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Nastavení hovorů"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Další nastavení"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Další nastavení hovorů, pouze GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Další nastavení hovorů CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Další nastavení hovorů, pouze CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Nastavení síťové služby"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID volajícího"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Načítání nastavení..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Číslo je v odchozích hovorech skryto"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Číslo je v odchozích hovorech zobrazeno"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Zobrazení čísla v odchozích hovorech se bude řídit výchozím nastavením operátora"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Další hovor na lince"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Oznamuje příchozí hovory i při probíhajícím hovoru"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Oznamovat příchozí hovory i při probíhajícím hovoru"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Nastavení přesměrování hovorů"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Přesměrování hovorů"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Přesměrovat vždy"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Vždy používat toto číslo"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Všechny hovory budou přesměrovány"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Všechny hovory budou přesměrovány na číslo <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Číslo není k dispozici"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Vypnuto"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Přesměrovat, je-li obsazeno"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Číslo při obsazené lince"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Hovory budou přesměrovány na číslo <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Vypnuto"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Váš operátor neumožňuje deaktivovat přesměrování hovorů, když je telefon obsazen."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Přesměrovat – nečinnost"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Číslo při nečinnosti"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Hovory budou přesměrovány na číslo <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Vypnuto"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Váš operátor neumožňuje deaktivovat přesměrování hovorů, když telefon neodpovídá."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Přesměrovat – nedostupnost"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Číslo při nedostupnosti"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Hovory budou přesměrovány na číslo <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Vypnuto"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Váš operátor neumožňuje deaktivovat přesměrování hovorů, když je telefon nedostupný."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Nastavení hovorů"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Chyba nastavení hovorů"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Načítání nastavení..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Probíhá aktualizace nastavení..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Probíhá vrácení předchozích nastavení…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Neočekávaná odpověď sítě."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Došlo k chybě sítě nebo SIM karty."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Nastavení Povolených telefonních čísel v aplikaci vašeho telefonu je zapnuto. Z tohoto důvodu nefungují některé funkce spojené s voláním."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Před zobrazením těchto nastavení prosím zapněte bezdrátový modul."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Povolit"</string>
+    <string name="disable" msgid="7274240979164762320">"Vypnout"</string>
+    <string name="change_num" msgid="239476305819844391">"Aktualizovat"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Výchozí nastavení sítě"</item>
+    <item msgid="7876195870037833661">"Skrýt číslo"</item>
+    <item msgid="1108394741608734023">"Zobrazit číslo"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Číslo hlasové schránky bylo změněno."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Číslo hlasové schránky se nepodařilo změnit."\n"Pokud problém přetrvá, obraťte se na operátora."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Číslo pro přesměrování se nepodařilo změnit."\n"Pokud tento problém přetrvá, obraťte se na operátora."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Načtení a uložení aktuálních nastavení čísla přesměrování se nezdařilo."\n"Chcete přesto změnit poskytovatele?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nebyly provedeny žádné změny."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Zvolte službu hlasové schránky"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Můj operátor"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Nastavení mobilní sítě"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostupné sítě"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Vyhledávání..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Žádná síť nebyla nalezena."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Vyhledávání sítí"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Při vyhledávání sítí došlo k chybě."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Probíhá registrace v síti <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Vaše SIM karta nepovoluje připojení k této síti."</string>
+    <string name="connect_later" msgid="2308119155752343975">"K této síti se momentálně nelze přihlásit. Zkuste to znovu později."</string>
+    <string name="registration_done" msgid="495135664535876612">"Přihlášení k síti bylo úspěšné."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Vybrat síťového operátora"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Vyhledá všechny dostupné sítě"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Zvolit automaticky"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automaticky zvolit upřednostňovanou síť"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatická registrace..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Režim sítě"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Změnit provozní režim sítě"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Upřednostňovaný režim sítě"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Upřednostňovaný režim sítě: preferováno WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Upřednostňovaný režim sítě: pouze GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Upřednostňovaný režim sítě: pouze WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Upřednostňovaný režim sítě: GSM / CDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Upřednostňovaný režim sítě: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Upřednostňovaný režim sítě: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Upřednostňovaný režim sítě: pouze CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Upřednostňovaný režim sítě: pouze EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferovaný režim sítě: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferovaný režim sítě: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferovaný režim sítě: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferovaný režim sítě: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferovaný režim sítě: Globální"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferovaný režim sítě: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globální"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Pouze EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo – automaticky"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA – automaticky"</item>
+    <item msgid="7913148405605373434">"Pouze WCDMA"</item>
+    <item msgid="1524224863879435516">"Pouze GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA – preferováno"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dat. přenosy aktivovány"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktivovat datový přístup prostřednictvím mobilní sítě"</string>
+    <string name="roaming" msgid="8871412572928323707">"Datový roaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Používat datové služby při roamingu"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Používat datové služby při roamingu"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Datové připojení bylo přerušeno, protože jste opustili domovskou síť a máte vypnutý datový roaming."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Opravdu chcete povolit datový roaming? Vystavujete se nebezpečí vysokých poplatků."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Možnosti CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Využití dat"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data využitá v aktuálním období"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Období využití dat"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Zásady pro přenosovou rychlost"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Další informace"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z limitu <xliff:g id="USED_2">%3$s</xliff:g> pro období"\n"Počet dní do začátku dalšího období: <xliff:g id="USED_3">%4$d</xliff:g> (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z limitu <xliff:g id="USED_2">%3$s</xliff:g> pro období"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Byl překročen limit <xliff:g id="USED_0">%1$s</xliff:g>"\n"Přenosová rychlost byla snížena na <xliff:g id="USED_1">%2$d</xliff:g> kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Uplynulo <xliff:g id="USED_0">%1$d</xliff:g>٪ cyklu"\n"Počet dní do začátku dalšího období: <xliff:g id="USED_1">%2$d</xliff:g> (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"V případě překročení limitu využití dat se přenosová rychlost sníží na <xliff:g id="USED">%1$d</xliff:g> kb/s"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Další informace o zásadách využití dat v mobilní síti vašeho mobilního operátora"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS Cell Broadcast"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Cell Broadcast"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS Cell Broadcast povoleny"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS Cell Broadcast zakázány"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Nastavení SMS Cell Broadcast"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Tísňové vysílání"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Tísňové vysílání povoleno"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Tísňové vysílání zakázáno"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativní"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativní povoleny"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativní zakázány"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Údržba"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Údržba povolena"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Údržba zakázána"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Obecné zprávy"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Ekonomika a finance"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportovní zprávy"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Zprávy z kultury"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Místní"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Místní zprávy povoleny"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Místní zprávy zakázány"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionální"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionální zprávy povoleny"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionální zprávy zakázány"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Národní"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Národní zprávy povoleny"</string>
+    <string name="national_disable" msgid="326018148178601166">"Národní zprávy zakázány"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Mezinárodní"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Mezinárodní zprávy povoleny"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Mezinárodní zprávy zakázány"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jazyk"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Vyberte jazyk zpráv"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"angličtina"</item>
+    <item msgid="1151988412809572526">"francouzština"</item>
+    <item msgid="577840534704312665">"španělština"</item>
+    <item msgid="8385712091143148180">"japonština"</item>
+    <item msgid="1858401628368130638">"korejština"</item>
+    <item msgid="1933212028684529632">"čínština"</item>
+    <item msgid="1908428006803639064">"hebrejština"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jazyky"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Místní počasí"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Místní počasí povoleno"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Místní počasí zakázáno"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Oblastní přehledy dopravy"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Oblastní přehledy dopravy povoleny"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Oblastní přehledy dopravy zakázány"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Místní přílety a odlety"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Místní přílety a odlety povoleny"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Místní přílety a odlety zakázány"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurace"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurace povoleny"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurace zakázány"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Ubytování"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Ubytování povolena"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Ubytování zakázána"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Adresář prodejců"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Adresář prodejců povolen"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Adresář prodejců zakázán"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklamy"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklamy povoleny"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklamy zakázány"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Zprávy z akciových trhů"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Zprávy z akciových trhů zakázány"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Zprávy z akciových trhů zakázány"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Pracovní příležitosti"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Pracovní příležitosti povoleny"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Pracovní příležitosti zakázány"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Lékařství, zdraví a nemocnice"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Lékařství, zdraví a nemocnice – povoleno"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Lékařství, zdraví a nemocnice – zakázáno"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologické zprávy"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Technologické zprávy povoleny"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Technologické zprávy zakázány"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Více kategorií"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Více kategorií povoleno"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Více kategorií zakázáno"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Používat pouze sítě 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Šetří baterii"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Výběr systému"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Změnit režim roamingu CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Výběr systému"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Pouze plocha"</item>
+    <item msgid="1205664026446156265">"Automaticky"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Odběr CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Přepnout mezi RUIM/SIM a NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"odběr"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivovat zařízení"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Nastavit datovou službu"</string>
+    <string name="fdn" msgid="7878832555095183202">"Povolená telefonní čísla"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Seznam povolených telefonních čísel"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivace povolených telefonních čísel"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Funkce Povolená telefonní čísla je zapnuta"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Funkce Povolená telefonní čísla je vypnuta"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Zapnout funkci Povolená telefonní čísla"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Vypnout funkci Povolená telefonní čísla"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Změna kódu PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Vypnout funkci Povolená telefonní čísla"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Zapnout funkci Povolená telefonní čísla"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Umožňuje spravovat povolená telefonní čísla"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Umožňuje změnit kód PIN pro přístup k povoleným telefonním číslům"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Správa telefonního seznamu"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Ochrana soukromí v hlasové poště"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Povolit režim vylepšené ochrany soukromí"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Režim TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Nastavit režim TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automaticky zkusit znovu"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktivovat režim Automaticky zkusit znovu"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Přidat kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Upravit kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Smazat kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Zadejte kód PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Jméno"</string>
+    <string name="number" msgid="7905950798349903858">"Číslo"</string>
+    <string name="save" msgid="4094274636321939086">"Uložit"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Přidat povolené telefonní číslo"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Přidávání povoleného telefonního čísla..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Povolené telefonní číslo bylo přidáno."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Upravit povolené telefonní číslo"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Probíhá aktualizace povoleného telefonního čísla..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Povolené telefonní číslo bylo aktualizováno."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Smazat povolené telefonní číslo"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Mazání povoleného telefonního čísla..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Povolené telefonní číslo bylo smazáno."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Funkce Povolená telefonní čísla nebyla aktualizována, protože jste zadali chybný kód PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Funkce Povolená telefonní čísla nebyla aktualizována, protože číslo nesmí obsahovat více než 20 číslic."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Povolená telefonní čísla (FDN) nebyla aktualizována. Kód PIN2 byl nesprávný nebo bylo telefonní číslo odmítnuto."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Čtení ze SIM karty..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Na SIM kartě nejsou žádné kontakty."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Vybrat kontakty pro import"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Chcete-li importovat kontakty ze SIM karty, vypněte nejprve režim V letadle."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Povolit nebo zakázat PIN SIM karty"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Změnit PIN SIM karty"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN SIM karty:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Původní kód PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nový kód PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potvrďte nový kód PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Původní kód PIN byl zadán nesprávně. Zkuste to znovu."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Zadané kódy PIN se neshodují. Zkuste to znovu."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Zadejte kód PIN o délce 4-8 číslic."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Zakázat PIN SIM karty"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Povolit PIN SIM karty"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Čekejte prosím..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN SIM karty je povolen."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN SIM karty je zakázán."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Zadaný kód PIN není správný."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN SIM karty byl úspěšně změněn."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Neplatné heslo, SIM karta je zablokována. Zadejte kód PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Původní kód PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nový kód PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potvrdit nový kód PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Zadaný kód PUK2 není správný. Zkuste to znovu."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Zadaný původní kód PIN2 není správný. Zkuste to znovu."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Zadané kódy PIN2 se neshodují. Zkuste to znovu."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Zadejte kód PIN2 o délce 4-8 číslic."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Zadejte 8místný kód PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Kód PIN2 byl úspěšně změněn."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Zadejte kód PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Heslo není správné. Změňte kód PIN2 a zkuste to znovu."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Neplatné heslo, SIM karta je zablokována. Je požadován kód PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Hotovo"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferenční hovor <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Číslo hlasové schránky"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Vytáčení"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Nový pokus"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenční hovor"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Příchozí hovor"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Hovor ukončen"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Přidržený hovor"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Zavěšování"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Probíhá hovor"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Moje číslo je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Vytáčení"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Zmeškané hovory"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>."</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Zmeškaný hovor od volajícího <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>."</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Probíhající hovor"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Přidržený hovor"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Příchozí hovor"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nová hlasová zpráva"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nová hlasová zpráva (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Volat hlasovou schránku <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Číslo hlasové schránky je neznámé."</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Žádný signál"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Vybraná síť (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) není k dispozici"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Zavěsit"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zavolat zpět"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Zpráva"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Chcete-li telefonovat, vypněte nejprve režim V letadle."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Přihlášení k síti nebylo úspěšné."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilní síť je nedostupná."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Hovor nelze spojit, nebylo zadáno platné číslo."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Hovor nebyl spojen."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Spouštění sekvence MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nepodporovaná služba."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Hovory nelze přepnout."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Hovor nelze oddělit."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Hovor nelze předat."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hovory nelze spojit do konferenčního hovoru."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Hovor nelze odmítnout."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Hovor není možné uvolnit."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetový hovor"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tísňové volání"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Zapínání rádia..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Nepokrytá oblast, opakování pokusu..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Hovor nelze spojit, <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> není číslo nouzového volání."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Hovor nebyl spojen. Vytočte prosím číslo tísňového volání."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Číslo vytočíte pomocí klávesnice."</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Přidržet"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Ukončit"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Číselník"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Ztlumit"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Přidat hovor"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Spojit hovory"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zaměnit"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Spravovat hovory"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Spravovat konferenci"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videohovor"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importovat"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importovat vše"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importování kontaktů ze SIM karty"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import z kontaktů"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Naslouchátka"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Zapnout režim kompatibility s naslouchátkem"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY vypnuto"</item>
+    <item msgid="3971695875449640648">"Úplný režim TTY"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tóny DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Nastavit délku tónů DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normální"</item>
+    <item msgid="2883365539347850535">"Dlouhé"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Zpráva sítě"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivujte svůj telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"K aktivaci telefonní služby je potřeba uskutečnit speciální hovor. "\n\n"Stiskněte tlačítko Aktivovat a aktivujte telefon podle pokynů, které vám budou sděleny."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Přeskočit aktivaci?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Pokud přeskočíte aktivaci, nemůžete volat ani se připojovat k mobilním datovým sítím (můžete se ale připojit k sítím Wi-Fi). Dokud svůj telefon neaktivujete, bude se zobrazovat výzva k aktivaci při každém zapnutí."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Přeskočit"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivovat"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon je aktivován."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problém s aktivací"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Postupujte podle hlasových pokynů, dokud nebudete informováni o dokončení aktivace."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Hlasitě"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Počkejte prosím, než bude telefon naprogramován."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programování se nezdařilo"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Váš telefon je nyní aktivován. Spuštění služby může trvat až 15 minut."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Váš telefon nebyl aktivován."\n"Možná bude nutné vyhledat místo s lepším pokrytím (blízko okna nebo venku). "\n\n"Zkuste to znovu nebo kontaktujte oddělení zákaznických služeb, kde získáte další možnosti."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"PŘÍLIŠ MNOHO SELHÁNÍ CERTIFIKÁTŮ SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Zpět"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Zkuste to znovu"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Další"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"Dialog ukončení režimu tísňového zpětného volání"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Byl aktivován režim tísňového zpětného volání"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Režim tísňového zpětného volání"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Datové spojení zakázáno"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Žádné datové připojení po dobu <xliff:g id="COUNT">%s</xliff:g> min"</item>
+    <item quantity="other" msgid="3122217344579273583">"Žádné datové připojení po dobu <xliff:g id="COUNT">%s</xliff:g> min"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT">%s</xliff:g> minuty. Dokud je telefon v tomto režimu, nelze použít žádnou aplikaci, která využívá datové připojení. Chcete tento režim ukončit?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT">%s</xliff:g> minut. Dokud je telefon v tomto režimu, nelze použít žádnou aplikaci, která využívá datové připojení. Chcete tento režim ukončit?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Vybraná akce není v režimu tísňového zpětného volání dostupná. Telefon bude v tomto režimu po dobu <xliff:g id="COUNT">%s</xliff:g> minuty. Chcete aplikaci nyní ukončit?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Vybraná akce není v režimu tísňového zpětného volání dostupná. Telefon bude v tomto režimu po dobu <xliff:g id="COUNT">%s</xliff:g> minut. Chcete tento režim nyní ukončit?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Během tísňového volání není vybraná akce k dispozici."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Ukončení režimu tísňového zpětného volání"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ano"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Zavřít"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Služba"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfigurace"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenastaveno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Další nastavení hovorů"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Volání prostřednictvím poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografie kontaktu"</string>
+    <string name="goPrivate" msgid="865837794424530980">"přepnout na soukromé"</string>
+    <string name="selectContact" msgid="781975788478987237">"vybrat kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Nastavení internetových hovorů"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Účty pro internetové hovory (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Účty"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Přijímat příchozí hovory"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Snižuje výdrž baterie"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Používat internetové volání"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Používat internetové volání (jen přes Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Pro všechny hovory, pokud je k dispozici datová síť"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Pouze pro internetové hovory"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Pokaždé se zeptat"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Pro všechny hovory"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Uskutečnit hovor"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Použít účet pro internetové hovory:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Vždy používat pro internetové hovory"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Výchozí účet pro internetové hovory můžete změnit na obrazovce Telefon &gt; Nastavení &gt; Nastavení internetových hovorů &gt; Účty."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Hovor z mobilního telefonu"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetový hovor"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Žádný účet pro internetové hovory:"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"V tomto telefonu není žádný účet pro internetové volání. Chcete jej nyní vytvořit?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Přidat"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Přidat účet"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Odebrat účet"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Účty SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Ukládání účtu..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Odebírání účtu..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Uložit"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Zahodit"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Zavřít profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Zavřít"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primární účet. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Kontrola stavu..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrace..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Stále funkci zkouším..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Hovory nejsou přijímány."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Registrace účtu byla zastavena, protože není k dispozici připojení k internetu."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Registrace účtu byla zastavena, protože není k dispozici připojení Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registrace účtu se nezdařila."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Příjem hovorů."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registrace účtu se nezdařila: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Pokus bude opakován později"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registrace účtu se nezdařila: nesprávné uživatelské jméno nebo heslo."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Registrace účtu se nezdařila. Zkontrolujte prosím název serveru."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Tento účet je aktuálně používán aplikací <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Podrobnosti o účtu SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Podrobnosti o účtu SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Uživatelské jméno"</string>
+    <string name="password_title" msgid="3323555249068171531">"Heslo"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Zobrazované jméno"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adresa odchozího serveru proxy"</string>
+    <string name="port_title" msgid="5952939408078626657">"Číslo portu"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Typ přenosu"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Odesílat zprávy pro zachování připojení"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Nastavit jako primární účet"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Použito pro odchozí hovory"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Nepovinná nastavení"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Ověřovací uživatelské jméno"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Uživatelské jméno používané k ověření"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nenastaveno&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Stejné jako uživatelské jméno&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Nepovinné&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Výběrem této položky zobrazíte všechna nastavení"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Výběrem této položky skryjete všechna nastavení"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné. Nelze je ponechat prázdné."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Číslo portu by mělo být od 1000 do 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Žádné připojení k internetu"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Připojení Wi-Fi není k dispozici"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Chcete-li uskutečnit internetový hovor, zkontrolujte, zda jste připojeni k internetu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Abyste mohli uskutečnit internetový hovor, musíte být připojeni k síti Wi-Fi (použijte sekci Nastavení bezdrátového připojení a sítě)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetové hovory nejsou podporovány"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automaticky"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Odesílat vždy"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Hlasové volání není podporováno"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Teď nemůžu telefonovat, o co jde?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Zavolám zpátky."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zavolám později."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nemůžu telefonovat, volejte jindy."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napsat vlastní odpověď..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Rychlé odpovědi"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Upravit rychlé odpovědi"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Rychlá odpověď"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Resetovat výchozí aplikaci"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Zpráva byla odeslána na číslo <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"jedna"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dvě"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tři"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"čtyři"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"pět"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"šest"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sedm"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"osm"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"devět"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"hvězdička"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nula"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"libra"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"vytáčení"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Reproduktor je zapnutý."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Hovor ztlumen."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odpověď"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Odeslat SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Odmítnout"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrace"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrace"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Výchozí zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Vyzváněcí tón telefonu"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrace při vyzvánění"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tóny při dotyku číselníku"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Aut. doplň. pomocí číselníku"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Vyzvánění a vibrace"</string>
+</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
new file mode 100644
index 0000000..17a1398
--- /dev/null
+++ b/res/values-da/strings.xml
@@ -0,0 +1,637 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Nødopkald"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Liste over faste opkald"</string>
+    <string name="unknown" msgid="6878797917991465859">"Ukendt"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privat nummer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Betalingstelefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ventende"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linjen er optaget"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Netværket er optaget"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Intet svar, timeout"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Serveren er ikke tilgængelig"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nummeret er ikke tilgængeligt"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Forkert brugernavn eller adgangskode"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Opkald uden for netværk"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Serverfejl. Prøv igen senere."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Der er intet signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-grænsen er overskredet"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Slå radio fra"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Der er intet SIM-kort, eller der er SIM-kortfejl"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Området er uden for netværksdækning"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Udgående opkald er begrænset af faste opkaldsnumre."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Du kan ikke foretage udgående opkald, mens opkaldsspærring er slået til."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alle opkald er begrænset af adgangskontrol."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Nødopkald er begrænset af adgangskontrol."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normale opkald er begrænset af adgangskontrol."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ugyldigt antal"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telefonmøde"</string>
+    <string name="call_lost" msgid="317670617901479594">"Opkaldet er mistet."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-nummer er startet"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kode kører ..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-nummer annulleret"</string>
+    <string name="cancel" msgid="5044513931633602634">"Annuller"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-meddelelse skal være mellem <xliff:g id="MIN_LEN">%d</xliff:g> og <xliff:g id="MAX_LEN">%d</xliff:g> tegn. Prøv igen."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer telefonmøde"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Højttaler"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Ørestykke til håndsæt"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Headset med ledning"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Send følgende toner?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Sender toner"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Send"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nej"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Erstat jokertegnet med"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Manglende voicemailnummer"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Der er ikke gemt noget voicemailnummer på SIM-kortet."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Tilføj nummer"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Blokeringen af dit SIM-kort er blevet ophævet. Din telefon låser op ..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN-kode til oplåsning af SIM-netværket"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Lås op"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Annuller"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Anmoder om oplåsning af netværk ..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Anmodningen om oplåsning af netværk mislykkedes."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Netværket blev låst op."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Indstillinger for GSM-opkald"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Indstillinger for CDMA-opkald"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Navn på adgangspunkt"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Indstillinger for netværk"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Netværksudbydere"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Indstillinger for opkald"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Yderligere indstillinger"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Yderligere indstillinger for opkald er for kun GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Yderligere CDMA-opkaldsindstillinger"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Yderligere indstillinger for opkald er for kun CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Indstillinger for netværkstjeneste"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Opkalds-id"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Indlæser indstillinger…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nummer skjules i udgående opkald"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer vises i udgående opkald"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Brug udbyderens standardindstillinger til at vise mine numre i udgående opkald"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Ventende opkald"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Fortæl mig om indgående opkald under et opkald"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Fortæl mig om indgående opkald under et opkald"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Indstillinger for viderestilling af opkald"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Viderestilling af opkald"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Viderestil altid"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Brug altid dette nummer"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Viderestiller alle opkald"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Viderestiller alle opkald til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nummeret er ikke tilgængeligt"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Deaktiveret"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Viderestil ved optaget"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nummer ved optaget"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Viderestiller til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Deaktiveret"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Din udbyder understøtter ikke deaktivering af viderestilling af opkald, når telefonen er optaget."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Viderestil ved ubesvaret"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nummer ved ubesvaret"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Viderestiller til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Deaktiveret"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Dit mobilselskab understøtter ikke deaktivering af viderestilling af opkald, når telefonen ikke bliver taget."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Viderestil ved utilgængelig"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nummer ved utilgængelig"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Viderestiller til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktiveret"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Dit mobilselskab understøtter ikke deaktivering af viderestilling af opkald, når telefonen ikke er tilgængelig."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Indstillinger for opkald"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Fejl i indstillinger for opkald"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Læser indstillinger ..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Opdaterer indstillinger ..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Tilbagefører indstillinger …"</string>
+    <string name="response_error" msgid="6674110501330139405">"Uventet svar fra netværk."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Fejl på netværk eller SIM-kort."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Din telefons appindstilling Faste opkaldsnumre er slået til. Som et resultat heraf fungerer nogle opkaldsrelaterede funktioner ikke."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Tænd radioen, inden du får vist disse indstillinger."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktivér"</string>
+    <string name="disable" msgid="7274240979164762320">"Deaktiver"</string>
+    <string name="change_num" msgid="239476305819844391">"Opdater"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Netværksstandard"</item>
+    <item msgid="7876195870037833661">"Skjul nummer"</item>
+    <item msgid="1108394741608734023">"Vis nummer"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Voicemailnummeret blev ændret."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Telefonsvarernummeret kunne ikke ændres."\n"Kontakt dit mobilselskab, hvis problemet vedbliver."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Telefonsvarernummeret kunne ikke ændres."\n"Kontakt dit mobilselskab, hvis problemet vedbliver."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"De aktuelle indstillinger til viderestillingsnummer kunne ikke hentes og gemmes."\n"Vil du skifte til den nye udbyder alligevel?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Der blev ikke foretaget nogen ændringer."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Vælg voicemail-tjeneste"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Min udbyder"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Indstillinger for mobilnetværk"</string>
+    <string name="label_available" msgid="1181658289009300430">"Tilgængelige netværk"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Søger..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Der blev ikke fundet nogen netværk."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Søg efter netværk"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Der opstod en fejl, mens der blev søgt efter netværk."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registreret på netværket."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Vælg en netværksudbyder"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Søg efter alle tilgængelige netværk"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Vælg automatisk"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Vælg automatisk det foretrukne netværk"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Netværkstilstand"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Skift netværksdriftstilstand"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Foretrukken netværkstilstand"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Foretrukken netværkstilstand: WCDMA foretrækkes"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Foretrukken netværkstilstand: kun GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Foretrukken netværkstilstand: kun WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Foretrukken netværkstilstand: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Foretrukket netværkstilstand: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Foretrukket netværkstilstand: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Foretrukken netværkstilstand: kun CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Foretrukken netværkstilstand: kun EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Foretrukken netværkstilstand: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Foretrukken netværkstilstand: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Foretrukken netværkstilstand: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Foretrukken netværkstilstand: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Foretrukken netværkstilstand: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Foretrukken netværkstilstand: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA+LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Kun EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA uden EvDo"</item>
+    <item msgid="4341433122263841224">"Automatisk CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Automatisk GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Kun WCDMA"</item>
+    <item msgid="1524224863879435516">"Kun GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA foretrækkes"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data aktiveret"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktivér dataadgang via mobilnetværk"</string>
+    <string name="roaming" msgid="8871412572928323707">"Dataroaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Opret forbindelse til datatjenester under roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Opret forbindelse til datatjenester under roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Du har mistet dataforbindelsen, fordi du har forladt dit hjemmenetværk, og dataroaming er slået fra."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Tillad dataroaming? Der kan være væsentlige gebyrer for dataroaming."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Indstillinger for GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Indstillinger for CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Databrug"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Databrug i denne periode"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Periode for databrug"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Politik om datahastighed"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Flere oplysninger"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum er overskredet"\n"Datahastigheden er nedsat til <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datahastigheden er nedsat til <xliff:g id="USED">%1$d</xliff:g> Kb/s, hvis datagrænsen overskrides"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Oplysninger om mobilselskabets politik om databrug på netværket"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Celletransmissions-sms"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Celletransmissions-sms"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Celletransmissions-sms er aktiveret"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Celletransmissions-sms deaktiveret"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Indstillinger for celletransmissions-sms"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Nødtransmission"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Nødtransmission er aktiveret"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Nødtransmission er deaktiveret"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administration"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administration er aktiveret"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administration er deaktiveret"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Vedligeholdelse"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Vedligeholdelse er aktiveret"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Vedligeholdelse er deaktiveret"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Generelle nyheder"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Erhvervs- og økonomiske nyheder"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportsnyheder"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Underholdningsnyheder"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokale nyheder er aktiveret"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokale nyheder er deaktiveret"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionale nyheder er aktiveret"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionale nyheder er deaktiveret"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"National"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nationale nyheder er aktiveret"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nationale nyheder er deaktiveret"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Internationale nyheder er aktiveret"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Internationale nyheder er deaktiveret"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Sprog"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Vælg nyhedssprog"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engelsk"</item>
+    <item msgid="1151988412809572526">"Fransk"</item>
+    <item msgid="577840534704312665">"Spansk"</item>
+    <item msgid="8385712091143148180">"Japansk"</item>
+    <item msgid="1858401628368130638">"Koreansk"</item>
+    <item msgid="1933212028684529632">"Kinesisk"</item>
+    <item msgid="1908428006803639064">"Hebraisk"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Sprog"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalt vejr"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalt vejr er aktiveret"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalt vejr er deaktiveret"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Trafikmeldinger i området"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Trafikmeldinger i området er aktiveret"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Trafikmeldinger i området er deaktiveret"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Flyafgange for lokal lufthavn"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Flyafgange for lokal lufthavn er aktiveret"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Flyafgange for lokal lufthavn er deaktiveret"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restauranter"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restauranter er aktiveret"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restauranter er deaktiveret"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Logi"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Logi er aktiveret"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Logi er deaktiveret"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Detailindeks"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Detailindeks er aktiveret"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Detailindeks er deaktiveret"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Annoncer"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Annoncer er aktiveret"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Annoncer deaktiveret"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aktiekurser"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aktiekurser er aktiveret"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aktiekurser er deaktiveret"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Jobmuligheder"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Jobmuligheder er aktiveret"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Jobmuligheder er deaktiveret"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Læger, sundhed og hospital"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Læger, sundhed og hospital er aktiveret"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Læger, sundhed og hospital er deaktiveret"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Teknologinyheder"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Teknologinyheder er deaktiveret"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Teknologinyheder er deaktiveret"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Flere kategorier"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Flere kategorier er aktiveret"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Flere kategorier er deaktiveret"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Brug kun 2G-netværk"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Spar på batteriet"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Vælg system"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Skift CDMA-roamingtilstand"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Vælg system"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Kun hjemme"</item>
+    <item msgid="1205664026446156265">"Automatisk"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-abonnement"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Skift mellem RUIM/SIM og NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonnement"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivér enhed"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Opsætning af datatjeneste"</string>
+    <string name="fdn" msgid="7878832555095183202">"Faste opkaldsnumre"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Liste over faste opkald"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivering af faste opkald"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Faste opkaldsnumre er aktiveret"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Faste opkaldsnumre er deaktiveret"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Aktivér faste opkald"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Deaktiver faste opkald"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Skift PIN2-kode"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Deaktiver faste opkald"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Aktivér faste opkald"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Administrer faste opkaldsnumre"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Skift PIN-kode for at få adgang til faste opkald."</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Administrer telefonnummerliste"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privat talekommunikation"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Aktivér øget fortrolighedstilstand"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-tilstand"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Angiv TTY-tilstand"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Prøv automatisk igen"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktivér automatisk gentagelsestilstand"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Tilføj kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Rediger kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Slet kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Indtast PIN2-kode"</string>
+    <string name="name" msgid="7329028332786872378">"Navn"</string>
+    <string name="number" msgid="7905950798349903858">"Nummer"</string>
+    <string name="save" msgid="4094274636321939086">"Gem"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Tilføj fast opkaldsnummer"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Tilføjer fast opkaldsnummer..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Fast opkaldsnummer blev tilføjet."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Rediger fast opkaldsnummer"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Opdaterer fast opkaldsnummer..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Fast opkaldsnummer blev opdateret."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Slet fast opkaldsnummer"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Sletter fast opkaldsnummer..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Det faste opkaldsnummer blev slettet."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Fast opkaldsnummer blev ikke opdateret, fordi du har indtastet en forkert PIN-kode."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN blev ikke opdateret, fordi antallet ikke må overstige 20 cifre."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN blev ikke opdateret. PIN2-koden var forkert, eller telefonnummeret blev afvist."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Læser fra SIM-kort ..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Der er ingen kontakter på dit SIM-kort."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Vælg kontakter, der skal importeres"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Du skal først slukke Flytilstand for at importere kontaktpersoner fra SIM-kortet."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Aktiver/deaktiver PIN-kode til SIM-kort"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Skift PIN-kode til SIM-kort"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN-kode til SIM-kort:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Nuværende PIN-kode"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Ny PIN-kode"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Bekræft ny PIN-kode"</string>
+    <string name="badPin" msgid="8955102849303984935">"Den gamle pinkode, du har indtastet, er forkert. Prøv igen."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN-koderne, som du har indtastet, stemmer ikke overens. Prøv igen."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Indtast en PIN-kode på mellem 4 og 8 tal."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Deaktiver PIN-kode til SIM-kort"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Aktivér PIN-kode til SIM-kort"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Vent..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Pinkoden til SIM-kortet blev aktiveret."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Pinkoden til SIM-kortet er deaktiveret."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Den indtastede pinkode var forkert."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Pinkoden til SIM-kortet er ændret."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Adgangskoden er forkert. SIM-kortet er låst. PUK2-kode er påkrævet."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2-kode"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Nuværende PIN2-kode"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Ny PIN2-kode"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Bekræft ny PIN2-kode"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Den indtastede PUK2-kode er forkert. Prøv igen."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Den gamle PIN2-kode, du har indtastet, er forkert. Prøv igen."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2-koderne, du har indtastet, stemmer ikke overens. Prøv igen."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Indtast en PIN2-kode på mellem 4 og 8 tal."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Indtast en PUK2-kode på 8 tal."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2-koden blev ændret."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Indtast PUK2-kode"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Forkert adgangskode. Skift PIN2-kode, og prøv igen."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Adgangskoden er forkert. SIM-kortet er låst. PUK2-kode er påkrævet."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Afslut"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telefonmøde <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Voicemailnummer"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Ringer op"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Prøver igen"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonmøde"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Indgående opkald"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Opkaldet er afsluttet"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ventende"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Lægger på"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Opkald i gang"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mit nummer er <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Ringer op"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Ubesvarede opkald"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Ubesvarede opkald"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ubesvarede opkald"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Ubesvarede opkald fra <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Igangværende opkald"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Ventende"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Indgående opkald"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Ny voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Ny voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Ring til <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemailnummeret er ukendt"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Ingen dækning"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Det valgte netværk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ikke tilgængeligt"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Læg på"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Ring tilbage"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Besked"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Slå Flytilstand fra først for at foretage et opkald."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ikke registreret på netværk."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilnetværket er ikke tilgængeligt."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Opkaldet blev ikke sendt. Der blev ikke indtastet et gyldigt nummer."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Opkaldet blev ikke sendt."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Starter MMI-sekvens ..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Tjenesten understøttes ikke."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Der kan ikke skiftes mellem opkald."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Opkaldet kunne ikke separeres."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Opkaldet kunne ikke overføres."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Der kunne ikke oprettes mødeopkald."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Opkaldet kunne ikke afvises."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Der kunne ikke foretages opkald."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetopkald"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødopkald"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Tænder for radio ..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Området er ude af drift. Prøver igen ..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Opkaldet blev ikke sendt. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et nødnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Opkaldet blev ikke sendt. Indtast et nødnummer."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Brug tastatur til at ringe op"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Afslut"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Nummerblok"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Lyd fra"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Tilføj opkald"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Slå opkald sammen"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Skift"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Administrer opkald"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Admin. konference"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Lyd"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videoopkald"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importer"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importer alle"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importerer SIM-kontakter"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer fra kontakter"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Høreapparater"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Slå høreapparatskompatibilitet til"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY fra"</item>
+    <item msgid="3971695875449640648">"TTY er fuld"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-toner"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Angiv længden på DTMF-toner"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Lang"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Netværksbesked"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivér din telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Der skal foretages et særligt opkald for at aktivere din telefontjeneste. "\n\n" Lyt til instruktionerne, når du har trykket på “Aktivér” for at aktivere din telefon."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Spring aktivering over?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Hvis du springer aktiveringen over, kan du ikke foretage opkald eller oprette forbindelse til mobildatanetværk (du kan dog godt oprette forbindelse til Wi-Fi-netværk). Du vil blive bedt om at aktivere din telefon, hver gang du tænder den, indtil du gør det."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Spring over"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivér"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonen er aktiveret."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Der opstod et problem med aktiveringen"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Følg talevejledningen, indtil du hører, at aktiveringen er gennemført."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Højttaler"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Vent, mens din telefon programmeres."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmering mislykkedes"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Din telefon er nu aktiveret. Det kan tage op til 15 minutter, før tjenesten begynder."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Din telefon blev ikke aktiveret. "\n"Du skal muligvis finde et område med bedre dækning (ved et vindue eller udenfor). "\n\n"Prøv igen, eller ring til kundeservice for at få flere oplysninger om andre muligheder."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"FOR MANGE SPC-FEJL"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Tilbage"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Prøv igen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Næste"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"NttAfslutDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Gik i nødtilbagekaldstilstand"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Nødtilbagekaldstilstand"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Dataforbindelsen er deaktiveret"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Ingen dataforbindelse i <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+    <item quantity="other" msgid="3122217344579273583">"Ingen dataforbindelse i <xliff:g id="COUNT">%s</xliff:g> minutter"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefonen vil være i nødtilbagekaldstilstand i <xliff:g id="COUNT">%s</xliff:g> minut. Mens du er i denne tilstand kan ingen apps, der bruger en dataforbindelse, anvendes. Vil du afslutte nu?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefonen vil være i nødtilbagekaldstilstand i <xliff:g id="COUNT">%s</xliff:g> minutter. Mens du er i denne tilstand kan ingen applikationer, der bruger en dataforbindelse, anvendes. Vil du afslutte nu?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Den valgte handling er ikke tilgængelig i nødtilbagekaldstilstand. Telefonen vil være i denne tilstand i <xliff:g id="COUNT">%s</xliff:g> minut. Vil du afslutte nu?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Den valgte handling er ikke tilgængelig i nødtilbagekaldstilstand. Telefonen vil være i denne tilstand i <xliff:g id="COUNT">%s</xliff:g> minutter. Vil du afslutte nu?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Den valgte handling er ikke tilgængelig ved nødopkald"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Eksisterende nødtilbagekaldstilstand"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nej"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Annuller"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Tjeneste"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfiguration"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ikke angivet&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Andre indstillinger for opkald"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"billede af kontaktperson"</string>
+    <string name="goPrivate" msgid="865837794424530980">"gør privat"</string>
+    <string name="selectContact" msgid="781975788478987237">"vælg kontaktperson"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Indstillinger for internetopkald"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Konti til internetopkald (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Konti"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Modtag opkald"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reducerer batteriets levetid"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Benyt internetopkald"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Benyt internetopkald (kun Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Gælder alle opkald, når datanetværk er tilgængeligt"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Kun til internetopkald"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Spørg ved hvert opkald"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Gælder alle opkald"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Foretag opkald"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Benyt internetopkaldskonto:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Benyt altid til at foretage internetopkald"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Du kan ændre, hvilken internetopkaldskonto der skal bruges som standard fra Telefon &gt; Indstillinger &gt; Indstillinger for internetopkald &gt; skærmen Konti."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobiltelefonopkald"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetopkald"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Ingen internetopkaldskonto"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Der er ingen internetopkaldskonti på denne telefon. Vil du tilføje en nu?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Tilføj"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Tilføj konto"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Fjern konto"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-konti"</string>
+    <string name="saving_account" msgid="52903398217017954">"Kontoen gemmes..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Kontoen fjernes..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Gem"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Kassér"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Luk profilen"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Luk"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primær konto. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Tjekker status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrerer..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Forsøger stadig..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Modtager ikke opkald."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Kontoregistreringen blev afbrudt, fordi der ikke er nogen internetforbindelse."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Kontotilmeldingen blev afbrudt, fordi der ikke er nogen Wi-Fi-forbindelse"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registreringen af kontoen mislykkedes."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Modtager opkald."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registreringen af konto mislykkedes: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Vi prøver igen senere."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registreringen af kontoen mislykkedes: forkert brugernavn eller adgangskode."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Registreringen af kontoen mislykkedes. Kontroller servernavn."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Denne konto benyttes i øjeblikket af applikationen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Oplysninger om SIP-konto"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Oplysninger om SIP-konto"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Brugernavn"</string>
+    <string name="password_title" msgid="3323555249068171531">"Adgangskode"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Visningsnavn"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Udgående proxyadresse"</string>
+    <string name="port_title" msgid="5952939408078626657">"Portnummer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transporttype"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Send keepalive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Angiv som primær konto"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Bruges til udgående opkald"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Valgfri indstillinger"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Brugernavn til godkendelse"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Brugernavn bruges til godkendelse"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Ikke angivet&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Samme som brugernavn&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Valgfrit&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tryk for at vise alle"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Tryk for at skjule alle"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> skal udfyldes. Feltet må ikke være tomt."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Portnummeret skal være mellem 1000 og 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Ingen internetforbindelse"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Ingen Wi-Fi-forbindelse"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Kontroller din internetforbindelse, før du foretager et internetopkald."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Du skal have forbindelse til et Wi-Fi-netværk for at kunne foretage internetopkald (brug Indstillinger for trådløs og netværk)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetopkald understøttes ikke"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatisk"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Send altid"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Taleopkald understøttes ikke"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan ikke tale nu. Hvad sker der?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Jeg ringer tilbage lige om lidt."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Jeg ringer til dig senere."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan ikke tale nu. Ringer du senere?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Skriv dit eget..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Hurtige svar"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Rediger hurtige svar"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Hurtigt svar"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Nulstil standardapp"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Meddelelsen er sendt til <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"en"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"to"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tre"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"fire"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"fem"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seks"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"syv"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"otte"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"ni"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"stjerne"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nul"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pund"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"ring op"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"tilbage"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Højttalertelefon aktiveret."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Lyd slået fra opkald."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Svar"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Send SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Afvis"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibration"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibration"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Lyd"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ringetone for opkald"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrer ved opringning"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tastaturtoner"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autofuldfør på num. tastatur"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibration"</string>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
new file mode 100644
index 0000000..25595e5
--- /dev/null
+++ b/res/values-de/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilfunk"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Notruf"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Anrufbegrenzung"</string>
+    <string name="unknown" msgid="6878797917991465859">"Unbekannt"</string>
+    <string name="private_num" msgid="6713286113000232309">"Private Nummer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefonzelle"</string>
+    <string name="onHold" msgid="9035493194749959955">"Gehaltener Anruf"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Leitung besetzt"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Netzwerk ausgelastet"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Keine Antwort, Timeout"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server nicht erreichbar"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nummer nicht erreichbar"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Ungültiger Nutzername oder ungültiges Passwort"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Anruf außerhalb des Netzwerks"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Serverfehler. Bitte versuchen Sie es später erneut."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Kein Signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-Grenzwert überschritten"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Mobilfunkverbindung aus"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Keine SIM-Karte oder SIM-Kartenfehler"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Gebiet ohne Netzabdeckung"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Ausgehende Anrufe unterliegen der Anrufbegrenzung."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Sie können keine Anrufe tätigen, wenn die Anrufsperre aktiviert ist."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alle Anrufe werden durch die Zugriffssteuerung beschränkt."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Notrufe werden durch die Zugriffssteuerung beschränkt."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normale Anrufe werden durch die Zugriffssteuerung beschränkt."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ungültige Nummer"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telefonkonferenz"</string>
+    <string name="call_lost" msgid="317670617901479594">"Anruf ist verloren gegangen."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-Code gestartet"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-Code wird ausgeführt..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-Code abgebrochen"</string>
+    <string name="cancel" msgid="5044513931633602634">"Abbrechen"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Die USSD-Nachricht muss zwischen <xliff:g id="MIN_LEN">%d</xliff:g> und <xliff:g id="MAX_LEN">%d</xliff:g> Zeichen lang sein. Bitte versuchen Sie es erneut."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonkonferenz verwalten"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Lautsprecher"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handy-Kopfhörer"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Kabelgebundenes Headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Folgende Töne senden?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Töne werden gesendet."\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Senden"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nein"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Platzhalter ersetzen durch"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Fehlende Mailbox-Nummer"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Auf der SIM-Karte ist keine Mailbox-Nummer gespeichert."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Nummer hinzufügen"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Ihre SIM-Karte wurde entsperrt. Ihr Telefon wird nun entsperrt..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN zur Entsperrung des SIM-Netzwerks"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Entsperren"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Verwerfen"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Netzwerkentsperrung wird angefordert..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Anfrage für Entsperrung des Netzwerks war nicht erfolgreich."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Entsperrung des Netzwerks nicht erfolgreich."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-Anrufeinstellungen"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-Anrufeinstellungen"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Zugangspunkte (APNs)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Netzwerkeinstellungen"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Mailbox"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"MB:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mobilfunkanbieter"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Anrufeinstellungen"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Zusätzliche Einstellungen"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Zusätzliche Anrufeinstellungen nur für GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Zusätzliche CDMA-Anrufeinstellungen"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Zusätzliche Anrufeinstellungen nur für CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Einstellungen für Netzwerkservice"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Anrufer-ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Einstellungen werden geladen…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nummer bei abgehenden Anrufen unterdrückt"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer bei abgehenden Anrufen angezeigt"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Standardeinst. zur Anzeige meiner Nr. bei abgehenden Anrufen verwenden"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Anklopfen"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Während eines Anrufs über eingehende Anrufe benachrichtigen"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Während eines Anrufs über eingehende Anrufe benachrichtigen"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Einstellungen"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Rufweiterleitung"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Immer weiterleiten"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Diese Nummer immer verwenden"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Alle Anrufe weiterleiten"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Alle Anrufe an <xliff:g id="PHONENUMBER">{0}</xliff:g> weiterleiten"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nummer nicht verfügbar"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Deaktiviert"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Weiterleiten falls besetzt"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nummer falls besetzt"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Weiterleitung an <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Deaktiviert"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Ihr Mobilfunkanbieter unterstützt die Deaktivierung der Anrufweiterleitung bei besetzter Leitung nicht."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Weiterl. falls keine Antw."</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nummer falls keine Antwort"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Weiterleitung an <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Deaktiviert"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Ihr Mobilfunkanbieter unterstützt die Deaktivierung der Anrufweiterleitung bei Nichtbeantwortung nicht."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Weiterl. falls n. erreichb."</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nummer falls nicht erreichbar"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Weiterleitung an <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktiviert"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ihr Mobilfunkanbieter unterstützt die Deaktivierung der Anrufweiterleitung bei Nichterreichbarkeit nicht."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Anrufeinstellungen"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Fehler bei Anrufeinstellungen"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Einstellungen werden gelesen…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Einstellungen werden aktualisiert…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Einstellungen werden zurückgesetzt..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Unerwartete Antwort von Netzwerk"</string>
+    <string name="exception_error" msgid="7027667130619518211">"Netzwerk- oder SIM-Kartenfehler"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Da die Anrufbegrenzung in Ihrer Telefon-App aktiviert ist, funktionieren nicht alle Anruffunktionen."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Aktivieren Sie Ihre Mobilfunkverbindung, bevor Sie diese Einstellungen anzeigen."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktivieren"</string>
+    <string name="disable" msgid="7274240979164762320">"Deaktivieren"</string>
+    <string name="change_num" msgid="239476305819844391">"Aktualisieren"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Netzwerk-Standardeinstellung"</item>
+    <item msgid="7876195870037833661">"Rufnummer unterdrücken"</item>
+    <item msgid="1108394741608734023">"Rufnummer anzeigen"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Mailboxnummer geändert."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Die Mailbox-Nummer konnte nicht geändert werden."\n"Falls dieses Problem weiterhin besteht, setzen Sie sich mit Ihrem Mobilfunkanbieter in Verbindung."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Die Weiterleitungsnummer konnte nicht geändert werden."\n"Falls dieses Problem weiterhin besteht, setzen Sie sich mit Ihrem Mobilfunkanbieter in Verbindung."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Die aktuellen Einstellungen der Weiterleitungsnummern konnten nicht abgerufen und gespeichert werden."\n"Möchten Sie trotzdem zum neuen Anbieter wechseln?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Es wurden keine Änderungen vorgenommen."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Mailbox-Dienst auswählen"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mein Mobilfunkanbieter"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Einstellungen für Mobilfunknetze"</string>
+    <string name="label_available" msgid="1181658289009300430">"Verfügbare Netzwerke"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Suche läuft..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Keine Netzwerke gefunden"</string>
+    <string name="search_networks" msgid="1601136049300882441">"Netzwerke suchen"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Fehler bei der Netzwerksuche"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrierung in <xliff:g id="NETWORK">%s</xliff:g> läuft..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ihre SIM-Karte unterstützt keine Verbindung mit diesem Netzwerk."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Momentan kann keine Verbindung zu diesem Netzwerk aufgebaut werden. Bitte versuchen Sie es später erneut."</string>
+    <string name="registration_done" msgid="495135664535876612">"In Netzwerk registriert."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Mobilfunkanbieter auswählen"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Nach allen verfügbaren Netzwerken suchen"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Automatisch auswählen"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Bevorzugtes Netzwerk automatisch auswählen"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatische Registrierung..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Netzwerkmodus"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Netzwerkbetriebsmodus ändern"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Bevorzugter Netzwerkmodus"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Bevorzugter Netzwerkmodus: WCDMA bevorzugt"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Bevorzugter Netzwerkmodus: nur GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Bevorzugter Netzwerkmodus: nur WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Bevorzugter Netzwerkmodus: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Bevorzugter Netzwerkmodus: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Bevorzugter Netzwerkmodus: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Bevorzugter Netzwerkmodus: nur CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Bevorzugter Netzwerkmodus: nur EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Bevorzugter Netzwerkmodus: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Bevorzugter Netzwerkmodus: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Bevorzugter Netzwerkmodus: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Bevorzugter Netzwerkmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Bevorzugter Netzwerkmodus: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Bevorzugter Netzwerkmodus: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Nur EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA ohne EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo (automatisch)"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA (automatisch)"</item>
+    <item msgid="7913148405605373434">"Nur WCDMA"</item>
+    <item msgid="1524224863879435516">"Nur GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA bevorzugt"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Daten aktiviert"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Datenzugriff über Mobilfunknetz"</string>
+    <string name="roaming" msgid="8871412572928323707">"Daten-Roaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Bei Roaming mit Datendienst verbinden"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Bei Roaming mit Datendienst verbinden"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Die Datenverbindung wurde unterbrochen, weil Sie Ihr privates Netzwerk verlassen haben und Daten-Roaming nicht aktiviert ist."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Daten-Roaming zulassen? Es können hohe Roaming-Gebühren anfallen!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-/UMTS-Optionen"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-Optionen"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Datenverbrauch"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Im aktuellen Zeitraum verwendete Daten"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Zeitraum des Datenverbrauchs"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Richtlinien zur Datenrate"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Weitere Informationen"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Maximum von <xliff:g id="USED_0">%1$s</xliff:g> wurde überschritten."\n"Datenrate wurde auf <xliff:g id="USED_1">%2$d</xliff:g> kbit/s reduziert."</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g> % des Zyklus sind verstrichen. "\n"Der nächste Zeitraum beginnt in <xliff:g id="USED_1">%2$d</xliff:g> Tagen (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datenrate wird auf <xliff:g id="USED">%1$d</xliff:g> kbit/s reduziert, wenn Datennutzungslimit überschritten wird."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Weitere Informationen über die Richtlinien Ihres Mobilfunkanbieters zur Nutzung der Mobilfunknetzdaten"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cell Broadcast SMS aktiviert"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cell Broadcast SMS deaktiviert"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Einstellungen für Cell Broadcast SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Notfall-Broadcast"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Notfall-Broadcast aktiviert"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Notfall-Broadcast deaktiviert"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Verwaltung"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Verwaltung aktiviert"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Verwaltung deaktiviert"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Wartung"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Wartung aktiviert"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Wartung deaktiviert"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Allgemeine Nachrichten"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Geschäfts- und Finanznachrichten"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportnachrichten"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Entertainment-Nachrichten"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokalnachrichten aktiviert"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokalnachrichten deaktiviert"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionalnachrichten aktiviert"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionalnachrichten deaktiviert"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"National"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nationale Nachrichten aktiviert"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nationale Nachrichten deaktiviert"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Internationale Nachrichten aktiviert"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Internationale Nachrichten deaktiviert"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Sprache"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Sprache für Nachrichten auswählen"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Englisch"</item>
+    <item msgid="1151988412809572526">"Französisch"</item>
+    <item msgid="577840534704312665">"Spanisch"</item>
+    <item msgid="8385712091143148180">"Japanisch"</item>
+    <item msgid="1858401628368130638">"Koreanisch"</item>
+    <item msgid="1933212028684529632">"Chinesisch"</item>
+    <item msgid="1908428006803639064">"Hebräisch"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Sprachen"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalwetter"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalwetter aktiviert"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalwetter deaktiviert"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Verkehrsberichte"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Verkehrsberichte aktiviert"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Verkehrsberichte deaktiviert"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Flugpläne lokaler Flughäfen"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Flugpläne lokaler Flughäfen aktiviert"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Flugpläne lokaler Flughäfen deaktiviert"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants aktiviert"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants deaktiviert"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Unterkünfte"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Unterkünfte aktiviert"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Unterkünfte deaktiviert"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Handelsverzeichnis"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Handelsverzeichnis aktiviert"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Handelsverzeichnis deaktiviert"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anzeigen"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anzeigen aktiviert"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anzeigen deaktiviert"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Börsennotierungen"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Börsennotierungen aktiviert"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Börsennotierungen deaktiviert"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Jobmöglichkeiten"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Jobmöglichkeiten aktiviert"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Jobmöglichkeiten deaktiviert"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medizin, Gesundheit und Krankenhäuser"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medizin, Gesundheit und Krankenhäuser aktiviert"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medizin, Gesundheit und Krankenhäuser deaktiviert"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologienachrichten"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Technologienachrichten aktiviert"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Technologienachrichten deaktiviert"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Mehrere Kategorien"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Mehrere Kategorien aktiviert"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Mehrere Kategorien deaktiviert"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Nur 2G-Netze"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Energiesparend"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Systemauswahl"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMA-Roamingmodus ändern"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Systemauswahl"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Nur Heimatnetz"</item>
+    <item msgid="1205664026446156265">"Automatisch"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-Abonnement"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Zwischen RUIM/SIM und NV wechseln"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"Abonnement"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Gerät aktivieren"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Datendienst einrichten"</string>
+    <string name="fdn" msgid="7878832555095183202">"Anrufbegrenzung"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Zugelassene Rufnummern"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivierung der Anrufbegrenzung"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Anrufbegrenzung ist aktiviert"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Anrufbegrenzung ist deaktiviert"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Begrenzung aktivieren"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Anrufbegrenzung deaktivieren"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2 ändern"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Anrufbegrenzung deaktivieren"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Begrenzung aktivieren"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Zugelassene Rufnummern verwalten"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Anrufbegrenzungs-PIN ändern"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Telefonnummernliste verwalten"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Datenschutz für Sprachnotizen"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Erweiterten Datenschutzmodus aktivieren"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-Modus"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY-Modus einstellen"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatische Wiederholung"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Modus für automatische Wiederholung aktivieren"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Kontakt hinzufügen"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Kontakt bearbeiten"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Kontakt löschen"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"PIN2 eingeben"</string>
+    <string name="name" msgid="7329028332786872378">"Name"</string>
+    <string name="number" msgid="7905950798349903858">"Nummer"</string>
+    <string name="save" msgid="4094274636321939086">"Speichern"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Zugelassene Rufnummer hinzufügen"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Zugelassene Rufnummer wird hinzugefügt..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Zugelassene Rufnummer hinzugefügt"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Zugelassene Rufnummer bearbeiten"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Zugelassene Rufnummer wird aktualisiert..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Zugelassene Rufnummer aktualisiert"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Zugelassene Rufnummer löschen"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Zugelassene Rufnummer wird gelöscht..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Zugelassene Rufnummer gelöscht"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Die Anrufbegrenzung wurde nicht aktualisiert, weil Sie eine falsche PIN eingegeben haben."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Die Anrufbegrenzung wurde nicht aktualisiert, weil die Nummer maximal 20 Ziffern enthalten darf."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN wurde nicht aktualisiert. PIN2 war ungültig oder die Telefonnummer wurde abgelehnt."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIM-Karte wird ausgelesen..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Keine Kontakte auf SIM-Karte"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Kontakte für Import auswählen"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Deaktivieren Sie zum Importieren der Kontakte von der SIM-Karte zunächst den Flugmodus."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"PIN-Abfrage für SIM-Karte aktivieren/deaktivieren"</string>
+    <string name="change_pin" msgid="9174186126330785343">"PIN ändern"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN der SIM-Karte:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Alte PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Neue PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Neue PIN bestätigen"</string>
+    <string name="badPin" msgid="8955102849303984935">"Die eingegebene alte PIN ist nicht korrekt. Bitte versuchen Sie es erneut."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Die eingegebenen PIN-Codes stimmen nicht überein. Bitte versuchen Sie es erneut."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Geben Sie eine 4- bis 8-stellige PIN ein."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"PIN-Abfrage für SIM-Karte deaktivieren"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"PIN-Abfrage für SIM-Karte aktivieren"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Bitte warten..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN für SIM-Karte aktiviert"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN-Abfrage für SIM-Karte deaktiviert"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Die eingegebene PIN ist falsch."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN der SIM-Karte geändert"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Passwort falsch, SIM-Karte gesperrt! Eingabe des PUK2 erforderlich."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Alte PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Neue PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Neue PIN2 bestätigen"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Der eingegebene PUK2 ist falsch. Bitte versuchen Sie es erneut."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Die von Ihnen eingegebene alte PIN2 ist nicht korrekt. Bitte versuchen Sie es erneut."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Die eingegebenen PIN2-Codes stimmen nicht überein. Bitte versuchen Sie es erneut."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Geben Sie eine 4- bis 8-stellige PIN2 ein."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Geben Sie einen 8-stelligen PUK2 ein."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 geändert"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2 eingeben"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Passwort falsch. Ändern Sie die PIN2 und versuchen Sie es erneut."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Passwort falsch, SIM-Karte gesperrt. Eingabe des PUK2 erforderlich."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Fertig"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telefonkonferenz <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Mailboxnummer"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Rufaufbau"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Wird wiederholt"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonkonferenz"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Eingehender Anruf"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Anruf beendet"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Gehaltener Anruf"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Auflegen"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Anruf"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Meine Nummer lautet <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Verbindung wird aufgebaut..."</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Entgangener Anruf"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Entgangene Anrufe"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> entgangene Anrufe"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Entgangener Anruf von <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Aktueller Anruf"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Gehaltener Anruf"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Eingehender Anruf"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Neue Nachricht"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Neue Nachricht (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> wählen"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Mailboxnummer unbekannt"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"kein Dienst"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Ausgewähltes Netzwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nicht verfügbar"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Beenden"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zurückrufen"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Nachricht"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Deaktivieren Sie zunächst den Flugmodus, um einen Anruf zu tätigen."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nicht in Netzwerk registriert."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilfunknetz ist nicht verfügbar."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Anruf nicht verbunden; keine gültige Nummer."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Anruf nicht verbunden."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-Sequenz wird gestartet..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nicht unterstützter Dienst."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Wechsel zwischen Anrufen nicht möglich."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Anruf kann nicht getrennt werden."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Anruf kann nicht übertragen werden."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Keine Telefonkonferenz möglich."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Anruf kann nicht abgelehnt werden."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Anrufe können nicht freigegeben werden."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetanruf"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Notruf"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Mobilfunkverbindung wird aktiviert..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Gebiet ohne Netzabdeckung, erneuter Versuch..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Anruf nicht verbunden. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ist keine Notrufnummer!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Anruf nicht verbunden. Wählen Sie eine Notrufnummer!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Zum Wählen Tastatur verwenden"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Halten"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Ende"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Wähltasten"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Ton aus"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Anruf hinzufügen"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Anrufe verbinden"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Wechseln"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Anrufe verwalten"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Konferenz verwalten"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videoanruf"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importieren"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Alle importieren"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM-Kontakte werden importiert"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Aus Kontakten importieren"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Hörhilfen"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Hörhilfekompatibilität aktivieren"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY aus"</item>
+    <item msgid="3971695875449640648">"TTY (vollständig)"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-Töne"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Länge der DTMF-Töne einstellen"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Lang"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Netzwerknachricht"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Ihr Telefon aktivieren"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Zur Aktivierung Ihres Telefondienstes muss ein spezieller Anruf getätigt werden. "\n\n"Wählen Sie \"Aktivieren\" und folgen Sie der Anleitung zur Aktivierung Ihres Telefons."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Aktivierung überspringen?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Wenn Sie die Aktivierung überspringen, können Sie keine Anrufe tätigen oder sich mit mobilen Datennetzwerken verbinden (Sie können sich allerdings mit WLAN-Netzwerken verbinden). Bis Sie Ihr Telefon aktivieren, werden Sie bei jedem Einschalten zur Aktivierung aufgefordert."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Überspringen"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivieren"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Das Telefon ist aktiviert."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem mit der Aktivierung"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Folgen Sie der Anleitung bis Sie hören, dass die Aktivierung abgeschlossen ist."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Lautspr."</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Bitte warten Sie, während Ihr Telefon programmiert wird."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmierung fehlgeschlagen"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Ihr Telefon ist jetzt aktiviert. Es kann bis zu 15 Minuten dauern, bis der Dienst gestartet wird."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Ihr Telefon wurde nicht aktiviert. "\n"Suchen Sie einen Bereich auf, in dem Sie besseren Empfang haben, zum Beispiel in der Nähe eines Fensters oder unter freiem Himmel. "\n\n"Versuchen Sie es bitte noch einmal oder rufen Sie den Kundenservice an."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ZU VIELE SPC-FEHLER"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Zurück"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Erneut versuchen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Weiter"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Notfallrückrufmodus aktiviert"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Notfallrückrufmodus"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Datenverbindung deaktiviert"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g> Minute lang keine Datenverbindung"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g> Minuten lang keine Datenverbindung"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Das Telefon bleibt <xliff:g id="COUNT">%s</xliff:g> Minuten im Notfallrückrufmodus. In diesem Modus können keine Apps verwendet werden, die eine Datenverbindung erfordern. Möchten Sie den Vorgang jetzt beenden?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Das Telefon bleibt <xliff:g id="COUNT">%s</xliff:g> Minuten im Notfallrückrufmodus. In diesem Modus können keine Apps verwendet werden, die eine Datenverbindung erfordern. Möchten Sie den Vorgang jetzt beenden?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Telefon bleibt <xliff:g id="COUNT">%s</xliff:g> Minuten in diesem Modus. Möchten Sie den Vorgang jetzt beenden?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Telefon bleibt <xliff:g id="COUNT">%s</xliff:g> Minuten in diesem Modus. Möchten Sie den Vorgang jetzt beenden?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Die ausgewählte Aktion ist während eines Notrufs nicht verfügbar."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Notfallrückrufmodus wird beendet..."</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nein"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Verwerfen"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Dienst"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Einrichtung"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nicht festgelegt&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Sonstige Anrufeinstellungen"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"Kontaktbild"</string>
+    <string name="goPrivate" msgid="865837794424530980">"privat sprechen"</string>
+    <string name="selectContact" msgid="781975788478987237">"Kontakt wählen"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Einstellungen für Internetanrufe"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Konten für Internetanrufe (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Konten"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Eingehende Anrufe annehmen"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Verkürzt Akkulaufzeit"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Internetanrufe verwenden"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Internetanruf verwenden (nur WLAN)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Für alle Anrufe mit verfügbarem Datennetz"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Nur für Internetanrufe"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Bei jedem Anruf fragen"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Für alle Anrufe"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Telefonieren"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Konto für Internetanrufe verwenden:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Immer für Internetanrufe verwenden"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Sie können auf Ihrem Telefon unter \"Einstellungen &gt; Einstellungen für Internetanrufe\" im Bildschirm \"Konten\" einstellen, welches Konto standardmäßig für Internetanrufe verwendet werden soll."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"per Telefon"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"per Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Kein Konto für Internetanrufe"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Auf diesem Telefon befinden sich keine Konten für Internetanrufe. Möchten Sie jetzt ein Konto hinzufügen?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Hinzufügen"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Konto hinzufügen"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Konto entfernen"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-Konten"</string>
+    <string name="saving_account" msgid="52903398217017954">"Konto wird gespeichert..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Konto wird entfernt..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Speichern"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Verwerfen"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Profil schließen"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Schließen"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primäres Konto. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Status wird überprüft..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrierung läuft..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Wird weiter versucht..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Eingehende Anrufe deaktiviert"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Kontoregistrierung aufgrund fehlender Internetverbindung gestoppt"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Kontoregistrierung aufgrund fehlender WLAN-Verbindung gestoppt"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Kontoregistrierung fehlgeschlagen"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Eingehende Anrufe aktiviert"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Kontoregistrierung fehlgeschlagen: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>. Erneuter Versuch zu einem späteren Zeitpunkt."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Kontoregistrierung fehlgeschlagen: Nutzername oder Passwort falsch."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Kontoregistrierung fehlgeschlagen. Bitte überprüfen Sie den Servernamen."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Dieses Konto wird momentan von der <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>-App verwendet."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-Konto: Details"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-Konto: Details"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nutzername"</string>
+    <string name="password_title" msgid="3323555249068171531">"Passwort"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Anzeigename"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Ausgehende Proxy-Adresse"</string>
+    <string name="port_title" msgid="5952939408078626657">"Port-Nummer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transportart"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Keep-Alive senden"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Als primäres Konto festlegen"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Für ausgehende Anrufe verwendet"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Optionale Einstellungen"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nutzername für Authentifizierung"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Für Authentifizierung verwendeter Nutzername"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nicht festgelegt&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Wie Nutzername&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Optional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tippen, um alle anzuzeigen"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Tippen, um alle auszublenden"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ist ein Pflichtfeld. Es darf nicht leer bleiben."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Portnummer muss zwischen 1000 und 65534 liegen."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Keine Internetverbindung."</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Keine WLAN-Verbindung"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Überprüfen Sie zunächst Ihre Internetverbindung, bevor Sie einen Internetanruf tätigen."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Für Internetanrufe ist eine aktive WLAN-Verbindung notwendig. Wählen Sie die entsprechenden Einstellungen unter \"Drahtlos &amp; Netzwerke\"."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetanrufe werden nicht unterstützt."</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatisch"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Immer senden"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Sprachanruf wird nicht unterstützt."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kann jetzt nicht sprechen. Was gibt\'s?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ich rufe gleich zurück."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ich rufe später zurück."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kann jetzt nicht sprechen. Später?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Eigene Antwort schreiben..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Kurzantworten"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Kurzantworten bearbeiten"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Kurzantwort"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Standard-App zurücksetzen"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Nachricht an <xliff:g id="PHONE_NUMBER">%s</xliff:g> gesendet"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"Eins"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"Zwei"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"Drei"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"Vier"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"Fünf"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"Sechs"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"Sieben"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"Acht"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"Neun"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"Sternsymbol"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"Null"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"Pfund"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"Wählen"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Rücktaste"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Freisprechfunktion aktiviert"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Anruf stummgeschaltet"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Antworten"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS senden"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Ablehnen"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibration"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibration"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Töne"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standardklingelton (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Klingelton"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Beim Klingeln vibrieren"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Wähltastentöne"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autovervollst. für Wähltasten"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Klingelton &amp; Vibration"</string>
+</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
new file mode 100644
index 0000000..62a2277
--- /dev/null
+++ b/res/values-el/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Δεδομένα κινητής συσκευής"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Τηλέφωνο"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Πρόγραμμα κλήσης έκτακτης ανάγκης"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Τηλέφωνο"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Λίστα FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Άγνωστος"</string>
+    <string name="private_num" msgid="6713286113000232309">"Απόκρυψη"</string>
+    <string name="payphone" msgid="1931775086311769314">"Καρτοτηλέφωνο"</string>
+    <string name="onHold" msgid="9035493194749959955">"Σε αναμονή"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Η γραμμή είναι απασχολημένη"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Το δίκτυο είναι απασχολημένο"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Καμία απάντηση, το χρονικό όριο έληξε"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Αδυναμία πρόσβασης σε διακομιστή"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Δεν είναι δυνατή η κλήση του αριθμού"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Εσφαλμένο όνομα χρήστη ή κωδικός πρόσβασης"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Κλήση εκτός δικτύου"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Σφάλμα διακομιστή: Δοκιμάστε ξανά αργότερα."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Δεν υπάρχει σήμα"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Υπέρβαση ορίου ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Ο πομπός είναι απενεργοποιημένος"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Δεν υπάρχει κάρτα SIM ή σφάλμα κάρτας SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Εκτός περιοχής κάλυψης"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Οι εξερχόμενες κλήσεις περιορίζονται από το FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Δεν μπορείτε να πραγματοποιήσετε εξερχόμενες κλήσεις όσο η φραγή κλήσεων είναι ενεργοποιημένη."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Όλες οι κλήσεις περιορίζονται από τον έλεγχο πρόσβασης."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Οι κλήσεις επείγουσας ανάγκης περιορίζονται από τον έλεγχο πρόσβασης."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Οι κανονικές κλήσεις περιορίζονται από τον έλεγχο πρόσβασης."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Μη έγκυρος αριθμός"</string>
+    <string name="confCall" msgid="1904840547188336828">"Κλήση συνδιάσκεψης"</string>
+    <string name="call_lost" msgid="317670617901479594">"Αναπάντητη κλήση."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Έναρξη κώδικα MMI"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Ο κώδικας USSD εκτελείται..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Ο κώδικας MMI ακυρώθηκε"</string>
+    <string name="cancel" msgid="5044513931633602634">"Ακύρωση"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Το μήνυμα USSD θα πρέπει να αποτελείται από <xliff:g id="MIN_LEN">%d</xliff:g> έως <xliff:g id="MAX_LEN">%d</xliff:g> χαρακτήρες. Δοκιμάστε ξανά."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Διαχείριση κλήσης συνδιάσκεψης"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Ηχείο"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Ακουστικό"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Ενσύρ. ακουστ."</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Αποστολή των παρακάτω τόνων;"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Τόνοι αποστολής"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Αποστολή"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ναι"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Όχι"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Αντικατάσταση του χαρακτήρα μπαλαντέρ με"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Λείπει ο αριθμός αυτόματου τηλεφωνητή"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Δεν έχει αποθηκευτεί αριθμός για τον αυτόματο τηλεφωνητή στην κάρτα SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Προσθήκη αριθμού"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Καταργήθηκε ο αποκλεισμός της κάρτας SIM. Το τηλέφωνό σας ξεκλειδώνεται..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Αριθμός PIN ξεκλειδώματος δικτύου κάρτας SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Ξεκλείδωμα"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Παράβλεψη"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Αίτηση ξεκλειδώματος δικτύου..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Ανεπιτυχές αίτημα ξεκλειδώματος δικτύου."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Το ξεκλείδωμα δικτύου ήταν επιτυχές."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Ρυθμίσεις κλήσης GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Ρυθμίσεις κλήσης CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Ονόματα σημείου πρόσβασης"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Ρυθμίσεις δικτύου"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Αυτόματος τηλεφωνητής"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"ΑΤ:"</string>
+    <string name="networks" msgid="8873030692174541976">"Εταιρείες δικτύου"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Ρυθμίσεις κλήσης"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Πρόσθετες ρυθμίσεις"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Πρόσθετες ρυθμίσεις κλήσης μόνο GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Επιπρόσθετες ρυθμίσεις κλήσης CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Πρόσθετες ρυθμίσεις κλήσης μόνο CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Ρυθμίσεις υπηρεσίας δικτύου"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Αναγνώριση κλήσης"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Φόρτωση ρυθμίσεων…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Απόκρυψη αριθμού στις εξερχόμενες κλήσεις"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Αριθμός που προβάλλεται στις εξερχόμενες κλήσεις"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Χρήση των προεπιλεγμένων ρυθμίσεων της εταιρείας για την προβολή του αριθμού μου στις εξερχόμενες κλήσεις"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Αναμ. κλήσ."</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Κατά τη διάρκεια μιας κλήσης, να ειδοποιούμαι για τις εισερχόμενες κλήσεις"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Κατά τη διάρκεια μιας κλήσης, να ειδοποιούμαι για τις εισερχόμενες κλήσεις"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Ρυθμίσεις προώθησης κλήσης"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Προώθηση κλήσης"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Προώθηση πάντα"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Να γίνεται πάντα χρήση αυτού του αριθμού"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Προώθηση όλων των κλήσεων"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Προώθηση όλων των κλήσεων προς <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Ο αριθμός δεν είναι διαθέσιμος"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Απενεργοποιημένη"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Προώθηση όταν είμαι απασχολημένος/η"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Αριθμός όταν είμαι απασχολημένος/ή"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Προώθηση προς <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Απενεργοποιημένη"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Ο φορέας σας δεν υποστηρίζει την απενεργοποίηση της προώθησης κλήσεων όταν το τηλέφωνό σας είναι απασχολημένο."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Προώθηση όταν δεν απαντάω"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Αριθμός όταν δεν απαντάω"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Προώθηση προς <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Απενεργοποιημένη"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Η εταιρεία σας δεν υποστηρίζει την απενεργοποίηση της προώθησης κλήσεων όταν το τηλέφωνό σας δεν απαντάει."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Προώθηση όταν δεν είμαι διαθέσιμος/η"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Αριθμός όταν δεν είμαι διαθέσιμος/η"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Προώθηση προς <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Απενεργοποιημένη"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Η εταιρεία κινητής τηλεφωνίας δεν υποστηρίζει την απενεργοποίηση της προώθησης κλήσεων όταν το τηλέφωνό σας δεν έχει σήμα."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Ρυθμίσεις κλήσης"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Σφάλμα ρυθμίσεων κλήσης"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Ανάγνωση ρυθμίσεων…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ενημέρωση ρυθμίσεων..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Επαναφορά ρυθμίσεων…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Μη αναμενόμενη απάντηση από το δίκτυο."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Σφάλμα δικτύου ή κάρτας SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Έχει ενεργοποιηθεί η ρύθμιση αριθμών κλήσης καθορισμένων αριθμών της εφαρμογής του τηλεφώνου σας. Γι αυτόν τον λόγο δεν λειτουργούν ορισμένες λειτουργίες που σχετίζονται με τις κλήσεις."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Πριν προβάλετε αυτές τις ρυθμίσεις, ενεργοποιήστε τον πομπό."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Ενεργοποίηση"</string>
+    <string name="disable" msgid="7274240979164762320">"Απενεργοποίηση"</string>
+    <string name="change_num" msgid="239476305819844391">"Ενημέρωση"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Προεπιλογή δικτύου"</item>
+    <item msgid="7876195870037833661">"Απόκρυψη αριθμού"</item>
+    <item msgid="1108394741608734023">"Εμφάνιση αριθμού"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Ο αριθμός αυτόματου τηλεφωνητή άλλαξε."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Δεν ήταν δυνατή η αλλαγή του αριθμού για τον αυτόματο τηλεφωνητή."\n"Επικοινωνήστε με την εταιρεία σας εάν το πρόβλημα παραμένει."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Δεν ήταν δυνατή η αλλαγή του αριθμού προώθησης."\n"Επικοινωνήστε με την εταιρεία σας εάν το πρόβλημα παραμένει."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Δεν ήταν δυνατή η ανάκτησης και η αποθήκευση των τρεχουσών ρυθμίσεων αριθμού προώθησης."\n"Να γίνει εναλλαγή στο νέο πάροχο υπηρεσιών;"</string>
+    <string name="no_change" msgid="3186040086622435212">"Δεν έγιναν αλλαγές."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Επιλογή υπηρεσίας αυτόματου τηλεφωνητή"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Η εταιρεία μου"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Ρυθμίσεις δικτύου κινητής τηλεφωνίας"</string>
+    <string name="label_available" msgid="1181658289009300430">"Διαθέσιμα δίκτυα"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Αναζήτηση..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Δεν βρέθηκαν δίκτυα."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Αναζήτηση δικτύων"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Προέκυψε σφάλμα κατά την αναζήτηση δικτύων."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Εγγραφή στο δίκτυο <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Η κάρτα SIM δεν επιτρέπει τη σύνδεση με αυτό το δίκτυο."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Δεν είναι δυνατή η σύνδεση στο δίκτυο αυτήν τη στιγμή. Παρακαλούμε ξαναπροσπαθήστε αργότερα."</string>
+    <string name="registration_done" msgid="495135664535876612">"Έγινε εγγραφή στο δίκτυο."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Επιλέξτε μια εταιρεία δικτύου"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Αναζήτηση διαθέσιμων δικτύων"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Αυτόματη επιλογή"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Αυτόματη επιλογή προτιμώμενου δικτύου"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Αυτόματη εγγραφή..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Λειτουργία δικτύου"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Αλλαγή κατάστασης λειτουργίας δικτύου"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Προτιμώμενη λειτουργία δικτύου"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Προτιμώμενη λειτουργία δικτύου: προτιμώμενο WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Προτιμώμενη λειτουργία δικτύου: μόνο GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Προτιμώμενη λειτουργία δικτύου: μόνο WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Προτιμώμενη λειτουργία δικτύου: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Προτιμώμενη λειτουργία δικτύου: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Προτιμώμενη λειτουργία δικτύου: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Προτιμώμενη λειτουργία δικτύου: μόνο CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Προτιμώμενη λειτουργία δικτύου: μόνο EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Προτιμώμενη λειτουργία δικτύου: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Προτιμώμενη λειτουργία δικτύου: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Προτιμώμενη λειτουργία δικτύου: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Προτιμώμενη λειτουργία δικτύου: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Προτιμώμενη λειτουργία δικτύου: Παγκόσμια"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Προτιμώμενη λειτουργία δικτύου: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Παγκόσμια"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Μόνο EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA χωρίς EvDo"</item>
+    <item msgid="4341433122263841224">"Αυτόματη επιλογή EvDo/CDMA"</item>
+    <item msgid="5958053792390386668">"Αυτόματη επιλογή GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Μόνο WCDMA"</item>
+    <item msgid="1524224863879435516">"Μόνο GSM"</item>
+    <item msgid="3817924849415716259">"Προτιμώνται GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Ενεργοποίηση δεδομένων"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Ενεργοποίηση της πρόσβασης δεδομένων μέσω του δικτύου κινητής τηλεφωνίας"</string>
+    <string name="roaming" msgid="8871412572928323707">"Περιαγωγή δεδομένων"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Σύνδεση στις υπηρεσίες δεδομένων κατά την περιαγωγή"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Σύνδεση στις υπηρεσίες δεδομένων κατά την περιαγωγή"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Χάσατε τη σύνδεση δεδομένων επειδή φύγατε από το οικείο δίκτυο έχοντας την περιαγωγή δεδομένων απενεργοποιημένη."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Να επιτρέπεται η περιαγωγή δεδομένων; Ενδέχεται να επιβαρυνθείτε με σημαντικά έξοδα περιαγωγής!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Επιλογές GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Επιλογές CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Χρήση δεδομένων"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Δεδομένα που χρησιμοποιήθηκαν την τρέχουσα περίοδο"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Περίοδος χρήσης δεδομένων"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Πολιτική ταχύτητας δεδομένων"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Μάθετε περισσότερα"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) με μέγιστη περίοδο <xliff:g id="USED_2">%3$s</xliff:g>"\n"Η επόμενη περίδος ξεκινά σε <xliff:g id="USED_3">%4$d</xliff:g> ημέρες (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) με μέγιστη περίοδο <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Συμπληρώθηκε το μέγιστο όριο <xliff:g id="USED_0">%1$s</xliff:g>"\n"Η ταχύτητα δεδομένων μειώθηκε σε <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Έχει περάσει το <xliff:g id="USED_0">%1$d</xliff:g>٪ του κύκλου"\n"Η επόμενη περίοδος ξεκινά σε <xliff:g id="USED_1">%2$d</xliff:g> ημέρες (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Εάν το όριο χρήσης δεδομένων ξεπεραστεί, τότε η ταχύτητα δεδομένων θα μειωθεί σε <xliff:g id="USED">%1$d</xliff:g> Kb/s"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Περισσότερες πληροφορίες σχετικά με την πολιτική χρήσης δεδομένων στο δίκτυο της εταιρείας κινητής τηλεφωνίας"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Ενεργοποιήθηκε η μετάδοση SMS μέσω κινητού τηλεφώνου"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Απενεργοποιήθηκε το Cell Broadcast SMS"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Ρυθμίσεις μετάδοσης SMS μέσω κινητού τηλεφώνου"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Μετάδοση έκτακτης ανάγκης"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Ενεργοποιήθηκε η μετάδοση έκτακτης ανάγκης"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Απενεργοποίηση κλήσης έκτακτης ανάγκης"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Διαχειριστικά"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Ενεργοποιήθηκε η προβολή διαχειριστικών"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Απενεργοποιήθηκε η προβολή διαχειριστικών"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Συντήρηση"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Ενεργοποιήθηκε η λειτουργία συντήρησης"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Απενεργοποιήθηκε η λειτουργία συντήρησης"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Γενικά νέα"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Επιχειρηματικά και Οικονομικά Νέα"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Αθλητικά νέα"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Νέα ψυχαγωγίας"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Τοπικά"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Ενεργοποιήθηκε η προβολή τοπικών νέων"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Απενεργοποιήθηκε η προβολή τοπικών νέων"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Περιφερειακός"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Ενεργοποιήθηκε η προβολή περιφερειακών νέων"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Απενεργοποιήθηκε η προβολή περιφερειακών νέων"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Εθνικός"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Ενεργοποιήθηκε η προβολή εθνικών ειδήσεων"</string>
+    <string name="national_disable" msgid="326018148178601166">"Απενεργοποιήθηκε η προβολή εθνικών ειδήσεων"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Διεθνή"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Ενεργοποιήθηκε η προβολή διεθνών ειδήσεων"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Απενεργοποιήθηκε η προβολή διεθνών ειδήσεων"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Γλώσσα"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Επιλογή γλώσσας νέων"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Αγγλικά"</item>
+    <item msgid="1151988412809572526">"Γαλλικά"</item>
+    <item msgid="577840534704312665">"Ισπανικά"</item>
+    <item msgid="8385712091143148180">"Ιαπωνικά"</item>
+    <item msgid="1858401628368130638">"Κορεατικά"</item>
+    <item msgid="1933212028684529632">"Κινεζικά"</item>
+    <item msgid="1908428006803639064">"Εβραϊκά"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Γλώσσες"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Τοπική πρόγνωση καιρού"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Ενεργοποιήθηκε η προβολή τοπικών προβλέψεων καιρού"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Απενεργοποιήθηκε η προβολή τοπικών προβλέψεων καιρού"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Αναφορές δελτίου κυκλοφορίας της περιοχής"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Ενεργοποιήθηκε η προβολή αναφορών δελτίου κυκλοφορίας της περιοχής"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Απενεργοποιήθηκε η προβολή αναφορών δελτίου κυκλοφορίας της περιοχής"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Προγράμματα τοπικών αεροπορικών πτήσεων"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Ενεργοποιήθηκε η προβολή προγραμμάτων τοπικών αεροπορικών πτήσεων"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Απενεργοποιήθηκε η προβολή προγράμματος τοπικών αεροπορικών πτήσεων"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Εστιατόρια"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ενεργοποιήθηκε η προβολή εστιατορίων"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Απενεργοποιήθηκε η προβολή εστιατορίων"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Lodgings"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Ενεργοποιήθηκε η λειτουργία Lodgings"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Απενεργοποιήθηκε η λειτουργία Lodgings"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Κατάλογος λιανικού εμπορίου"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Ενεργοποιήθηκε προβολή καταλόγου λιανικού εμπορίου"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Απενεργοποιήθηκε η προβολή καταλόγου λιανικού εμπορίου"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Διαφημίσεις"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Ενεργοποιήθηκαν διαφημίσεις"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Απενεργοποιήθηκε η προβολή διαφημίσεων"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Τιμές μετοχών"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Ενεργοποιήθηκε η προβολή τιμών μετοχών"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Απενεργοποιήθηκε η προβολή τιμών μετοχών"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Ευκαιρίες καριέρας"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Ενεργοποιήθηκε η προβολή ευκαιριών καριέρας"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Απενεργοποιήθηκε η προβολή ευκαιριών καριέρας"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Ιατρικά θέματα, Υγεία και Νοσοκομεία"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Ενεργοποιήθηκε η προβολή Ιατρικών θεμάτων, Υγείας και Νοσοκομείων"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Απενεργοποιήθηκε η προβολή Ιατρικών θεμάτων, Υγείας και Νοσοκομείων"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Τεχνολογικά νέα"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Ενεργοποιήθηκε η προβολή τεχνολογικών νέων"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Απενεργοποιήθηκε η προβολή τεχνολογικών νέων"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Πολλές κατηγορίες"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Ενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Απενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Χρήση μόνο δικτύων 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Εξοικονόμηση μπαταρίας"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Επιλογή συστήματος"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Αλλαγή της λειτουργίας περιαγωγής CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Επιλογή συστήματος"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Μόνο αρχική σελίδα"</item>
+    <item msgid="1205664026446156265">"Αυτόματο"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Συνδρομή CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Αλλαγή μεταξύ RUIM/SIM και NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"συνδρομή"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Ενεργοποίηση συσκευής"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Ρύθμιση υπηρεσίας δεδομένων"</string>
+    <string name="fdn" msgid="7878832555095183202">"Αριθμοί κλήσης καθορισμένων αριθμών"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Λίστα FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Ενεργοποίηση FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Οι αριθμοί κλήσης καθορισμένων αριθμών είναι ενεργοποιημένοι"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Οι αριθμοί κλήσης καθορισμένων αριθμών είναι απενεργοποιημένοι"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Ενεργοποίηση FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Απενεργοποίηση του FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Αλλαγή του αριθμού PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Απενεργοποίηση του FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Ενεργοποίηση FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Διαχείριση αριθμών κλήσης καθορισμένων αριθμών"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Αλλαγή αριθμού PIN για πρόσβαση FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Διαχείριση λίστας αριθμών τηλεφώνου"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Απόρρητο φωνής"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Ενεργοποίηση λειτουργίας σύνθετου απορρήτου"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Λειτουργία TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Ορισμός λειτουργίας TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Αυτόματη επανάληψη"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Ενεργοποίηση λειτουργίας αυτόματης επανάληψης"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Προσθήκη επαφής"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Επεξεργασία επαφής"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Διαγραφή επαφής"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Τύπος PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Όνομα"</string>
+    <string name="number" msgid="7905950798349903858">"Αριθμός"</string>
+    <string name="save" msgid="4094274636321939086">"Αποθ/ση"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Προσθήκη καθορισμένου αριθμού κλήσης"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Προσθήκη καθορισμένου αριθμού κλήσης…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Ο καθορισμένος αριθμός κλήσης προστέθηκε."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Επεξεργασία καθορισμένου αριθμού κλήσης"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ενημέρωση καθορισμένου αριθμού κλήσης…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Ο καθορισμένος αριθμός κλήσης ενημερώθηκε."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Διαγραφή καθορισμένου αριθμού κλήσης"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Διαγραφή καθορισμένου αριθμού κλήσης…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Ο καθορισμένος αριθμός κλήσης διαγράφηκε."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Το FDN δεν ενημερώθηκε, επειδή πληκτρολογήσατε εσφαλμένο PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Το FDN δεν ενημερώθηκε διότι ο αριθμός δεν μπορεί να ξεπερνάει τα 20 ψηφία."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Δεν έγινε ενημέρωση του FDN. Το PIN2 ήταν λανθασμένο ή ο αριθμός του τηλεφώνου απορρίφθηκε."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Ανάγνωση από κάρτα SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Δεν υπάρχουν επαφές στην κάρτα SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Επιλέξτε επαφές για εισαγωγή"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Για την εισαγωγή επαφών από την κάρτα SIM, απενεργοποιήστε πρώτα τη λειτουργία πτήσης."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Ενεργοποίηση/απενεργοποίηση αριθμού PIN της κάρτας SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Αλλαγή αριθμού PIN της κάρτας SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Αριθμός PIN της κάρτας SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Παλιός αριθμός PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Νέος αριθμός PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Επιβεβαίωση νέου αριθμού PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Το παλιό PIN που πληκτρολογήσατε δεν είναι σωστό. Δοκιμάστε ξανά."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Τα PIN που πληκτρολογήσατε δεν ταιριάζουν. Δοκιμάστε ξανά."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Πληκτρολογήστε έναν αριθμό PIN που να αποτελείται από 4 έως 8 αριθμούς."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Απενεργοποίηση αριθμού PIN της κάρτας SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Ενεργοποίηση αριθμού PIN της κάρτας SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Περιμένετε..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Το PIN της κάρτας SIM ενεργοποιήθηκε."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Το PIN της κάρτας SIM απενεργοποιήθηκε."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Ο αριθμός PIN που πληκτρολογήσατε ήταν λανθασμένος."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Ο αριθμός PIN της κάρτας SIM άλλαξε επιτυχώς."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Λανθασμένος κωδικός πρόσβασης, η κάρτα SIM κλειδώθηκε! Ζητήθηκε κωδικός PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"Αριθμός PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Παλιός αριθμός PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Νέος αριθμός PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Επιβεβαίωση νέου αριθμού PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Ο αριθμός PUK2 που πληκτρολογήσατε δεν είναι σωστός. Δοκιμάστε ξανά."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Ο παλιός αριθμός PIN2 που πληκτρολογήσατε δεν είναι σωστός. Δοκιμάστε ξανά."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Ο αριθμός PIN2 που πληκτρολογήσατε δεν ταιριάζει. Δοκιμάστε ξανά."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Πληκτρολογήστε έναν αριθμό PIN2 που να αποτελείται από 4 έως 8 αριθμούς."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Πληκτρολογήστε έναν αριθμό PUK2 που αποτελείται από 8 αριθμούς."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Η αλλαγή του αριθμού PIN2 ήταν επιτυχημένη."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Πληκτρολογήστε τον κώδικα PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Ο κωδικός πρόσβασης είναι λανθασμένος. Αλλάξτε τον αριθμό PIN2 και δοκιμάστε ξανά!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Λανθασμένος κωδικός πρόσβασης, η κάρτα SIM κλειδώθηκε. Ζητήθηκε κωδικός PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Τέλος"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Κλήση συνδιάσκεψης <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Αριθμός αυτόματου τηλεφωνητή"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Κλήση"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Νέα προσπάθεια"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Κλήση συνδιάσκεψης"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Εισερχόμενη κλήση"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Η κλήση τερματίστηκε"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Σε αναμονή"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Κλείσιμο γραμμής"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Σε κλήση"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Ο αριθμός μου είναι <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Κλήση"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Αναπάντητη κλήση"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Αναπάντητες κλήσεις"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> αναπάντητες κλήσεις"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Αναπάντητη κλήση από <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Κλήση σε εξέλιξη"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Σε αναμονή"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Εισερχόμενη κλήση"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Νέο μήνυμα στον αυτόματο τηλεφωνητή"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Νέο μήνυμα στον αυτόματο τηλεφωνητή (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Καλέστε <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Ο αριθμός αυτόματου τηλεφωνητή είναι άγνωστος"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Δίκτυο μη διαθέσιμο"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Επιλεγμένο δίκτυο (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) μη διαθέσιμο"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Τερματισμός κλήσης"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Επανάκληση"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Μήνυμα"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Για να πραγματοποιήσετε μια κλήση, απενεργοποιήστε πρώτα τη λειτουργία πτήσης."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Δεν έχετε εγγραφεί στο δίκτυο."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Η κλήση δεν πραγματοποιήθηκε, δεν έγινε εισαγωγή έγκυρου αριθμού."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"H κλήση δεν πραγματοποιήθηκε."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Έναρξη ακολουθίας MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Μη υποστηριζόμενη υπηρεσία."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Αδύνατη η εναλλαγή κλήσεων."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Δεν ήταν δυνατός ο διαχωρισμός της κλήσης."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Δεν ήταν δυνατή η μεταφορά της κλήσης."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Αδύνατη η πραγματοποίηση κλήσεων συνδιάσκεψης."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Δεν ήταν δυνατή η απόρριψη της κλήσης."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Αδύνατη η επαναφορά κλήσης (κλήσεων)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Κλήση Διαδικτύου"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Κλήσεις επείγουσας ανάγκης"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ενεργοποίηση πομπού..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Εκτός περιοχής κάλυψης, επανάληψη κλήσης..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Η κλήση δεν πραγματοποιήθηκε. Το <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> δεν είναι αριθμός έκτακτης ανάγκης!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Η κλήση δεν πραγματοποιήθηκε. Καλέστε έναν αριθμό επείγουσας ανάγκης!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Χρησιμοποιήστε το πληκτρολόγιο για να πραγματοποιήσετε καλέσετε έναν αριθμό"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Αναμονή"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Τέλος"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Πληκτρολόγιο κλήσης"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Σίγαση"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Προσθήκη κλήσης"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Συγχώνευση κλήσεων"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Ανταλλαγή"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Διαχείριση κλήσεων"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Διαχείρ. συνεδρίασης"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Ήχος"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Κλήση βίντεο"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Εισαγωγή"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Εισαγωγή όλων"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Εισαγωγή επαφών από κάρτα SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Εισαγωγή από επαφές"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Βοηθήματα ακρόασης"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Ενεργοποίηση συμβατότητας βοηθήματος ακρόασης"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY Απενεργοποιήθηκε"</item>
+    <item msgid="3971695875449640648">"TTY πλήρες"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Τόνοι DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Ορισμός διάρκειας τόνων DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Κανονική"</item>
+    <item msgid="2883365539347850535">"Συνεχόμενος"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Μήνυμα δικτύου"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Ενεργοποίηση του τηλεφώνου σας"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Πρέπει να γίνει ειδική κλήση για την ενεργοποίηση της υπηρεσίας του τηλεφώνου που διαθέτετε. "\n\n"Αφού πατήσετε την \"Ενεργοποίηση\", ακούστε τις οδηγίες που παρέχονται για να ενεργοποιήσετε το τηλέφωνό σας."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Παράβλεψη ενεργοποίησης;"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Εάν παραλείψετε την ενεργοποίηση, δεν θα μπορείτε να πραγματοποιήσετε κλήσεις ή να συνδεθείτε σε δίκτυα δεδομένων κινητής τηλεφωνίας (αν και θα μπορείτε να συνδεθείτε σε δίκτυα Wi-Fi). Μέχρι να ενεργοποιήσετε το τηλέφωνό σας, θα σας ζητείται να το ενεργοποιήσετε κάθε φορά που θα το θέτετε σε λειτουργία."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Παράλειψη"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Ενεργοποίηση"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Το τηλέφωνο ενεργοποιήθηκε."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Πρόβλημα κατά την ενεργοποίηση"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Ακολουθήστε τις φωνητικές οδηγίες μέχρι να ακούσετε ότι η ενεργοποίηση ολοκληρώθηκε."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Ηχείο"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Περιμένετε μέχρι να ολοκληρωθεί ο προγραμματισμός του τηλεφώνου σας."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Μη επιτυχής προγραμματισμός"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Το τηλέφωνό σας ενεργοποιήθηκε. Ενδέχεται να χρειαστούν έως και 15 λεπτά για την έναρξη της υπηρεσίας."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Το τηλέφωνό σας δεν ενεργοποιήθηκε "\n"Ίσως χρειάζεται να βρείτε μια περιοχή με καλύτερη κάλυψη (κοντά σε ένα παράθυρο ή σε εξωτερικό χώρο). "\n\n"Δοκιμάστε ξανά ή καλέστε την υπηρεσία εξυπηρέτησης πελατών για περισσότερες επιλογές."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESS SPC FAILURES"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Πίσω"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Προσπαθήστε ξανά"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Επόμενο"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"Παράθυρο διαλόγου εξόδου από λειτουργία κλήσης έκτακτης ανάγκης"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Είσοδος σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Απενεργοποιήθηκε η σύνδεση δεδομένων"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Δεν θα υπάρχει σύνδεση δεδομένων για <xliff:g id="COUNT">%s</xliff:g> λεπτό"</item>
+    <item quantity="other" msgid="3122217344579273583">"Δεν θα υπάρχει σύνδεση δεδομένων για <xliff:g id="COUNT">%s</xliff:g> λεπτά"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Το τηλέφωνο θα βρίσκεται στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT">%s</xliff:g> λεπτό. Όσο βρίσκεται σε αυτήν τη λειτουργία, δεν θα μπορούν να χρησιμοποιηθούν εφαρμογές με σύνδεση δεδομένων. Θέλετε να εξέλθετε τώρα;"</item>
+    <item quantity="other" msgid="8617116564023933114">"Το τηλέφωνο βρίσκεται στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT">%s</xliff:g> λεπτά. Όσο βρίσκεται σε αυτήν τη λειτουργία, δεν θα μπορούν να χρησιμοποιηθούν εφαρμογές με σύνδεση δεδομένων. Θέλετε να εξέλθετε τώρα;"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης. Το τηλέφωνο θα βρίσκεται σε αυτήν τη λειτουργία για <xliff:g id="COUNT">%s</xliff:g> λεπτό. Θέλετε να εξέλθετε τώρα;"</item>
+    <item quantity="other" msgid="6115622137771382224">"Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης. Το τηλέφωνο θα βρίσκεται σε αυτήν τη λειτουργία για <xliff:g id="COUNT">%s</xliff:g> λεπτά. Θέλετε να εξέλθετε τώρα;"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη κατά τη διάρκεια κλήσης επείγουσας ανάγκης."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Έξοδος από τη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ναι"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Όχι"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Απόρριψη"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Υπηρεσία"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Ρυθμίσεις"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Δεν έχει οριστεί&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Άλλες ρυθμίσεις κλήσης"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"φωτογραφία επαφής"</string>
+    <string name="goPrivate" msgid="865837794424530980">"ιδιωτική χρήση"</string>
+    <string name="selectContact" msgid="781975788478987237">"επιλογή επαφής"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Ρυθμίσεις κλήσεων Διαδικτύου"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Λογαριασμοί κλήσεων μέσω Διαδικτύου (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Λογαριασμοί"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Λήψη εισερχόμενων κλήσεων"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Μειώνει τη διάρκεια ζωής της μπαταρίας"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Χρήση κλήσεων μέσω Διαδικτύου"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Κάντε χρήση της κλήσης μέσω Διαδικτύου (μόνο με Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Για όλες τις κλήσεις όταν το δίκτυο δεδομένων είναι διαθέσιμο"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Μόνο για κλήσεις μέσω Διαδικτύου"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Να ερωτώμαι για κάθε κλήση"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Για όλες τις κλήσεις"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Πραγματοποίηση κλήσης"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Χρήση λογαριασμού κλήσης Διαδικτύου:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Να χρησιμοποιείται πάντα για την πραγματοποίηση κλήσεων"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Μπορείτε να καθορίσετε ποιος λογαριασμός κλήσεων μέσω Διαδικτύου θα χρησιμοποιείται από προεπιλογή από τις επιλογές Τηλέφωνο &gt; Ρυθμίσεις &gt; Ρυθμίσεις κλήσεων μέσω Διαδικτύου &gt; Οθόνη λογαριασμών."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Κλήση από κινητό τηλέφωνο"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Κλήση Διαδικτύου"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Δεν υπάρχει λογαριασμός κλήσης Διαδικτύου"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Δεν υπάρχουν λογαριασμοί κλήσεων μέσω Διαδικτύου σε αυτό το τηλέφωνο. Θέλετε να προσθέσετε έναν τώρα;"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Προσθήκη"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Προσθήκη λογαριασμού"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Κατάργηση λογαριασμού"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Λογαριασμοί SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Αποθήκευση του λογαριασμού..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Κατάργηση του λογαριασμού..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Αποθήκευση"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Απόρριψη"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Κλείσιμο του προφίλ"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ΟΚ"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Κλείσιμο"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Βασικός λογαριασμός. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Έλεγχος κατάστασης..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Γίνεται εγγραφή..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Συνέχιση προσπαθειών..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Δεν γίνεται αποδοχή κλήσεων."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Η εγγραφή λογαριασμού διεκόπη επειδή δεν υπάρχει σύνδεση στο Διαδίκτυο."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Ο λογαριασμός εγγραφής διεκόπη επειδή δεν υπάρχει σύνδεση Wi-Fi"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Η εγγραφή λογαριασμού απέτυχε."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Δέχεται κλήσεις."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Αποτυχία εγγραφής λογαριασμού: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Θα επαναληφθεί αργότερα"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Αποτυχία εγγραφής λογαριασμού: Εσφαλμένο όνομα χρήστη ή κωδικός πρόσβασης."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Αποτυχία εγγραφής λογαριασμού: Ελέγξτε το όνομα του διακομιστή."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Αυτήν τη στιγμή ο λογαριασμός χρησιμοποιείται από την εφαρμογή <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Πληροφορίες λογαριασμού SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Πληροφορίες λογαριασμού SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Διακομιστής"</string>
+    <string name="username_title" msgid="2479375923477682328">"Όνομα χρήστη"</string>
+    <string name="password_title" msgid="3323555249068171531">"Κωδικός πρόσβασης"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Προβολή ονόματος"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Διεύθυνση διακομιστή μεσολάβησης εξερχομένων"</string>
+    <string name="port_title" msgid="5952939408078626657">"Αριθμός θύρας"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Τύπος μεταφοράς"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Αποστολή μηνυμάτων \"keep-alive\""</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Ορισμός ως κυρίως λογαριασμού"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Χρησιμοποιείται για εξερχόμενες κλήσεις"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Προαιρετικές ρυθμίσεις"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Όνομα χρήστη ελέγχου ταυτότητας"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Όνομα χρήστη που χρησιμοποιείται για έλεγχο ταυτότητας"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Δεν έχει οριστεί&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Ίδιο με το όνομα χρήστη&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Προαιρετικό&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Αγγίξτε για εμφάνιση όλων"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▷ Αγγίξτε για απόκρυψη όλων"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Το πεδίο <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> απαιτείται και δεν μπορεί να είναι κενό."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Ο αριθμός της θύρας θα πρέπει να είναι μεταξύ 1000 και 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Χωρίς σύνδεση στο Διαδίκτυο"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Δεν υπάρχει σύνδεση Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Για να πραγματοποιήσετε μια κλήση μέσω Διαδικτύου, ελέγξτε πρώτα τη σύνδεσή σας στο Διαδίκτυο."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Για κλήσεις μέσω Διαδικτύου πρέπει να είστε συνδεδεμένοι σε δίκτυο Wi-Fi (χρησιμοποιήστε το στοιχείο Ασύρματο δίκτυο και Ρυθμίσεις δικτύου)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Η κλ. μέσω Διαδικτύου δεν υποστηρίζεται"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Αυτόματα"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Πάντα να αποστέλλεται"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Η φωνητική κλήση δεν υποστηρίζεται"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Δεν μπορώ τώρα. Συμβαίνει κάτι;"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Θα σου τηλεφωνήσω αμέσως."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Θα σου τηλεφωνήσω αργότερα."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Δεν μπορώ τώρα. Πάρε με αργότερα."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Συντάξτε τη δική σας…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Γρήγορες απαντήσεις"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Επεξεργασία γρήγορων απαντήσεων"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Γρήγορη απάντηση"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Επαναφορά προεπιλ. εφαρμογής"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Το μήνυμα εστάλη στο <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"ένα"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"δύο"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"τρία"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"τέσσερα"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"πέντε"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"έξι"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"επτά"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"οκτώ"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"εννέα"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"αστέρι"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"μηδέν"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"σύμβολο δίεσης"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"κλήση"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Η ανοικτή συνομιλία ενεργοποιήθηκε."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Η κλήση τέθηκε σε σίγαση."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Απάντηση"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Αποστολή SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Απόρριψη"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Δόνηση"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Δόνηση"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ήχος"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Προεπιλεγμένος ήχος (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ήχος κλήσης τηλεφώνου"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Δόνηση κατά το κουδούνισμα"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Ήχοι αφής πληκτρολογίου κλήσης"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Αυτόματη συμπλήρωση πληκτρολογίου κλήσης"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ήχος κλήσης &amp; δόνηση"</string>
+</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..a08ea09
--- /dev/null
+++ b/res/values-en-rGB/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobile Data"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Phone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Emergency Dialler"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Phone"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN list"</string>
+    <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
+    <string name="private_num" msgid="6713286113000232309">"Private number"</string>
+    <string name="payphone" msgid="1931775086311769314">"Phonebox"</string>
+    <string name="onHold" msgid="9035493194749959955">"On hold"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Line busy"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Network busy"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"No response; timed out"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server unreachable"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Number unreachable"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Incorrect username or password"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Called from out-of-network"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Server error. Try again later."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"No signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM limit exceeded"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio off"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"No SIM or SIM error"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Out of service area"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Outgoing calls are restricted by FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"You can\'t make outgoing calls while call barring is on."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"All calls are restricted by access control."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Emergency calls are restricted by access control."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normal calls are restricted by access control."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Invalid number"</string>
+    <string name="confCall" msgid="1904840547188336828">"Conference call"</string>
+    <string name="call_lost" msgid="317670617901479594">"Call has been lost."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI code started"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI code cancelled"</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancel"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Wired headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Send the following tones?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Sending tones"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Send"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Yes"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Replace wild character with"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM network unlock PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Unlock"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Dismiss"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Requesting network unlock…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Network unlock request unsuccessful."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Network unlock successful."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM call settings"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA call settings"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Access Point Names"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Network settings"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Network operators"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Additional GSM-only call settings"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Additional CDMA call settings"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Additional CDMA-only call settings"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Network service settings"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Caller ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Loading settings…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Number hidden in outgoing calls"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Number displayed in outgoing calls"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Use default operator settings to display my number in outgoing calls"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Call waiting"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"During a call, notify me of incoming calls"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"During a call, notify me of incoming calls"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Call-forwarding settings"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Call forwarding"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Always forward"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Always use this number"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Forwarding all calls"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Forwarding all calls to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Number is unavailable"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Disabled"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Forward when busy"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Number when busy"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Disabled"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Your operator doesn\'t support disabling call forwarding when your phone is busy."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Forward when unanswered"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Number when unanswered"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Disabled"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Your operator doesn\'t support disabling call forwarding when your phone doesn\'t answer."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Forward when unreachable"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Number when unreachable"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disabled"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Updating settings…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Reverting settings…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Unexpected response from network."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Network or SIM card error."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Your Phone app\'s Fixed Dialing Numbers setting is turned on. As a result, some call-related features aren\'t working."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Please turn on the radio before viewing these settings."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Enable"</string>
+    <string name="disable" msgid="7274240979164762320">"Disable"</string>
+    <string name="change_num" msgid="239476305819844391">"Update"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Network default"</item>
+    <item msgid="7876195870037833661">"Hide number"</item>
+    <item msgid="1108394741608734023">"Show number"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Voicemail number changed."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Couldn\'t change the voicemail number."\n"Contact your operator if this problem persists."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Couldn\'t change the forwarding number."\n"Contact your operator if this problem persists."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Couldn\'t retrieve and save current forwarding number settings."\n"Switch to the new provider anyway?"</string>
+    <string name="no_change" msgid="3186040086622435212">"No changes were made."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Choose voicemail service"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"My operator"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobile network settings"</string>
+    <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Search networks"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network at the moment. Try again later."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Choose a network operator"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Search for all available networks"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Choose automatically"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatically choose preferred network"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatic registration..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Network Mode"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Change the network operating mode"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Preferred network mode"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferred network mode: WCDMA preferred"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferred network mode: GSM only"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferred network mode: WCDMA only"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferred network mode: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferred network mode: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferred network mode: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferred network mode: CDMA only"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferred network mode: EvDo only"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferred network mode: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferred network mode: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferred network mode: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferred network mode: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo only"</item>
+    <item msgid="1508557726283094448">"CDMA w/o EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo auto"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA auto"</item>
+    <item msgid="7913148405605373434">"WCDMA only"</item>
+    <item msgid="1524224863879435516">"GSM only"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferred"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Enable data access over Mobile network"</string>
+    <string name="roaming" msgid="8871412572928323707">"Data roaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Connect to data services when roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Allow data roaming? You may incur significant roaming charges!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA Options"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Data usage"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data used in current period"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Data usage period"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Data rate policy"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Learn more"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum"\n"Next period starts in <xliff:g id="USED_3">%4$d</xliff:g> days (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum exceeded"\n"Data rate reduced to <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ of cycle elapsed"\n"Next period starts in <xliff:g id="USED_1">%2$d</xliff:g> days (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Data rate reduced to <xliff:g id="USED">%1$d</xliff:g> Kb/s if data usage limit is exceeded"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"More information about your operator\'s mobile network data usage policy"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Mobile Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Mobile Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Mobile Broadcast SMS enabled"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Mobile Broadcast SMS disabled"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Mobile Broadcast SMS settings"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Emergency Broadcast"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Emergency Broadcast enabled"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Emergency Broadcast disabled"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrative"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrative enabled"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrative disabled"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Maintenance"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Maintenance enabled"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Maintenance disabled"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"General News"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Business and Financial News"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sports News"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Entertainment News"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Local news enabled"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Local news disabled"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regional news enabled"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regional news disabled"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"National"</string>
+    <string name="national_enable" msgid="1172443648912246952">"National news enabled"</string>
+    <string name="national_disable" msgid="326018148178601166">"National news disabled"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
+    <string name="international_enable" msgid="5855356769925044927">"International news enabled"</string>
+    <string name="international_disable" msgid="2850648591041088931">"International news disabled"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Language"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Select the news language"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"English"</item>
+    <item msgid="1151988412809572526">"French"</item>
+    <item msgid="577840534704312665">"Spanish"</item>
+    <item msgid="8385712091143148180">"Japanese"</item>
+    <item msgid="1858401628368130638">"Korean"</item>
+    <item msgid="1933212028684529632">"Chinese"</item>
+    <item msgid="1908428006803639064">"Hebrew"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Languages"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Local Weather"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Local Weather enabled"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Local Weather disabled"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Area Traffic Reports"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Area Traffic Reports enabled"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Area Traffic Reports disabled"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Local Airport Flight Schedules"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Local Airport Flight Schedules enabled"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Local Airport Flight Schedules disabled"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants enabled"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants disabled"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Lodgings"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Lodgings enabled"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Lodgings disabled"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Retail Directory"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Retail Directory enabled"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Retail Directory disabled"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Advertisements"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Advertisements enabled"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Advertisements disabled"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Share Quotes"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Share Quotes enabled"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Share Quotes disabled"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Employment Opportunities"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Employment Opportunities enabled"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Employment Opportunities disabled"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medical, Health and Hospital"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medical, Health and Hospital enabled"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medical, Health and Hospital disabled"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technology News"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Technology News enabled"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Technology News disabled"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-category"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multi-category enabled"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multi-category disabled"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Use only 2G networks"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Saves battery"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"System select"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Change the CDMA roaming mode"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"System select"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Home only"</item>
+    <item msgid="1205664026446156265">"Automatic"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA subscription"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Change between RUIM/SIM and NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscription"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activate device"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Set up data service"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fixed Dialling Numbers"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN list"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN activation"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Fixed Dialling Numbers are enabled"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Fixed Dialling Numbers are disabled"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Enable FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Disable FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Change PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Disable FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Enable FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Manage Fixed Dialling Numbers"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Change PIN for FDN access"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Manage phone number list"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Voice privacy"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Enable enhanced privacy mode"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY mode"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Set TTY mode"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Auto-retry"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Enable Auto-retry mode"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Add contact"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Edit contact"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Delete contact"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Type PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Name"</string>
+    <string name="number" msgid="7905950798349903858">"Number"</string>
+    <string name="save" msgid="4094274636321939086">"Save"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Add fixed dialling number"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Adding fixed dialling number…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Fixed dialling number added."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Edit fixed dialling number"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Updating fixed dialling number…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Fixed dialling number updated."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Delete fixed dialling number"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Deleting fixed dialling number…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Fixed dialling number deleted."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN wasn\'t updated because the number can\'t exceed 20 digits."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Reading from SIM card…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"No contacts on your SIM card."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Select contacts to import"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"To import contacts from the SIM card, first turn off Aeroplane mode."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Change SIM PIN"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Old PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"New PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirm new PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"The old PIN that you typed isn\'t correct. Try again."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"The PINs that you typed don\'t match. Try again."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Type a PIN that is 4 to 8 numbers."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Disable SIM PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Enable SIM PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Please wait…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM PIN enabled"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM PIN disabled."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"The PIN that you typed was incorrect."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM PIN changed successfully."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Password incorrect; SIM is locked! PUK2 requested."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Old PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"New PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirm new PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"The PUK2 that you typed isn\'t correct. Try again."</string>
+    <string name="badPin2" msgid="1041576234483629991">"The old PIN2 that you typed isn\'t correct. Try again."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"The PIN2s you typed don\'t match. Try again."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Type a PIN2 that is 4 to 8 numbers."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Type a PUK2 that is 8 numbers."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 changed successfully."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Type PUK2 code"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Password incorrect. Change PIN2 and retry."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Password incorrect, SIM is locked. PUK2 requested."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Done"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Conference call <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Voicemail number"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Dialling"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Retrying"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Conference call"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Incoming call"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Call ended"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"On hold"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Hanging up"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"In call"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"My number is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missed call"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Missed calls"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missed calls"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Missed call from <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"On-going call"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"On hold"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Incoming call"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"New voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemail number unknown"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"No service"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Hang up"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Call back"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Message"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"To place a call, first turn off Aeroplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Not registered on network."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobile network not available."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Call not sent. No valid number entered."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Call not sent."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Starting MMI sequence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Unsupported service."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Unable to switch calls."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Unable to separate call."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Unable to transfer call."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Unable to reject call."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Unable to release call(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internet call"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Out-of-service area; retrying…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Call not sent. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Call not sent. Dial an emergency number!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Use keyboard to dial"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"End"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Dial pad"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Mute"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Add call"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Merge calls"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Swap"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Manage calls"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Manage conference"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video call"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Import"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing-aid compatibility"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY Off"</item>
+    <item msgid="3971695875449640648">"TTY Full"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tones"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Set the length of DTMF tones"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Long"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Network message"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activate your phone"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"A special call needs to be made to activate your phone service. "\n\n"After pressing “Activate”, listen to the instructions provided to activate your phone."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Skip activation?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"If you skip activation, you can\'t place calls or connect to mobile data networks (though you can connect to Wi-Fi networks). Until you activate your phone, you are asked to activate it each time that you turn it on."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Skip"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activate"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Phone is activated."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem with activation"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Follow the spoken instructions until you hear that activation is complete."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Speaker"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Please wait while your phone is being programmed."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programming unsuccessful"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Your phone is now activated. It may take up to 15 minutes for service to start."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Your phone didn\'t activate. "\n"You may need to find an area with better coverage (near a window or outside). "\n\n"Try again or call customer service for more options."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESS SPC FAILURES"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Back"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Try again"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Next"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Entered Emergency Callback Mode"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Emergency Callback Mode"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Data connection disabled"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"No data connection for <xliff:g id="COUNT">%s</xliff:g> minute"</item>
+    <item quantity="other" msgid="3122217344579273583">"No data connection for <xliff:g id="COUNT">%s</xliff:g> minutes"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"The phone will be in Emergency Callback mode for <xliff:g id="COUNT">%s</xliff:g> minute. While in this mode no apps using a data connection can be used. Do you want to exit now?"</item>
+    <item quantity="other" msgid="8617116564023933114">"The phone will be in Emergency Callback mode for <xliff:g id="COUNT">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT">%s</xliff:g> minute. Do you want to exit now?"</item>
+    <item quantity="other" msgid="6115622137771382224">"The action selected isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT">%s</xliff:g> minutes. Do you want to exit now?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"The action selected isn\'t available during an emergency call."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Exiting Emergency Callback mode"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Yes"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Dismiss"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Service"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Setup"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Not set&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Other call settings"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"contact photo"</string>
+    <string name="goPrivate" msgid="865837794424530980">"go private"</string>
+    <string name="selectContact" msgid="781975788478987237">"select contact"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Internet call settings"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Internet calling (SIP) accounts"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Accounts"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Receive incoming calls"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduces battery life"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Use Internet calling"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Use Internet calling (Wi-Fi only)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"For all calls when data network is available"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Only for Internet calls"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Ask for each call"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"For all calls"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Place call"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Use Internet calling account:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Always use to place Internet calls"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"You can change which Internet calling account to use by default from the Phone &gt; Settings &gt; Internet call settings &gt; Accounts screen."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobile phone call"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internet call"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"No Internet calling account"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"There are no Internet calling accounts on this phone. Do you want to add one now?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Add"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Add account"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Remove account"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP accounts"</string>
+    <string name="saving_account" msgid="52903398217017954">"Saving the account…"</string>
+    <string name="removing_account" msgid="7183999896088628100">"Removing the account…"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Save"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Discard"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Close the profile"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Close"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primary account. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Checking status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registering…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Still trying..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Not receiving calls"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Account registration stopped because there is no Internet connection."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Account registration stopped because there is no Wi-Fi connection."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Account registration unsuccessful."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Receiving calls."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Account registration unsuccessful: Incorrect username or password."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Account registration unsuccessful: Check the server name."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP account details"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP account details"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Username"</string>
+    <string name="password_title" msgid="3323555249068171531">"Password"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Display name"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Outgoing proxy address"</string>
+    <string name="port_title" msgid="5952939408078626657">"Port number"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transport type"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Send keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Set as primary account"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Used for outgoing calls"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Optional settings"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Authentication username"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Username used for authentication"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Not set&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Same as username&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Optional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Touch to show all"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Touch to hide all"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Port number should be within 1000 and 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"No Internet connection"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"No Wi-Fi connection"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"To make an Internet call, check your Internet connection first."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"You need to be connected to a Wi-Fi network for Internet calls (use the Wireless &amp; Network settings)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internet calling not supported"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatic"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Always send"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Voice calling not supported"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s up?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you right back."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"I\'ll call you later."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Can\'t talk now. Call me later?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Write your own..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Quick responses"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edit quick responses"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Quick response"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Reset default app"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Message sent to <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"one"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"two"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"three"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"four"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"five"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"six"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"seven"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"eight"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nine"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"star"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pound"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"dial"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Speakerphone enabled."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Call muted."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Answer"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Send SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Decline"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sound"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Phone ringtone"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrate when ringing"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Dial pad touch tones"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Dial pad autocomplete"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..e1bea13
--- /dev/null
+++ b/res/values-es-rUS/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Datos de celulares"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Teléfono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Marcador de emergencia"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Teléfono"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Lista de NMF"</string>
+    <string name="unknown" msgid="6878797917991465859">"Desconocida"</string>
+    <string name="private_num" msgid="6713286113000232309">"Número privado"</string>
+    <string name="payphone" msgid="1931775086311769314">"Teléfono pago"</string>
+    <string name="onHold" msgid="9035493194749959955">"En espera"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Línea ocupada"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Red ocupada"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"No hay respuesta, tiempo de espera agotado"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Servidor inaccesible"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"No se puede establecer la llamada"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nombre de usuario o contraseña incorrecto"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"La llamada se realizó desde fuera de la red."</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Error de servidor. Inténtalo nuevamente más tarde."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"No hay señal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Se excedió el límite de ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio apagada"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"No se encuentra la tarjeta SIM o se produjo un error relacionado con ella."</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Área fuera de servicio"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Las llamadas salientes están restringidas por NMF."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"No puedes realizar llamadas salientes cuando la restricción de llamadas está activa."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Todas las llamadas están restringidas por control de acceso."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Las llamadas de emergencia están restringidas por control de acceso."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Las llamadas normales están restringidas por control de acceso."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"El número no es válido."</string>
+    <string name="confCall" msgid="1904840547188336828">"Llamada en conferencia"</string>
+    <string name="call_lost" msgid="317670617901479594">"La llamada se ha perdido."</string>
+    <string name="ok" msgid="3811371167865772377">"Aceptar"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Código de MMI iniciado"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Ejecutando código USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Código MMI cancelado"</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
+    <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%d</xliff:g> y <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Vuelve a intentarlo."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altavoz"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Auricular"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Auriculares con cable"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"¿Deseas enviar los siguientes tonos?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Enviando tono"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sí"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Reemplazar el carácter comodín con"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Falta el número de correo de voz"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"No hay un número de correo de voz almacenado en la tarjeta SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Agregar número"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Tu tarjeta SIM ha sido desbloqueada. Tu dispositivo está desbloqueando..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN de desbloqueo de red de tarjeta SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloquear"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Descartar"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando desbloqueo de red..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Solicitud de desbloqueo de red incorrecta."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Desbloqueo de red correcto."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Config. de llam. GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Configuración de llamadas de CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nombres de puntos de acceso"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Configuración de red"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Correo de voz"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Correo de voz:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operadores de red"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Configuración de llamada"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Configuración de llamadas de GSM adicionales únicamente"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Configuración de llamadas de CDMA adicionales"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Configuración de llamadas de CDMA adicionales únicamente"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Configuración de servicios de red"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID de llamada entrante"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Cargando la configuración…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Número escondido en llamadas salientes"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Número visualizado en llamadas salientes"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizar configuración del operador predeterminada para visualizar mi número en las llamadas salientes"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Llamada en espera"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Configuración de reenvío de llamadas"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Reenvío de llamada"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Reenviar siempre"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Usar siempre este número"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Reenviar todas las llamadas"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Reenviar todas las llamadas a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"El número no está disponible"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Desactivado"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Reenviar si está ocup."</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Número cuando está ocupado"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Reenviar a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Desactivado"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando tu teléfono está ocupado."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Reenviar si no contesta"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Número cuando no contesta"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Reenviar a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Deshabilitado"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando tu teléfono no responde."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Reenv. si no se alcanza"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Número cuando no se puede alcanzar"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Reenviar a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desactivado"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando no se puede acceder a tu teléfono."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Config. de llamada"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Error en configuración de llamada"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Leyendo configuración..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Actualizando configuración..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Revirtiendo configuraciones..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Respuesta inesperada de la red."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Error en la red o en la tarjeta SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Está activada la configuración de los números de marcación fija de tu teléfono. Por lo tanto, algunas de las características relacionados con las llamadas no funcionan."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Enciende la radio antes de ver esta configuración."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Aceptar"</string>
+    <string name="enable" msgid="1059008390636773574">"Activar"</string>
+    <string name="disable" msgid="7274240979164762320">"Desactivar"</string>
+    <string name="change_num" msgid="239476305819844391">"Actualizar"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Red predeterminada"</item>
+    <item msgid="7876195870037833661">"Ocultar número"</item>
+    <item msgid="1108394741608734023">"Mostrar número"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Número de correo de voz cambiado."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"No se pudo cambiar el número del buzón de voz."\n"Si el problema continua, ponte en contacto con tu proveedor."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"No se pudo cambiar el número de desvío."\n"Si el problema continua, ponte en contacto con tu proveedor."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"No se pudo recuperar ni guardar la configuración del número actual de reenvío."\n"¿Deseas cambiar de proveedor de todos modos?"</string>
+    <string name="no_change" msgid="3186040086622435212">"No se realizaron cambios."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Elegir servicio de buzón de voz"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mi proveedor"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Configuración de red móvil"</string>
+    <string name="label_available" msgid="1181658289009300430">"Redes disponibles"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Buscando..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"No se encontraron redes."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Buscar redes"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Error al buscar redes."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrando en <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Tu tarjeta SIM no permite una conexión con esta red."</string>
+    <string name="connect_later" msgid="2308119155752343975">"No se puede establecer una conexión con la red en este momento. Vuelve a intentarlo más adelante."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrado en la red."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Elegir un operador de red"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Buscar todas las redes disponibles"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Elegir automáticamente"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Elegir la red preferida automáticamente"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registro automático…"</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Modo de red"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Cambiar el modo operativo de la red"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Modo de red preferido"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modo de red preferido: WCDMA preferido"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modo de red preferido: solo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modo de red preferido: solo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modo de red preferido: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Modo de red preferido: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Modo de red preferido: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modo de red preferido: solo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modo de red preferido: solo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Modo de red preferido: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Modo de red preferido: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Modo de red preferido: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Modo de red preferido: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Modo de red preferido: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo solamente"</item>
+    <item msgid="1508557726283094448">"CDMA sin EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automático"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automático"</item>
+    <item msgid="7913148405605373434">"WCDMA solamente"</item>
+    <item msgid="1524224863879435516">"GSM solamente"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferido"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Usar paquete de datos"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Activar acceso a datos para red móvil"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming de datos"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Conectar a servicios de datos en roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Conectar a servicios de datos en roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Perdiste la conectividad de datos porque se desactivó la itinerancia de datos de tu red doméstica."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"¿Deseas permitir el roaming de datos? Ten en cuenta que podrás incurrir en gastos significativos."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opciones de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opciones de CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Utilización de datos"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Datos utilizados en el período actual"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Período de utilización de datos"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Política de velocidad de transferencia de datos"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Más información"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> del período máximo "\n"El próximo período comienza en <xliff:g id="USED_3">%4$d</xliff:g> días (<xliff:g id="USED_4">%5$s</xliff:g>)."</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> máximo del período"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>máximo excedido"\n"La velocidad de la transferencia de datos se redujo a <xliff:g id="USED_1">%2$d</xliff:g> kb/seg."</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>% del ciclo transcurrido"\n"El siguiente período comienza en <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"La velocidad de la transferencia de datos se reduce a <xliff:g id="USED">%1$d</xliff:g> Kb/seg. si se excede el límite de utilización de datos."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Más información acerca de la política de utilización de datos de la red móvil de tu proveedor de servicios de telefonía móvil"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de emisión celular"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS de emisión celular"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS de emisión celular activado"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS de emisión celular activado"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Configuración de SMS de emisión celular"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Emisión de emergencia"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Emisión de emergencia activada"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Emisión de emergencia desactivada"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativo"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativo activado"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativo desactivado"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Mantenimiento"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Mantenimiento activado"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Mantenimiento desactivado"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Noticias generales"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Noticias de negocios y finanzas"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Noticias de deportes"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Noticias de espectáculos"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Noticias locales activadas"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Noticias locales activadas"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Noticias regionales activadas"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Noticias regionales desactivadas"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Noticias nacionales activadas"</string>
+    <string name="national_disable" msgid="326018148178601166">"Noticias nacionales desactivadas"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internacional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Noticias internacionales activadas"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Noticias internacionales desactivadas"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Idioma"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Seleccionar el idioma de las noticias"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglés"</item>
+    <item msgid="1151988412809572526">"Francés"</item>
+    <item msgid="577840534704312665">"Español"</item>
+    <item msgid="8385712091143148180">"Japonés"</item>
+    <item msgid="1858401628368130638">"Coreano"</item>
+    <item msgid="1933212028684529632">"Chino"</item>
+    <item msgid="1908428006803639064">"Hebreo"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Idiomas"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Clima local"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Clima local activado"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Clima local desactivado"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Informes del tráfico de área"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Informes del tráfico de área activados"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Informes del tráfico de área desactivados"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Programaciones de vuelo del aeropuerto local"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Programaciones de vuelo del aeropuerto local activadas"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Programaciones de vuelo del aeropuerto local activadas"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurantes"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurantes habilitados"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurantes desactivados"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Alojamientos"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Alojamientos activados"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Alojamientos desactivados"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Directorio Reventa"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Directorio Reventa activado"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Directorio Reventa desactivado"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anuncios"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anuncios activados"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anuncios desactivados"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Stock Quotes"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Stock Quotes activado"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Stock Quotes desactivado"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunidades de empleo"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunidades de empleo activadas"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunidades de empleo desactivadas"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Servicios de medicina, salud y hospitales"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Se habilitaron los servicios de medicina, salud y hospitales."</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Se inhabilitaron los servicios de medicina, salud y hospitales."</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Noticias de tecnología"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Noticias de tecnología desactivadas"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Noticias de tecnología activadas"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Varias categorías"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Varias categorías activadas"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Varias categorías desactivadas"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Utilizar sólo redes 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Ahorra batería"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sistema seleccionado"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Cambiar el modo itinerancia CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sistema seleccionado"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Página principal solamente"</item>
+    <item msgid="1205664026446156265">"Automático"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Suscripción CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Cambiar entre RUIM/SIM y NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"suscripción"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activar dispositivo"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurar servicio de datos"</string>
+    <string name="fdn" msgid="7878832555095183202">"Números de marc. fijos"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Lista de NMF"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activación de NMF"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Los números de marcación fija están activados"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Los números de marcación fija (NMF) están desactivados"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Activar NMF"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Desactivar NMF"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Cambiar PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Desactivar NMF"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Activar NMF"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Administrar números de marcación fija"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Cambiar PIN para acceso de NMF"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Administrar lista de números de teléfono"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacidad de voz"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activar modo de privacidad mejorada"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Modo TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Establecer modo de TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Reintento automático"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Activar el modo de reintento automático"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Agregar contacto"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Editar contacto"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Eliminar contacto"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Ingresar el PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nombre"</string>
+    <string name="number" msgid="7905950798349903858">"Número"</string>
+    <string name="save" msgid="4094274636321939086">"Guardar"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Agregar número de marcación fija"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Agregando número de marcación fija..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Número de marcación fija agregado"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar número de marcación fija"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Actualizando número de marcación fija..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Número de marcación fija actualizado"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Eliminar número de marcación fija"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Eliminando número de marcación fija..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Número de marcación fija eliminado"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"No se actualizó el FDN porque ingresaste un PIN incorrecto."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"No se actualizó el FDN porque el número no puede superar los 20 dígitos."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"No se actualizó el FDN. El PIN2 era incorrecto o se rechazó el número de teléfono."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Leyendo la tarjeta SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"No hay contactos en tu tarjeta SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Seleccionar contactos para importar"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Para importar contactos de la tarjeta SIM, desactiva primero el modo avión."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Activar/desactivar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Cambiar PIN de tarjeta SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN de tarjeta SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN anterior"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN nuevo"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmar PIN nuevo"</string>
+    <string name="badPin" msgid="8955102849303984935">"El antiguo PIN que ingresaste es incorrecto. Vuelve a intentarlo."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Los PIN que ingresaste no coinciden. Vuelve a intentarlo."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Escribe un PIN que tenga de 4 a 8 números."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Desactivar PIN de tarjeta SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Activar PIN de tarjeta SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Espera, por favor..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Se activó el código PIN de la tarjeta SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Se desactivó el PIN de la tarjeta SIM."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"El PIN que ingresaste era incorrecto."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"El PIN de la tarjeta SIM se modificó correctamente."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Contraseña incorrecta. La tarjeta SIM está bloqueada. Se solicitó PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Reenviar cuando está ocupado"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 nuevo"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmar PIN2 nuevo"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"El PUK2 que ingresaste es incorrecto. Vuelve a intentarlo."</string>
+    <string name="badPin2" msgid="1041576234483629991">"El antiguo PIN2 que ingresaste es incorrecto. Vuelve a intentarlo."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Los PIN2 que ingresaste no coinciden. Vuelve a intentarlo."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Escribe un PIN2 que tenga de 4 a 8 números."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Escribe un PUK2 de 8 cifras."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"El PIN2 se modificó correctamente."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Escribir código PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Contraseña incorrecta. Cambia el PIN2 y vuelve a intentarlo."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Contraseña incorrecta, se bloqueó la tarjeta SIM. Se solicita el PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Finalizado"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Llamada en conferencia <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Núm. de correo de voz"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Marcando"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Intentando nuevamente"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Llamada en conferencia"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Llamada entrante"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Llamada finalizada"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Colgando"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"En llamada"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mi número es <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Marcando"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Llamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Llamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Se perdieron las llamadas de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Llamada en curso"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"En espera"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Llamada entrante"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Correo de voz nuevo"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Correo de voz nuevo (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número de correo de voz desconocido"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Sin servicio"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"La red seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no está disponible"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Colgar"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Devolver llamada"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mensaje"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Para realizar una llamada, primero debes desactivar el modo avión."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"No registrado en la red."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"La red móvil no está disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Llamada no enviada. No se ingresó un número válido."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Llamada no enviada."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Iniciar la secuencia de MMI"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Servicio no admitido."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"No es posible cambiar llamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"No es posible separar la llamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"No es posible transferir la llamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No es posible realizar llamadas en conferencia."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"No es posible rechazar la llamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"No es posible publicar la(s) llamada(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"llamada por Internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Encendiendo radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Área fuera de servicio. Intentando nuevamente..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"No se realizó la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"No se realizó la llamada. Marca un número de emergencia."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizar teclado para marcar"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Retener"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Finalizar"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Teclado telefónico"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Silenciar"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Agreg. Llam."</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Combinar llamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Cambiar"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Administrar llamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Administ conferencia"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videollamada"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importar"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todo"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importando contactos SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar desde contactos"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Ayudas auditivas"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activar compatibilidad de ayuda auditiva"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY desactivado"</item>
+    <item msgid="3971695875449640648">"TTY total"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tonos DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Establecer la longitud de los tonos de DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Largo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mensaje de red"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activar tu teléfono"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Es necesario realizar una llamada especial para activar tu servicio de teléfono."\n\n"Luego de presionar \"Activar\", escucha las instrucciones suministradas para activar tu teléfono."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"¿Deseas omitir la activación?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Si omites la activación, no puedes colocar llamadas o conectarte con redes móviles de datos (a pesar de que te puedes conectar a redes de Wi-Fi). Hasta que actives tu teléfono, se te solicitará que lo actives cada vez que lo enciendas."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omitir"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activar"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Se activó el teléfono."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema con la activación"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Sigue las instrucciones habladas hasta que escuches que la activación se completó."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Altavoces"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Aguarda mientras se programa el teléfono."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programación incorrecta"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Ahora tu teléfono se encuentra activado. Puede tomar hasta unos 15 minutos para que comience el servicio."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"No se activó tu teléfono. "\n"Puede que tengas que trasladarte hasta un área con mejor cobertura (cerca de una ventana o afuera). "\n\n"Vuelve a intentarlo o llama al servicio de atención al cliente para más opciones."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ERROR EN SPC EN EXCESO"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Atrás"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Vuelve a intentarlo"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Siguiente"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Modo de devolución de llamada de emergencia ingresado"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de devolución de llamada de emergencia"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"La conexión de datos se ha desactivado"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Sin conexión de datos por <xliff:g id="COUNT">%s</xliff:g> minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Sin conexión de datos por <xliff:g id="COUNT">%s</xliff:g> minutos"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"El teléfono permanecerá en el modo de llamada de retorno de emergencia <xliff:g id="COUNT">%s</xliff:g> minuto. Mientras el teléfono se encuentre en este modo, no se podrá usar ninguna aplicación que requiera de una conexión de datos. ¿Deseas salir ahora?"</item>
+    <item quantity="other" msgid="8617116564023933114">"El teléfono permanecerá en el modo de llamada de retorno de emergencia <xliff:g id="COUNT">%s</xliff:g> minutos. Mientras el teléfono se encuentre en este modo, no se podrá usar ninguna aplicación que requiera de una conexión de datos. ¿Deseas salir ahora?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"La acción seleccionada no está disponible cuando el teléfono se encuentra en el modo de llamada de retorno de emergencia. El teléfono permanecerá en este modo <xliff:g id="COUNT">%s</xliff:g> minuto. ¿Deseas salir ahora?"</item>
+    <item quantity="other" msgid="6115622137771382224">"La acción seleccionada no está disponible cuando el teléfono se encuentra en el modo de llamada de retorno de emergencia. El teléfono permanecerá en este modo <xliff:g id="COUNT">%s</xliff:g> minutos. ¿Deseas salir ahora?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"La acción seleccionada no está disponible durante una llamada de emergencia."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saliendo del modo de llamada de retorno de emergencia"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sí"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Descartar"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Servicio"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Sin configurar&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Otras configuraciones de llamada"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto de contacto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"pasar a modo privado"</string>
+    <string name="selectContact" msgid="781975788478987237">"seleccionar contacto"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Configuraciones de llamada de Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Cuentas para llamadas por Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Cuentas"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Recibir llamadas entrantes"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduce la vida útil de la batería"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Usar la llamada por Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Usar la llamada por Internet (sólo Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Para todas las llamadas cuando la red de datos esté disponible"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Sólo para llamadas por Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Preguntar para cada llamada"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Para todas las llamadas"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Haz una llamada"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Usa la cuenta de llamadas por Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Usar siempre para realizar llamadas por Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Para cambiar la cuenta de llamadas por Internet predeterminada, ve a Teléfono &gt; Configuración &gt; Configuraciones de llamada de Internet &gt; Cuentas."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Llamada de teléfono celular"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"llamada por Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Sin cuenta de llamadas por Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"No se encuentran cuentas de llamadas por Internet en este teléfono. ¿Deseas agregar una ahora?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Agregar"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Agregar cuenta"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Eliminar cuenta"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Cuentas SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Guardando la cuenta…"</string>
+    <string name="removing_account" msgid="7183999896088628100">"Eliminando la cuenta…"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Guardar"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Descartar"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Cerrar el perfil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Aceptar"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Cerrar"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Cuenta principal. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Comprobando el estado..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrando…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Intento en curso..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"No se están recibiendo llamadas."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Se detuvo el registro de cuenta porque no hay conexión a Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Se detuvo el registro de la cuenta porque no hay conexión Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"La cuenta no se registró correctamente."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Recibiendo llamadas."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"La cuenta no se registró correctamente: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se intentará de nuevo más adelante."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"La cuenta no se registró correctamente: contraseña o nombre de usuario incorrectos."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"La cuenta no se registró correctamente: verifica el nombre del servidor."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"La aplicación <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> está usando esta cuenta en este momento."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalles de la cuenta SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalles de la cuenta SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Servidor"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nombre de usuario"</string>
+    <string name="password_title" msgid="3323555249068171531">"Contraseña"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Mostrar el nombre"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Dirección proxy saliente"</string>
+    <string name="port_title" msgid="5952939408078626657">"Número de puerto"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipo de transporte"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Enviar mantenimiento de conexión"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Definir como cuenta principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilizado para llamadas salientes"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Configuración opcional"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Autenticación de usuario"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nombre de usuario utilizado para la autenticación"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;No establecido&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Igual que el nombre de usuario&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tocar para mostrar todo"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽Tocar para ocultar todo"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y  no puede quedar en blanco."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"El número de puerto debe estar dentro de 1000 y 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"No hay conexión a Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"No hay conexión Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Para realizar una llamada por Internet, primero verifica tu conexión a Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Tienes que conectarte a una red Wi-Fi para realizar y recibir llamadas por Internet (usa la configuración de Conexiones inalámbricas y redes)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"No admite llamadas por Internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automático"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Enviar mensajes siempre"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"No admite llamadas de voz."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"No puedo hablar ahora. ¿Qué pasa?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo enseguida."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te llamo más tarde."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"No puedo hablar ahora. ¿Me llamas más tarde?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Escribe tu propia respuesta..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respuestas rápidas"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respuestas rápidas"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Respuesta rápida"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Restablecer aplic. predeterm."</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensaje enviado a <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"uno"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dos"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tres"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"cuatro"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinco"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seis"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"siete"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"ocho"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nueve"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"estrella"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"cero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"numeral"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"marcar"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"retroceso"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Altavoz habilitado"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Llamada silenciada"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Responder"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Enviar un mensaje SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Rechazar"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonido"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Tono del dispositivo"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar al sonar"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tonos táctiles del teclado de marcado"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Completar automáticamente con teclado"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
new file mode 100644
index 0000000..e975363
--- /dev/null
+++ b/res/values-es/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Datos móviles"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Teléfono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Llamada de emergencia"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Teléfono"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Lista de FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Desconocido"</string>
+    <string name="private_num" msgid="6713286113000232309">"Número privado"</string>
+    <string name="payphone" msgid="1931775086311769314">"Teléfono público"</string>
+    <string name="onHold" msgid="9035493194749959955">"En espera"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Línea ocupada"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Red ocupada"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"No hay respuesta; se ha agotado el tiempo de espera."</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"No se puede establecer conexión con el servidor."</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"No se puede establecer la llamada."</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Contraseña o nombre de usuario incorrectos"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Llamada desde fuera de la red"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Error del servidor, inténtalo de nuevo más tarde."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"No hay señal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Se ha superado el límite de ACM."</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Señal móvil desactivada"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"No hay tarjeta SIM o se ha producido un error relacionado con la misma."</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Área fuera de servicio"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Las llamadas salientes están restringidas por FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"No se pueden realizar llamadas mientras esté activada la restricción de llamadas."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Todas las llamadas están limitadas por el control de acceso."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Las llamadas de emergencia están limitadas por el control de acceso."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Las llamadas normales están limitadas por el control de acceso."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Número no válido"</string>
+    <string name="confCall" msgid="1904840547188336828">"Conferencia telefónica"</string>
+    <string name="call_lost" msgid="317670617901479594">"La llamada se ha perdido."</string>
+    <string name="ok" msgid="3811371167865772377">"Aceptar"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"El código MMI se ha iniciado."</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Código USSD en ejecución..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"El código MMI se ha cancelado."</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
+    <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%d</xliff:g> y <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Inténtalo de nuevo."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altavoz"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Auricular"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Auriculares"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"¿Quieres enviar los siguientes tonos?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Enviando tonos"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sí"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Sustituir el carácter comodín por"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Falta el número del buzón de voz."</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"No se ha almacenado ningún número de buzón de voz en la tarjeta SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Añadir número"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"La tarjeta SIM se ha desbloqueado. El teléfono se está desbloqueando..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN de desbloqueo de red de tarjeta SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloquear"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Descartar"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando desbloqueo de red..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"La solicitud de desbloqueo de red no se ha realizado correctamente."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"El desbloqueo de red se ha realizado correctamente."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Ajustes de llamadas GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Ajustes de llamadas CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"APN"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Configuración de red"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Buzón de voz"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Buzón de voz:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operadores de red"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Ajustes de llamadas"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Configuración adicional de llamadas solo GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Configuración adicional de llamadas CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Configuración adicional de llamadas solo CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Configuración del servicio de red"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID de emisor"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Cargando ajustes…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Número oculto en llamadas salientes"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Número mostrado en llamadas salientes"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizar la configuración de operador predeterminada para mostrar mi número en las llamadas salientes"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Llamada en espera"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Notificarme de llamadas entrantes durante una llamada"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Notificarme de las llamadas entrantes durante las llamadas"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Ajustes de desvío de llamada"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Desvío de llamada"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Siempre"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Utilizar siempre este número"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Desviar todas las llamadas"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Desviando todas las llamadas a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Número no disponible"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Inhabilitado"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Línea ocupada"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Número cuando la línea esté ocupada"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Desviando a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Inhabilitado"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Tu operador no permite inhabilitar el desvío de llamadas si el teléfono está ocupado."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Llamada sin respuesta"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Número cuando no se responde la llamada"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Desviando a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Inhabilitado"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Tu operador no permite inhabilitar el desvío de llamadas si el teléfono no responde."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"No se establece la llamada"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Número cuando no se puede establecer la llamada"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Desviando a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Inhabilitado"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Tu operador no permite inhabilitar el desvío de llamadas si no se puede establecer la llamada."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Ajustes de llamadas"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Error de configuración de llamada"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Leyendo configuración..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Actualizando configuración..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Restableciendo configuración…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Respuesta inesperada de la red"</string>
+    <string name="exception_error" msgid="7027667130619518211">"Error en la tarjeta SIM o en la red."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"La opción de marcación fija de la aplicación Teléfono está activada. Por ello, algunas funciones relacionadas con las llamadas no funcionan correctamente."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Para ver esta configuración, debes activar la señal móvil."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Aceptar"</string>
+    <string name="enable" msgid="1059008390636773574">"Habilitar"</string>
+    <string name="disable" msgid="7274240979164762320">"Inhabilitar"</string>
+    <string name="change_num" msgid="239476305819844391">"Actualizar"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Valor predeterminado de red"</item>
+    <item msgid="7876195870037833661">"Ocultar número"</item>
+    <item msgid="1108394741608734023">"Mostrar número"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"El número del buzón de voz se ha cambiado."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"No se ha podido cambiar el número del buzón de voz."\n"Ponte en contacto con tu operador si el problema persiste."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"No se ha podido cambiar el número de desvío."\n"Ponte en contacto con tu operador si el problema persiste."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"No se ha podido recuperar y guardar la configuración del número de desvío actual."\n"¿Quieres cambiar al nuevo proveedor de todos modos?"</string>
+    <string name="no_change" msgid="3186040086622435212">"No se ha realizado ningún cambio."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Seleccionar servicio de buzón de voz"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mi operador"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Configuración de red móvil"</string>
+    <string name="label_available" msgid="1181658289009300430">"Redes disponibles"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Buscando..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"No se ha encontrado ninguna red."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Buscar redes"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Se ha producido un error al buscar redes."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrándose en <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"La tarjeta SIM no permite establecer conexión con esta red."</string>
+    <string name="connect_later" msgid="2308119155752343975">"No se puede conectar a la red en este momento. Inténtalo de nuevo más tarde."</string>
+    <string name="registration_done" msgid="495135664535876612">"Conexión con la red establecida"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Seleccionar un operador de red"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Buscar todas las redes disponibles"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Seleccionar automáticamente"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Seleccionar red preferida automáticamente"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registro automático..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Modo de red"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Cambiar el modo operativo de la red"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Preferencia de modo de red"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modo de red preferido: WCDMA preferido"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modo de red preferido: solo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modo de red preferido: solo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modo de red preferido: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferencia de modo de red: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferencia de modo de red: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modo de red preferido: solo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modo de red preferida: solo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Modo de red preferido: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Modo de red preferido: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Modo de red preferido: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Modo de red preferido: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Modo de red preferido: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Solo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA sin EvDo"</item>
+    <item msgid="4341433122263841224">"Modo automático de CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA (modo automático)"</item>
+    <item msgid="7913148405605373434">"Solo WCDMA"</item>
+    <item msgid="1524224863879435516">"Solo GSM"</item>
+    <item msgid="3817924849415716259">"Preferencia de GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Habilitar datos"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Permitir el acceso a los datos a través de la red móvil"</string>
+    <string name="roaming" msgid="8871412572928323707">"Itinerancia de datos"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Establecer conexión con servicios de datos en itinerancia"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Establecer conexión con servicios de datos en itinerancia"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Has perdido la conectividad de datos porque has dejado desactivada la itinerancia de datos de tu red doméstica."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"¿Permitir itinerancia de datos? Los costes de itinerancia que deberás asumir pueden ser significativos."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opciones GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opciones de CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Uso de datos"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Datos del período actual"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Período uso datos"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Política velocidad datos"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Más información"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Máx de <xliff:g id="USED_0">%1$s</xliff:g> superado."\n"Frec datos reducida a <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>% del ciclo transcurrido."\n"Próx período en <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Frec datos se reduce a <xliff:g id="USED">%1$d</xliff:g> Kb/s si se supera límite uso datos"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Más información sobre política de uso de datos móviles de tu operador"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de difusión móvil"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS de difusión móvil"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS de difusión móvil habilitado"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS de difusión móvil inhabilitado"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Configuración de SMS de difusión móvil"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusión de emergencia"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusión de emergencia habilitada"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusión de emergencia inhabilitada"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Servicios administrativos"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Servicios administrativos habilitados"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Servicios administrativos habilitados"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Mantenimiento"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Mantenimiento habilitado"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Mantenimiento inhabilitado"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Noticias generales"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Noticias financieras y comerciales"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Noticias deportivas"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Noticias de entretenimiento"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Noticias locales habilitadas"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Noticias locales inhabilitadas"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Noticias regionales habilitadas"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Noticias regionales inhabilitadas"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Noticias nacionales habilitadas"</string>
+    <string name="national_disable" msgid="326018148178601166">"Noticias nacionales inhabilitadas"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internacional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Noticias internacionales habilitadas"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Noticias internacionales inhabilitadas"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Idioma"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Seleccionar el idioma de las noticias"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglés"</item>
+    <item msgid="1151988412809572526">"Francés"</item>
+    <item msgid="577840534704312665">"Español"</item>
+    <item msgid="8385712091143148180">"Japonés"</item>
+    <item msgid="1858401628368130638">"Coreano"</item>
+    <item msgid="1933212028684529632">"Chino"</item>
+    <item msgid="1908428006803639064">"Hebreo"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Idiomas"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Información meteorológica local"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Información meteorológica local habilitada"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Información meteorológica habilitada"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Informes de tráfico de área"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Informes de tráfico de área habilitados"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Informes de tráfico de área inhabilitados"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Horarios de vuelos del aeropuerto local"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Horarios de vuelos del aeropuerto local habilitados"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Horarios de vuelos del aeropuerto local inhabilitados"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurantes"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurantes habilitados"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurantes inhabilitados"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Alojamientos"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Alojamientos habilitados"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Alojamientos inhabilitados"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Directorio de comercios"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Directorio de comercios habilitado"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Directorio de comercios inhabilitado"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anuncios"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anuncios habilitados"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anuncios inhabilitados"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotizaciones en bolsa"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotizaciones en bolsa habilitadas"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotizaciones en bolsa inhabilitadas"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunidades de empleo"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunidades de empleo habilitadas"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunidades de empleo inhabilitadas"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Servicios médicos, sanitarios y hospitalarios"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Servicios médicos, sanitarios y hospitalarios habilitados"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Servicios médicos, sanitarios y hospitalarios inhabilitados"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Noticias tecnológicas"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Noticias tecnológicas habilitadas"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Noticias tecnológicas inhabilitadas"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Categoría múltiple"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Categoría múltiple habilitada"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Categoría múltiple inhabilitada"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Utilizar solo redes 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Ahorrar batería"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selección de sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Cambiar modo de itinerancia CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selección de sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Solo sistema doméstico"</item>
+    <item msgid="1205664026446156265">"Automático"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Suscripción CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Cambiar entre RUIM/SIM y NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"suscripción"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activar dispositivo"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurar servicio de datos"</string>
+    <string name="fdn" msgid="7878832555095183202">"Marcación fija"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Lista de FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activación de FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Los números de marcación fija están habilitados"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Los números de marcación fija están inhabilitados"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Habilitar FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Inhabilitar FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Cambiar PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Inhabilitar FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Habilitar FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Administrar números de marcación fija"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Cambiar PIN para acceso de FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Administrar lista de números de teléfono"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacidad de voz"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Habilitar modo de privacidad mejorado"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Modo TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Establecer modo TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Reintento automático"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Habilitar modo de reintento automático"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Añadir contacto"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Editar contacto"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Eliminar contacto"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Introducir código PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nombre"</string>
+    <string name="number" msgid="7905950798349903858">"Número"</string>
+    <string name="save" msgid="4094274636321939086">"Guardar"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Añadir número de marcación fija"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Añadiendo número de marcación fija..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Se ha añadido el número de marcación fija."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar número de marcación fija"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Actualizando número de marcación fija..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Se ha actualizado el número de marcación fija."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Eliminar número de marcación fija"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Eliminando número de marcación fija..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Se ha eliminado el número de marcación fija."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"No se ha actualizado FDN porque el código PIN que has introducido es incorrecto."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"No se ha actualizado FDN porque el número no puede superar los 20 dígitos."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN no actualizado. El código PIN2 era incorrecto o se ha rechazado el número de teléfono."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Leyendo desde tarjeta SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"No hay ningún contacto en la tarjeta SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Seleccionar contactos para importar"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Para importar contactos de la tarjeta SIM, desactiva el modo avión."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Habilitar/inhabilitar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Cambiar PIN de tarjeta SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN de tarjeta SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN antiguo"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN nuevo"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmar PIN nuevo"</string>
+    <string name="badPin" msgid="8955102849303984935">"El código PIN antiguo que has introducido no es correcto. Inténtalo de nuevo."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"El código PIN que has introducido no coincide. Inténtalo de nuevo."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Introduce un código PIN con una longitud comprendida entre cuatro y ocho dígitos."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Inhabilitar PIN de tarjeta SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Habilitar PIN de tarjeta SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Por favor, espera..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Se ha habilitado el código PIN de la tarjeta SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"El código PIN de la tarjeta SIM está inhabilitado."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"El código PIN que has introducido era incorrecto."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"El código PIN de la tarjeta SIM se ha cambiado correctamente."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Contraseña incorrecta; la tarjeta SIM está bloqueada. Se ha solicitado el código PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 antiguo"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 nuevo"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmar PIN2 nuevo"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"El código PUK2 que has introducido no es correcto. Inténtalo de nuevo."</string>
+    <string name="badPin2" msgid="1041576234483629991">"El código PIN2 antiguo que has introducido no es correcto. Inténtalo de nuevo."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"El código PIN2s que has introducido no coincide. Inténtalo de nuevo."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Introduce un código PIN2 con una longitud comprendida entre cuatro y ocho dígitos."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Introduce un código PUK2 con una longitud de 8 dígitos."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"El código PIN2 se ha cambiado correctamente."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Introducir código PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Contraseña incorrecta. Cambia el código PIN2 y vuelve a intentarlo."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Contraseña incorrecta; la tarjeta SIM está bloqueada. Se ha solicitado el código PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Listo"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Conferencia telefónica<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número del buzón de voz"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Llamando"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Reintentando"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Conferencia telefónica"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Llamada entrante"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Llamada finalizada"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"En espera"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Colgando"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Llamada entrante"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mi número es <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Llamando..."</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Llamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Llamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> llamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Llamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Llamada en curso"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"En espera"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Llamada entrante"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nuevo mensaje de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Buzón de voz nuevo (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número del buzón de voz desconocido"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Sin servicio"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"La red seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no está disponible."</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Colgar"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Llamar"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mensaje"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Para realizar una llamada, primero debes desactivar el modo avión."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"No se ha podido conectar a la red"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"La red móvil no está disponible."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"No se ha realizado la llamada; el número introducido no es válido."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"La llamada no se ha enviado."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Iniciando secuencia MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Servicio no admitido"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"No se ha podido cambiar de llamada."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"No se ha podido desvincular la llamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"No se ha podido transferir la llamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No se ha podido realizar la conferencia telefónica."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"No se ha podido rechazar la llamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"No es posible finalizar las llamadas activas."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Llamada por Internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando señal móvil…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Área fuera de servicio; reintentando..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"No se ha enviado la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"La llamada no se ha enviado. Marca un número de emergencia."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizar teclado para marcar"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Retener"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Finalizar"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Silenciar"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Añadir llamada"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Llamada a tres"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Cambiar"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Administrar llamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Administrar conferencia"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videollamada"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importar"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todos"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importando contactos de tarjeta SIM..."</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar de contactos"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Audífonos"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activar compatibilidad con audífono"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY desactivado"</item>
+    <item msgid="3971695875449640648">"Modo TTY completo"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tonos DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Establecer la longitud de los tonos DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Largo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mensaje de red"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activar tu teléfono"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Es necesario realizar una llamada especial para activar el servicio telefónico. "\n\n"Tras pulsar \"Activar\", escucha las instrucciones sobre cómo activar el teléfono."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"¿Quieres omitir la activación?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Si omites la activación, no podrás realizar llamadas ni conectarte a las redes de datos móviles (aunque sí podrás conectarte a las redes Wi-Fi). Se te pedirá que actives el teléfono cada vez que lo enciendas hasta que realices la activación."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omitir"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activar"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"El teléfono está activado."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema con la activación"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Sigue las instrucciones habladas hasta que escuches que la activación se ha completado."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Altavoz"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Espera mientras se programa tu teléfono."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programación incorrecta"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Tu teléfono ya está activado. El servicio puede tardar un máximo de 15 minutos en iniciarse."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"El teléfono no se ha activado. "\n"Es posible que tengas que situarte en una zona con más cobertura (cerca de una ventana o en el exterior). "\n\n"Inténtalo de nuevo o ponte en contacto con el servicio de atención al cliente para consultar otras opciones."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESO DE ERRORES DE SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Atrás"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Volver a intentarlo"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Siguiente"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Se ha activado el modo de devolución de llamada de emergencia."</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de devolución de llamada de emergencia"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexión de datos inhabilitada"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Ninguna conexión de datos durante <xliff:g id="COUNT">%s</xliff:g> minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Ninguna conexión de datos durante <xliff:g id="COUNT">%s</xliff:g> minutos"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"El teléfono permanecerá en el modo de devolución de llamada de emergencia durante <xliff:g id="COUNT">%s</xliff:g> minuto. Durante este tiempo, no se podrán usar las aplicaciones que utilicen una conexión de datos. ¿Quieres salir ahora?"</item>
+    <item quantity="other" msgid="8617116564023933114">"El teléfono permanecerá en el modo de devolución de llamada durante <xliff:g id="COUNT">%s</xliff:g> minutos. Durante este tiempo, no se podrán usar las aplicaciones que utilicen una conexión de datos. ¿Quieres salir ahora?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"La acción seleccionada no está disponible durante el modo de devolución de llamada de emergencia. El teléfono permanecerá en este modo durante <xliff:g id="COUNT">%s</xliff:g> minutos. ¿Quieres salir ahora?"</item>
+    <item quantity="other" msgid="6115622137771382224">"La acción seleccionada no está disponible en el modo de devolución de llamada de emergencia. El teléfono permanecerá en este modo durante <xliff:g id="COUNT">%s</xliff:g> minutos. ¿Quieres salir ahora?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"La acción seleccionada no está disponible durante una llamada de emergencia."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saliendo del modo de devolución de llamada de emergencia"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sí"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Descartar"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Servicio"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;No definido&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Otras opciones de llamada"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto de contacto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"llamada privada"</string>
+    <string name="selectContact" msgid="781975788478987237">"seleccionar contacto"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Ajustes de llamada por Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Cuentas (SIP) de llamadas por Internet"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Cuentas"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Recibir llamadas"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduce la duración de la batería"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Llamadas por Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Llamadas por Internet (Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Para todas las llamadas cuando haya redes de datos disponibles"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Solo llamadas Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Preguntar cada vez"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"En todas las llamadas"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Llamadas"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Usar cuenta de llamada por Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Usar siempre para realizar llamadas de Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Para cambiar la cuenta de llamadas por Internet que quieres usar de forma predeterminada, accede a Teléfono &gt; Ajustes &gt; Ajustes de llamada por Internet &gt; Cuentas."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Llamada de teléfono móvil"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Llamada de Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Sin cuentas de llamada por Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"No hay cuentas de llamadas por Internet en este teléfono. ¿Quieres añadir una cuenta ahora?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Añadir"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Añadir cuenta"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Eliminar cuenta"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Cuentas SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Guardando la cuenta..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Eliminando la cuenta..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Guardar"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Descartar"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Cerrar el perfil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Aceptar"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Cerrar"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Cuenta principal (<xliff:g id="REGISTRATION_STATUS">%s</xliff:g>)"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Comprobando estado..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrando..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Seguimos intentándolo..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Sin recepción de llamadas"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Se ha detenido el registro de cuenta porque no hay conexión a Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Se ha detenido el registro de cuenta porque no hay conexión Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registro de cuenta incorrecto"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Recibiendo llamadas"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Error al registrar la cuenta: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); inténtalo de nuevo más tarde."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registro de cuenta incorrecto: nombre de usuario o contraseña incorrectos."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Error al registrar la cuenta: comprueba el nombre del servidor."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"La aplicación <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> está utilizando esta cuenta en este momento."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalles de cuenta SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalles de cuenta SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Servidor"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nombre de usuario"</string>
+    <string name="password_title" msgid="3323555249068171531">"Contraseña"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Mostrar nombre"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Dirección proxy saliente"</string>
+    <string name="port_title" msgid="5952939408078626657">"Número de puerto"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipo de transporte"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Enviar señal conexión"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Establecer como principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Se utiliza para llamadas salientes."</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Ajustes opcionales"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nombre de usuario de autenticación"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nombre de usuario utilizado para la autenticación"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Sin definir&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Igual que el nombre de usuario&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tocar para mostrar todo"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Tocar para ocultar todo"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no se puede dejar en blanco."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"El número de puerto debe estar comprendido entre 1.000 y 65.534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Sin conexión a Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Sin conexión Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Para hacer una llamada por Internet, comprueba tu conexión a Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Para hacer llamadas por Internet, debes estar conectado a una red Wi-Fi (usa la opción Conexiones inalámbricas y redes)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"No se admiten llamadas por Internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automático"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Enviar siempre"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Llamadas de voz no admitidas"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"No puedo hablar. ¿Es importante?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo en cuanto pueda."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te llamo más tarde."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"No puedo hablar. Llámame luego."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Escribe tu propia respuesta..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respuestas rápidas"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respuestas rápidas"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Respuestas rápidas"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Restablecer aplicación"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensaje enviado a <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"uno"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dos"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tres"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"cuatro"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinco"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seis"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"siete"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"ocho"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nueve"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"estrella"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"cero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"libra"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"marcar"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"retroceder un espacio"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Altavoz habilitado"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Llamada silenciada"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Responder"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Rechazar"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonido"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Tono del teléfono"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar al sonar"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Sonar al marcar número"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autocompletar con teclado"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
+</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
new file mode 100644
index 0000000..6bea4a7
--- /dev/null
+++ b/res/values-et/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobiilne andmeside"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Hädaabikõne valija"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN-i loend"</string>
+    <string name="unknown" msgid="6878797917991465859">"Tundmatu"</string>
+    <string name="private_num" msgid="6713286113000232309">"Varjatud number"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefoniautomaat"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ootel"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Liin hõivatud"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Võrk hõivatud"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Vastust ei ole, aegunud"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server on kättesaamatu"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Number pole kättesaadav"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Vale kasutajanimi või parool"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Helistas väljastpoolt võrku"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Serveri viga. Proovige hiljem uuesti."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Signaal puudub"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-piir ületatud"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Raadioside väljas"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"SIM-kaart puudub või SIM-kaardi viga"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Teeninduspiirkonnast väljas"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Väljuvad kõned on piiratud FDN-iga."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Väljuvaid kõnesid ei saa teha, kui kõnepiirang on sisse lülitatud."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Kõiki kõnesid piiratakse juurdepääsu juhtimisega"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Hädaabikõned on piiratud juurdepääsu juhtimisega."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Tavakõned on piiratud juurdepääsu juhtimisega."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Vale number"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konverentskõne"</string>
+    <string name="call_lost" msgid="317670617901479594">"Kõne on katkenud."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-kood käivitus"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kood töötab ..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-kood tühistatud"</string>
+    <string name="cancel" msgid="5044513931633602634">"Tühista"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-sõnum peab jääma vahemikku <xliff:g id="MIN_LEN">%d</xliff:g> kuni <xliff:g id="MAX_LEN">%d</xliff:g> tähemärki. Proovige uuesti."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Konverentskõne haldamine"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Kõlar"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Käsitelefoni peatelefon"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Juhtmega peakomplekt"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Kas saata järgmised toonid?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Toonide saatmine"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Saada"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Jah"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ei"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Pane metamärgi asemele"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Puudub kõnepostinumber"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM-kaardile pole salvestatud ühtegi kõnepostinumbrit."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Lisa number"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Teie SIM-kaardi blokeering on tühistatud. Teie telefoni avamine ..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM-võrgu avamise PIN-kood"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Ava"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Loobu"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Võrgu avamise taotlemine ..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Võrgu avamise taotlus ebaõnnestus."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Võrgu avamine õnnestus."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-kõneseaded"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-kõneseaded"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Pääsupunktide nimed"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Võrguseaded"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Kõnepost"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"KP:"</string>
+    <string name="networks" msgid="8873030692174541976">"Võrguoperaatorid"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Kõneseaded"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Lisaseaded"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Täiendavad „ainult GSM” kõneseaded"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Täiendavad CDMA kõneseaded"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Täiendavad „ainult CDMA” kõneseaded"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Võrguteenuse seaded"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Helistaja ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Seadete laadimine ..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Number peidetud väljuvate kõnede puhul"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Number kuvatakse väljuvate kõnede puhul"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Kasuta väljuvates kõnedes minu numbri kuvamiseks operaatori vaikeseadeid"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Koputus"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Teavita mind kõne ajal sissetulevatest kõnedest"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Teavita mind kõne ajal sissetulevatest kõnedest"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Kõnesuunamise seaded"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Kõnede suunamine"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Suuna alati"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Kasuta alati seda numbrit"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Kõigi kõnede suunamine"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Kõigi kõnede edastamine numbrile <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Number ei ole kättesaadav"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Keelatud"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Suuna, kui on hõivatud"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Number, kui on hõivatud"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Edastamine numbrile <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Keelatud"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Teie operaator ei toeta kõneedastuse keelamist, kui teie telefon on hõivatud."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Suuna, kui ei vasta"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Number, kui ei vastata"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Edastamine numbrile <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Keelatud"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Teie operaator ei toeta kõneedastuse keelamist, kui teie telefon ei vasta."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Suuna, kui pole kättesaadav"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Number, kui pole kättesaadav"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Edastamine numbrile <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Keelatud"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Teie operaator ei toeta kõneedastuse keelamist, kui teie telefon on levist väljas."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Kõneseaded"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Kõneseadete viga"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Seadete lugemine ..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Seadete värskendamine ..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Seadete ennistamine…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Ootamatu vastus võrgust."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Võrgu või SIM-kaardi viga."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Telefoni rakenduse Fikseeritud numbrite valimine seaded on sisse lülitatud. Selle tulemusena ei tööta kõik kõnega seotud funktsioonid."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Enne nende seadete vaatamist lülitage raadio sisse."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Luba"</string>
+    <string name="disable" msgid="7274240979164762320">"Keela"</string>
+    <string name="change_num" msgid="239476305819844391">"Värskenda"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Vaikevõrk"</item>
+    <item msgid="7876195870037833661">"Peida number"</item>
+    <item msgid="1108394741608734023">"Näita numbrit"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Kõnepostinumber muutunud."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Kõneposti numbrit ei saanud muuta."\n"Kui probleem ei kao, võtke ühendust operaatoriga."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Kõneedastuse numbrit ei saanud muuta."\n"Kui probleem ei kao, võtke ühendust operaatoriga."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Praeguste edastusnumbri seadete toomine ja salvestamine ebaõnnestus."\n"Kas soovite siiski uuele teenusepakkujale ümber lülituda?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Muudatusi ei tehtud."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Valige kõnepostiteenus"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Minu operaator"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobiilsidevõrgu seaded"</string>
+    <string name="label_available" msgid="1181658289009300430">"Saadaolevad võrgud"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Otsimine ..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Võrke ei leitud."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Otsi võrke"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Viga võrkude otsimisel."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registreerimine võrku <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Teie SIM-kaart ei võimalda ühendust selle võrguga."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Võrguga ei saa praegu ühendust. Proovige hiljem uuesti."</string>
+    <string name="registration_done" msgid="495135664535876612">"Võrku registreeritud."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Võrguoperaatori valimine"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Otsi kõiki saadaolevaid võrke"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Vali automaatselt"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Vali automaatselt eelistatud võrk"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automaatne registreerimine ..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Võrgurežiim"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Muuda võrgu töörežiimi"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Eelistatud võrgurežiim"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Eelistatud võrgurežiim: eelistatud WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Eelistatud võrgurežiim: ainult GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Eelistatud võrgurežiim: ainult WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Eelistatud võrgurežiim: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Eelistatud võrgurežiim: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Eelistatud võrgurežiim: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Eelistatud võrgurežiim: ainult CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Eelistatud võrgurežiim: ainult EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Eelistatud võrgurežiim: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Eelistatud võrgurežiim: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Eelistatud võrgurežiim: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Eelistatud võrgurežiim: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Eelistatud võrgurežiim: globaalne"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Eelistatud võrgurežiim: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globaalne"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Ainult EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA ilma EvDo-ta"</item>
+    <item msgid="4341433122263841224">"Automaatne CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Automaatne GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Ainult WCDMA"</item>
+    <item msgid="1524224863879435516">"Ainult GSM"</item>
+    <item msgid="3817924849415716259">"Eelistatud GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Andmed lubatud"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Luba juurdepääs andmetele mobiilsidevõrgu kaudu"</string>
+    <string name="roaming" msgid="8871412572928323707">"Andmerändlus"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Ühenda rändluse ajal andmesideteenustega"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Ühenda rändluse ajal andmesideteenustega"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Andmesideühendus katkes, kuna lahkusite koduvõrgust ja andmerändlus oli välja lülitatud."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Kas lubada andmerändlus? Teilt võidakse küsida suuri rändlustasusid."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-i/UMTS-i valikud"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA valikud"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Andmete kasutus"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Praegusel perioodil kasutatud andmed"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Andmete kasutamise periood"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Andmeedastuskiiruse eeskirjad"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Lisateave"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) / <xliff:g id="USED_2">%3$s</xliff:g> maksimaalne periood"\n"Järgmine periood algab <xliff:g id="USED_3">%4$d</xliff:g> päeva pärast (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) / <xliff:g id="USED_2">%3$s</xliff:g> maksimaalsest perioodist"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimaalne ületatud"\n"Andmeedastuskiirus vähendatud määrale <xliff:g id="USED_1">%2$d</xliff:g> kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>?? tsüklist möödunud"\n"Järgmine periood algab <xliff:g id="USED_1">%2$d</xliff:g> päeva pärast (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Kui andmete kasutuslimiit on ületatud, vähendatakse andmeedastuskiirus <xliff:g id="USED">%1$d</xliff:g> kb/s"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Lisateave teie operaatori mobiilsidevõrgu andmete kasutuse eeskirjade kohta"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Kärjeteate-SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Kärjeteate-SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Kärjeteate-SMS-id lubatud"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Kärjeteate-SMS-id keelatud"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Kärjeteate-SMS-i seaded"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Hädaabiteated"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Hädaabiteated lubatud"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Hädaabiteated keelatud"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administreerimine"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administreerimine lubatud"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administreerimine keelatud"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Hooldus"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Hooldus lubatud"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Hooldus keelatud"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Üldised uudised"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Äri- ja finantsuudised"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Spordiuudised"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Meelelahutusuudised"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Kohalik"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Kohalikud uudised lubatud"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Kohalikud uudised keelatud"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Piirkondlik"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Piirkondlikud uudised lubatud"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Piirkondlikud uudised keelatud"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Riiklik"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Riiklikud uudised lubatud"</string>
+    <string name="national_disable" msgid="326018148178601166">"Riiklikud uudised keelatud"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Rahvusvaheline"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Rahvusvahelised uudised lubatud"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Rahvusvahelised uudised keelatud"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Keel"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Valige uudiste keel"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglise"</item>
+    <item msgid="1151988412809572526">"Prantsuse"</item>
+    <item msgid="577840534704312665">"Hispaania"</item>
+    <item msgid="8385712091143148180">"Jaapani"</item>
+    <item msgid="1858401628368130638">"Korea"</item>
+    <item msgid="1933212028684529632">"Hiina"</item>
+    <item msgid="1908428006803639064">"Heebrea"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Keeled"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Kohalik ilm"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Kohalik ilmateade lubatud"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Kohalik ilmateade keelatud"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Piirkonna liiklusteated"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Piirkonna liiklusteated lubatud"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Piirkonna liiklusteated keelatud"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Kohaliku lennujaama lennuplaanid"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Kohaliku lennujaama lennuplaanid lubatud"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Kohaliku lennujaama lennuplaanid keelatud"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restoranid"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restoranid lubatud"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restoranid keelatud"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Majutuskohad"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Majutuskohad lubatud"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Majutuskohad keelatud"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Jaemüügikataloog"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Jaemüügikataloog lubatud"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Jaemüügikataloog keelatud"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklaamid"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklaamid lubatud"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklaamid keelatud"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aktsiakursid"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aktsiakursid lubatud"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aktsiakursid keelatud"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Juurutusvõimalused"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Juurutusvõimalused lubatud"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Juurutusvõimalused keelatud"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Meditsiini-, tervishoiu- ja haiglateenused"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Meditsiini-, tervishoiu- ja haiglateenused on lubatud"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Meditsiini-, tervishoiu- ja haiglateenused on keelatud"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tehnoloogiauudised"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tehnoloogiauudised lubatud"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tehnoloogiauudised keelatud"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multikategooria"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multi-kategooria lubatud"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multikategooria keelatud"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Kasuta ainult 2G-võrke"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Säästab akut"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Süsteemi valik"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Muuda CDMA-rändlusrežiimi"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Süsteemi valik"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Ainult kodus"</item>
+    <item msgid="1205664026446156265">"Automaatne"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-tellimus"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM-i/SIM-i ja NV vahetamine"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"tellimus"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Seadme aktiveerimine"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Andmesideteenuse häälestamine"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fikseeritud valimisnumbrid"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN-i loend"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN-i aktiveerimine"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Fikseeritud valimisnumbrid on lubatud"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Fikseeritud valimisnumbrid on keelatud"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Luba FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Keela FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Muuda PIN2-koodi"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Keela FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Luba FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Fikseeritud valimisnumbrite haldamine"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Muuda FDN-juurdepääsuks PIN-koodi"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Telefoninumbrite loendi haldamine"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Häälvestluse privaatsus"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Luba täiendatud privaatsusrežiim"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-režiim"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Määra TTY-režiim"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automaatkatse"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Luba automaatkatse režiim"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Lisa kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Muuda kontakti"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Kustuta kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Sisestage PIN2-kood"</string>
+    <string name="name" msgid="7329028332786872378">"Nimi"</string>
+    <string name="number" msgid="7905950798349903858">"Number"</string>
+    <string name="save" msgid="4094274636321939086">"Salvesta"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Fikseeritud valimisnumbri lisamine"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Fikseeritud valimisnumbri lisamine…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Fikseeritud valimisnumber lisatud."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Fikseeritud valimisnumbri muutmine"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Fikseeritud valimisnumbri värskendamine…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Fikseeritud valimisnumber värskendatud."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Kustuta fikseeritud valimisnumber"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Fikseeritud valimisnumbri kustutamine…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Fikseeritud valimisnumber kustutatud."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN-i ei värskendatud, sest sisestasite vale PIN-koodi."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN-i ei värskendatud, sest number ei tohi olla pikem kui 20 kohta."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN-i ei värskendatud. PIN2 oli vale või lükati telefoninumber tagasi."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIM-kaardilt lugemine ..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Teie SIM-kaardil pole ühtegi kontakti."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Valige imporditavad kontaktid"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Kontaktide importimiseks SIM-kaardilt lülitage esmalt välja lennukirežiim."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM-i PIN-koodi lubamine/keelamine"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Muuda SIM-i PIN-koodi"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM-i PIN-kood"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Vana PIN-kood"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Uus PIN-kood"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Kinnitage uus PIN-kood"</string>
+    <string name="badPin" msgid="8955102849303984935">"Sisestatud vana PIN-kood ei ole õige. Proovige uuesti."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Sisestatud PIN-koodid ei sobi. Proovige uuesti."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Sisestage 4–8-numbriline PIN-kood."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Keela SIM-i PIN-kood"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Luba SIM-i PIN-kood"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Oodake ..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM-kaardi PIN-kood lubatud"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM-kaardi PIN-kood on keelatud."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Sisestasite vale PIN-koodi."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM-kaardi PIN-koodi muutmine õnnestus."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Parool on vale, SIM-kaart on lukus. Vajalik on PUK2-kood."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Vana PIN2-kood"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Uus PIN2-kood"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Kinnitage uus PIN2-kood"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Sisestatud PUK2-kood pole õige. Proovige uuesti."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Sisestatud vana PIN2-kood ei ole õige. Proovige uuesti."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Sisestatud PIN2-koodid ei sobi. Proovige uuesti."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Sisestage 4–8-numbriline PIN-kood."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Sisestage 8-numbriline PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2-koodi muutmine õnnestus."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Sisestage PUK2-kood"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Parool on vale. Muutke PIN2-koodi ja proovige uuesti."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Parool on vale, SIM-kaart on lukus. Sisestage PUK2-kood."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Valmis"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konverentskõne <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Kõnepostinumber"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Valimine"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Uuesti proovimine"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konverentskõne"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Sissetulev kõne"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Kõne lõppes"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ootel"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Lõpetamisel"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Kõne"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Minu number on <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Valimine"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Vastamata kõne"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Vastamata kõned"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastamata kõnet"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Vastamata kõne helistajalt <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Käimasolev kõne"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Ootel"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Sissetulev kõne"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Uus kõnepost"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Uus kõnepost (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Valige <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Kõneposti number teadmata"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Teenus puudub"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Valitud võrk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) pole saadaval"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Lõpeta kõne"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Helista tagasi"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Sõnum"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Helistamiseks lülitage lennurežiim välja."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ei ole võrku registreeritud."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobiilsidevõrk pole saadaval."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Kõnet ei tehtud, sisestati kehtetu number."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Kõnet ei tehtud."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-jada alustamine ..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Toetamata teenus."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Kõnesid ei saa vahetada."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Kõne ei saa eraldada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Kõne ei saa üle kanda."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konverentskõnesid ei saa teha."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Kõnest ei saa keelduda."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Kõne(sid) ei saa vabastada"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Interneti-kõne"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hädaabikõne"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Raadioside sisselülitamine ..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Teeninduspiirkonnast väljas, uuesti proovimine ..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Kõnet ei saadetud. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> pole hädaabinumber."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Kõnet ei edastatud, valige hädaabinumber."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Kasutage valimiseks klaviatuuri"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Pane ootele"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Lõpeta"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Numbriklahvistik"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Summuta"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Lisa kõne"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Ühenda kõned"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Vaheta"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Halda kõnesid"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Halda konverentsi"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Heli"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videokõne"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Impordi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Impordi kõik"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM-kaardi kontaktide importimine"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Impordi kontaktidest"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Kuuldeaparaadid"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Lülita kuuldeaparaadi ühilduvus sisse"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY väljas"</item>
+    <item msgid="3971695875449640648">"TTY on täis"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-toonid"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Määrake DTMF-toonide pikkus"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Tavaline"</item>
+    <item msgid="2883365539347850535">"Pikk"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Võrgusõnum"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Telefoni aktiveerimine"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Telefoniteenuse aktiveerimiseks peate valima konkreetse kõne. "\n\n"Pärast käsu “Aktiveeri“ puudutamist kuulake telefoni aktiveerimise juhiseid."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Jätan aktiveerimise vahele?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Aktiveerimise vahelejätmisel ei saa te kõnesid valida ega luua ühendust mobiilsete andmevõrkudega (kuid saate luua ühenduse WiFi-võrkudega). Telefoni aktiveerimisprotsessi ajal palutakse teil see aktiveerida iga kord, kui telefoni sisse lülitate."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Jäta vahele"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiveeri"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon on aktiveeritud."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Probleem aktiveerimisega"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Järgige hääljuhiseid, kuni kuulete, et aktiveerimine on lõpetatud."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Kõlar"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Oodake, kuni teie telefoni programmeeritakse."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmeerimine ebaõnnestus"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Teie telefon on nüüd aktiveeritud. Teenuse käivitumiseks võib kuluda kuni 15 minutit."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Teie telefoni ei aktiveeritud. "\n"Leidke parema leviga piirkond (akna lähedal või õues). "\n\n"Proovige uuesti või helistage klienditeenindusse."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"LIIGSED SPC NURJUMISED"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Tagasi"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Proovige uuesti"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Järgmine"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Sisenetud hädaolukorra tagasihelistusrežiimi"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Hädaolukorra tagasihelistusrežiim"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Andmeühendus keelatud"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Andmeühendus puudub <xliff:g id="COUNT">%s</xliff:g> minutiks"</item>
+    <item quantity="other" msgid="3122217344579273583">"Andmeühendus puudub <xliff:g id="COUNT">%s</xliff:g> minutiks"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT">%s</xliff:g> minut. Selles režiimis ei saa kasutada ühtegi andmesideühendusel põhinevat rakendust. Kas soovite kohe väljuda?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT">%s</xliff:g> minutit. Selles režiimis ei saa kasutada ühtegi andmesideühendust kasutavat rakendust. Kas soovite kohe väljuda?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Valitud toiming ei ole hädaolukorra tagasihelistusrežiimis saadaval. Telefon on selles režiimis <xliff:g id="COUNT">%s</xliff:g> minut. Kas soovite kohe väljuda?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Valitud toiming pole hädaolukorra tagasihelistusrežiimis kättesaadav. Telefon on selles režiimis <xliff:g id="COUNT">%s</xliff:g> minut. Kas soovite kohe väljuda?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Valitud toiming ei ole hädaabikõne ajal saadaval."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Väljumine hädaolukorra tagasihelistusrežiimist"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Jah"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ei"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Loobu"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Teenus"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Seadistus"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Määramata&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Muud kõneseaded"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontakti foto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"aktiveeri privaatrežiim"</string>
+    <string name="selectContact" msgid="781975788478987237">"vali kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Interneti-kõne seaded"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Interneti-kõne (SIP) kontod"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Kontod"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Sissetulevate kõnede vastuvõtmine"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Vähendab aku kestvust"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Kasuta Interneti-kõne"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Interneti-kõne kasutamine (ainult WiFi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Kõikide kõnede puhul, kui andmesidevõrk on saadaval"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Ainult Interneti-kõnede jaoks"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Küsi iga kõne puhul"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Kõikide kõnede jaoks"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Kõne valimine"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Kasuta Interneti-kõne kontot:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Kasuta alati Interneti-kõnede tegemiseks"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Vaikimisi kasutatava Interneti kõnekonto muutmiseks tehke järgmised valikud: Telefon &gt; Seaded &gt; Interneti-kõne seaded &gt; Kontod."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobiiltelefonikõne"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Interneti-kõne"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Interneti-kõnede kontot ei ole"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Selles telefonis pole ühtegi Interneti-kõne kontot. Kas soovite praegu ühe lisada?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Lisa"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Lisa konto"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Eemalda konto"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-kontod"</string>
+    <string name="saving_account" msgid="52903398217017954">"Konto salvestamine ..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Konto eemaldamine ..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Salvestamine"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Loobu"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Profiili sulgemine"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Sule"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Peamine konto. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Oleku kontrollimine ..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registreerimine ..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Registreerimine jätkub ..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Kõnesid ei võeta vastu."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Konto registreerimine on peatatud, sest puudub Interneti-ühendus."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Konto registreerimine on peatatud, sest puudub WiFi-ühendus."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Konto registreerimine ebaõnnestus."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Kõnede vastuvõtmine."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Konto registreerimine ebaõnnestus: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); proovige hiljem uuesti"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Konto registreerimine ebaõnnestus: vale kasutajanimi või parool."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Konto registreerimine ebaõnnestus: kontrollige serveri nime."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Kontot kasutab hetkel kontoomaniku <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> rakendus"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-konto andmed"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-konto andmed"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Kasutajanimi"</string>
+    <string name="password_title" msgid="3323555249068171531">"Parool"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Kuvatav nimi"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Väljuvate puhverserveri aadress"</string>
+    <string name="port_title" msgid="5952939408078626657">"Pordi number"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transpordi tüüp"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Saada ülalhoidmise eelistusi"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Määra peamiseks kontoks"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Kasutatakse väljuvate kõnede jaoks"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Valikulised seaded"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Autentimise kasutajanimi"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Autentimiseks kasutatav kasutajanimi"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Määramata&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Sama kui kasutajanimi&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Valikuline&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷Puudutage kõige kuvamiseks"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽Puudutage kõige peitmiseks"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Väli <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on kohustuslik, seda ei saa tühjaks jätta."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Pordi number peab jääma vahemikku 1000 kuni 65 534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Interneti-ühendus puudub"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"WiFi-ühendust ei ole"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Interneti-kõne tegemiseks kontrollige esmalt Interneti-ühendust."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Interneti-kõnede jaoks peate olema ühendatud WiFi-võrguga (kasutage traadita ühenduse ja võrgu seadeid)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Interneti-kõnesid ei toetata"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automaatne"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Saada alati"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Tavakõnesid ei toetata"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Ei saa praegu rääkida. Milles asi?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Helistan kohe tagasi."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Helistan sulle hiljem."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ei saa rääkida. Helistad hiljem?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Kirjutage ise …"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Kiirvastused"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Kiirvastuste muutmine"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Kiirvastus"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Lähtesta vaikerakendus"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Sõnum on saadetud numbrile <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"üks"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"kaks"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"kolm"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"neli"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"viis"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"kuus"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"seitse"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"kaheksa"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"üheksa"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"tärn"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"null"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"nael"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"helista"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"tagasilüke"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Valjuhääldi on sisse lülitatud."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Kõne on summutatud."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Vastamine"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS-i saatmine"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Keeldumine"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreerimine"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreerimine"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Heli"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Vaikeheli (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefonihelin"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibreerimine helina ajal"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Valimisklahvistiku puutetoonid"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Valimisklahvistiku automaatne täitmine"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Helin ja vibratsioon"</string>
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
new file mode 100644
index 0000000..843fb3f
--- /dev/null
+++ b/res/values-fa/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"داده‌های تلفن همراه"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"گوشی"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"شماره گیری اضطراری"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"تلفن"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"لیست FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"ناشناس"</string>
+    <string name="private_num" msgid="6713286113000232309">"شماره خصوصی"</string>
+    <string name="payphone" msgid="1931775086311769314">"تلفن سکه ای"</string>
+    <string name="onHold" msgid="9035493194749959955">"در انتظار"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"خط مشغول است"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"شبکه مشغول است"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"پاسخی دریافت نشد، زمان پایان یافت"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"سرور غیرقابل دسترسی"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"شماره غیرقابل دسترسی"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"نام کاربر و رمز ورود اشتباه است"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"از خارج از شبکه تماس گرفته شده است"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"خطای سرور: بعداً دوباره امتحان کنید."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"بدون سیگنال"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"بیش از حد مجاز ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"رادیو خاموش"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"فاقد سیم، یا خطای سیم"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"خارج از منطقه سرویس"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"تماس‌های خروجی توسط FDN محدود شده‌اند."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"هنگام روشن بودن محدودیت تماس، برقراری تماس‌های خروجی امکان‌پذیر نیست."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"همه تماس‌ها توسط کنترل دسترسی محدود شده‌اند."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"تماس‌های اضطراری توسط کنترل دسترسی محدود شده‌اند."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"تماس‌های معمولی توسط کنترل دسترسی محدود شده‌اند."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"شماره نامعتبر"</string>
+    <string name="confCall" msgid="1904840547188336828">"تماس کنفرانسی"</string>
+    <string name="call_lost" msgid="317670617901479594">"تماس قطع شد."</string>
+    <string name="ok" msgid="3811371167865772377">"تأیید"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"کد MMI راه‌اندازی شد"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"در حال اجرای کد USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"کد MMI لغو شد"</string>
+    <string name="cancel" msgid="5044513931633602634">"لغو"</string>
+    <string name="enter_input" msgid="1810529547726803893">"طول پیام USSD باید بین <xliff:g id="MIN_LEN">%d</xliff:g> تا <xliff:g id="MAX_LEN">%d</xliff:g> نویسه باشد. لطفاً دوباره امتحان کنید."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"مدیریت تماس کنفرانس"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"بلندگو"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"گوشی"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"هدست سیمی"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"صداهای زیر ارسال شود؟"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"تون‌های ارسالی"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"ارسال"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"بله"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"خیر"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"جایگزینی نویسه عمومی با"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"عدم وجود شماره پست صوتی"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"شماره پست صوتی در سیم کارت ذخیره نشده است."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"افزودن شماره"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"قفل سیم کارت شما باز شده است. قفل گوشی در حال باز شدن است..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"پین بازگشایی قفل شبکه سیم"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"بازگشایی قفل"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"رد کردن"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"در حال درخواست بازگشایی قفل شبکه..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"درخواست قفل گشایی شبکه ناموفق بود."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"قفل گشایی شبکه با موفقیت انجام شد."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"تنظیمات تماس GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"تنظیمات تماس CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"نام‌های نقاط دسترسی"</string>
+    <string name="settings_label" msgid="3876743539816984008">"تنظیمات شبکه"</string>
+    <string name="voicemail" msgid="8693759337917898954">"پست صوتی"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"اپراتورهای شبکه"</string>
+    <string name="call_settings" msgid="6112441768261754562">"تنظیمات تماس"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"تنظیمات دیگر"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"سایر تنظیمات تماس فقط GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"سایر تنظیمات تماس CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"سایر تنظیمات تماس فقط CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"تنظیمات سرویس شبکه"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"شناسه تماس گیرنده"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"در حال بارگیری تنظیمات..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"شماره پنهان در تماس‌های خروجی"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"شماره نمایش داده شده در تماس‌های خروجی"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"از تنظیمات اپراتور پیش‌فرض برای نمایش شماره من در تماس‌های خروجی استفاده شود"</string>
+    <string name="labelCW" msgid="6120513814915920200">"انتظار تماس"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"در طول یک تماس، تماس‌های ورودی به من اطلاع داده شود"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"در طول یک تماس، تماس‌های ورودی به من اطلاع داده شود"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"تنظیمات هدایت تماس"</string>
+    <string name="labelCF" msgid="2574386948026924737">"هدایت تماس"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"همیشه هدایت"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"همیشه از این شماره استفاده شود"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"هدایت همه تماس‌ها"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"هدایت همه تماس‌ها به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"شماره در دسترس نیست"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"غیر فعال شد"</string>
+    <string name="labelCFB" msgid="218938523102207587">"هدایت در صورت مشغول بودن"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"شماره هنگام مشغول بودن"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"هدایت به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"غیر فعال شد"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"اپراتور شمااز غیرفعال کردن هدایت تماس هنگامی که تلفن شما مشغول است، پشتیبانی نمی‌کند."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"هدایت هنگام عدم پاسخگویی"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"شماره هنگام عدم پاسخگویی"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"هدایت به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"غیر فعال شد"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"اپراتور شما از غیر فعال کردن هدایت تماس هنگامی که تلفن شما پاسخ نمی‌دهد، پشتیبانی نمی‌کند."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"هدایت هنگام عدم دسترسی"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"شماره در صورت عدم دسترسی"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"هدایت به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"غیر فعال شد"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"شرکت مخابراتی شما از غیرفعال کردن هدایت تماس هنگامی که تلفن شما در دسترس نیست پشتیبانی نمی‌کند."</string>
+    <string name="updating_title" msgid="6146755386174019046">"تنظیمات تماس"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"خطای تنظیمات تماس"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"در حال خواندن تنظیمات..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"در حال به‌روزرسانی تنظیمات..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"در حال بازیابی تنظیمات..."</string>
+    <string name="response_error" msgid="6674110501330139405">"پاسخ پیش‌بینی نشده از شبکه."</string>
+    <string name="exception_error" msgid="7027667130619518211">"خطای شبکه یا سیم کارت."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"تنظیم اعداد شماره‌گیری ثابت برنامه‌های تلفن شما غیرفعال است. درنتیجه، برخی از ویژگی‌های مربوط به تماس کار نمی‌کند."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"قبل از مشاهدهٔ این تنظیمات، رادیو را روشن کنید."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"تأیید"</string>
+    <string name="enable" msgid="1059008390636773574">"فعال کردن"</string>
+    <string name="disable" msgid="7274240979164762320">"غیرفعال کردن"</string>
+    <string name="change_num" msgid="239476305819844391">"به‌روزرسانی"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"پیش‌فرض شبکه"</item>
+    <item msgid="7876195870037833661">"پنهان کردن شماره"</item>
+    <item msgid="1108394741608734023">"نمایش شماره"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"شماره پست صوتی تغییر کرد."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"نمی‌توان شماره صندوق صوتی را تغییر داد."\n"در صورتی که این مشکل همچنان ادامه دارد با شرکت مخابراتی خود تماس بگیرید."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"نمی‌توان شماره هدایت تماس را تغییر داد."\n"در صورتی که این مشکل همچنان ادامه دارد با شرکت مخابراتی خود تماس بگیرید."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"نمی‌توان تنظیمات هدایت شماره فعلی را بازیابی و ذخیره کرد."\n"به هر حال به ارائه دهنده جدید تغییر کند؟"</string>
+    <string name="no_change" msgid="3186040086622435212">"تغییری انجام نشده است."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"انتخاب سرویس پست صوتی"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"شرکت مخابراتی من"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"تنظیمات شبکهٔ تلفن همراه"</string>
+    <string name="label_available" msgid="1181658289009300430">"شبکه‌های موجود"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"در حال جستجو…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"شبکه‌ای یافت نشد."</string>
+    <string name="search_networks" msgid="1601136049300882441">"جستجوی شبکه‌ها"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"خطا هنگام جستجو برای شبکه‌ها."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"در حال ثبت در <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"سیم کارت شما اجازه اتصال به این شبکه را نمی‌دهد."</string>
+    <string name="connect_later" msgid="2308119155752343975">"اتصال به این شبکه در حال حاضر امکان‌پذیر نیست. بعداً دوباره امتحان کنید."</string>
+    <string name="registration_done" msgid="495135664535876612">"در شبکه ثبت شد."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"انتخاب یک اپراتور شبکه"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"جستجوی همه شبکه‌های موجود"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"انتخاب به طور خودکار"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"به صورت خودکار شبکه برگزیده را انتخاب کنید"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"ثبت خودکار..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"حالت شبکه"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"تغییر حالت عملکرد شبکه"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"حالت شبکه برگزیده"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"حالت شبکه برگزیده: WCDMA برگزیده"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"حالت شبکه برگزیده: فقط GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"حالت شبکه برگزیده: فقط WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"حالت شبکه برگزیده: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"حالت شبکه ترجیحی: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"حالت شبکه ترجیحی: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"حالت شبکه برگزیده: فقط CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"حالت شبکه برگزیده: فقط EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"حالت شبکه برگزیده: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"حالت شبکه برگزیده: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"حالت شبکه برگزیده: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"حالت شبکه برگزیده: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"حالت شبکه برگزیده: سراسری"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"حالت شبکه برگزیده: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"سراسری"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"فقط EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA بدون EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo خودکار"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA خودکار"</item>
+    <item msgid="7913148405605373434">"فقط WCDMA"</item>
+    <item msgid="1524224863879435516">"فقط GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA برگزیده"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"داده‌ها فعال شدند"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"فعال کردن دسترسی داده از طریق شبکهٔ تلفن همراه"</string>
+    <string name="roaming" msgid="8871412572928323707">"رومینگ داده"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"اتصال به سرویس‌های داده هنگام رومینگ"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"اتصال به سرویس‌های داده هنگام رومینگ"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"اتصال داده خود را از دست داده‌اید، زیرا از شبکه اصلی خود خارج شدید و رومینگ داده خاموش است،"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"رومینگ داده مجاز است؟ ممکن است هزینه‌های رومینگ زیادی برای شما در بر داشته باشد!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"گزینه‌های GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"گزینه‌های CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"مصرف داده"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"داده‌های مورد استفاده در دوره زمانی فعلی"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"مدت زمان مصرف داده"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"قانون نرخ داده"</string>
+    <string name="throttle_help" msgid="243651091785169900">"بیشتر بیاموزید"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) از <xliff:g id="USED_2">%3$s</xliff:g> حداکثر مدت زمان"\n"مدت زمان بعدی در فاصله <xliff:g id="USED_3">%4$d</xliff:g> روز (<xliff:g id="USED_4">%5$s</xliff:g>) شروع می‌شود."</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) از حداکثر مدت زمان <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> بیش از حداکثر مجاز"\n"نرخ داده به <xliff:g id="USED_1">%2$d</xliff:g> کیلو بیت در ثانیه کاهش یافت"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ از دوره سپری شده"\n"دوره زمانی بعدی بعد از <xliff:g id="USED_1">%2$d</xliff:g> روز شروع می‌شود (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"در صورت فراتر رفتن مصرف داده از حد مجاز، نرخ داده‌ها به <xliff:g id="USED">%1$d</xliff:g> کیلو بیت در ثانیه کاهش می‌یابد."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"اطلاعات بیشتر درباره خط مشی استفاده از داده شبکهٔ تلفن همراه شرکت مخابراتی شما"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"پیامک پخش سلولی"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"پیامک پخش سلولی"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"پیامک پخش سلولی فعال شد"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"پیامک پخش سلولی غیر فعال شد"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"تنظیمات پیامک پخش سلولی"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"پخش اضطراری"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"پخش اضطراری فعال شد"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"پخش اضطراری غیر فعال شد"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"سرپرستی"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"حالت سرپرستی فعال شد"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"حالت سرپرستی غیر فعال شد"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"مراقبت و نگهداری"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"مراقبت و نگهداری فعال شد"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"مراقبت و نگهداری غیر فعال شد"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"اخبار عمومی"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"اخبار تجاری و اقتصادی"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"اخبار ورزشی"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"اخبار سرگرمی"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"محلی"</string>
+    <string name="local_enable" msgid="6370463247609136359">"اخبار محلی فعال شد"</string>
+    <string name="local_disable" msgid="4405691986943795798">"اخبار محلی غیر فعال شد"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"منطقه‌ای"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"اخبار منطقه‌ای فعال شد"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"اخبار منطقه‌ای غیر فعال شد"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"ملی"</string>
+    <string name="national_enable" msgid="1172443648912246952">"اخبار ملی فعال شد"</string>
+    <string name="national_disable" msgid="326018148178601166">"اخبار ملی غیر فعال شد"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"بین‌المللی"</string>
+    <string name="international_enable" msgid="5855356769925044927">"اخبار بین‌المللی فعال شد"</string>
+    <string name="international_disable" msgid="2850648591041088931">"اخبار بین‌المللی غیر فعال شد"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"زبان"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"انتخاب زبان اخبار"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"انگلیسی"</item>
+    <item msgid="1151988412809572526">"فرانسوی"</item>
+    <item msgid="577840534704312665">"اسپانیایی"</item>
+    <item msgid="8385712091143148180">"ژاپنی"</item>
+    <item msgid="1858401628368130638">"کره‌ای"</item>
+    <item msgid="1933212028684529632">"چینی"</item>
+    <item msgid="1908428006803639064">"عبری"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"زبان‌ها"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"وضعیت هوای محلی"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"وضعیت هوای محلی فعال شد"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"وضعیت هوای محلی غیر فعال شد"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"گزارش‌های ترافیک منطقه"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"گزارش‌های ترافیک منطقه فعال شد"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"گزارش‌های ترافیک منطقه غیر فعال شد"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"برنامه‌های زمانی پرواز فرودگاه محلی"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"برنامه‌های زمانی پرواز فرودگاه محلی فعال شد"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"برنامه‌های زمانی پرواز فرودگاه محلی غیر فعال شد"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"رستوران‌ها"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"رستوران‌ها فعال شدند"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"رستوران‌ها غیر فعال شدند"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"اقامتگاه ها"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"اقامتگاه ها فعال شد"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"اقامتگاه ها غیر فعال شد"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"فهرست فروش"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"فهرست فروش فعال شد"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"فهرست فروش غیر فعال شد"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"تبلیغات"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"تبلیغات فعال شد"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"تبلیغات غیر فعال شد"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"قیمت‌های سهام"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"قیمت‌های سهام فعال شد"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"قیمت‌های سهام غیر فعال شد"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"فرصت‌های شغلی"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"فرصت‌های شغلی فعال شد"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"فرصت‌های شغلی غیر فعال شد"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"پزشکی، سلامت و بیمارستان"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"پزشکی، سلامت و بیمارستان فعال شد"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"پزشکی، سلامت و بیمارستان غیرفعال شد"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"اخبار فناوری"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"اخبار فناوری فعال شد"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"اخبار فناوری غیر فعال شد"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"دسته‌های متعدد"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"دسته‌های متعدد فعال شد"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"دسته‌های متعدد غیر فعال شد"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"فقط استفاده از شبکه‌های 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"باتری را ذخیره می‌کند"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"انتخاب سیستم"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"تغییر حالت رومینگ CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"انتخاب سیستم"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"فقط خانه"</item>
+    <item msgid="1205664026446156265">"خودکار"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"اشتراک CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"تغییر بین RUIM/SIM و NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"اشتراک"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"فعال کردن دستگاه"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"راه‌اندازی سرویس داده"</string>
+    <string name="fdn" msgid="7878832555095183202">"شماره‌های شماره گیری ثابت"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"لیست FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"فعال کردن FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"شماره‌های شماره گیری ثابت فعال هستند"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"شماره‌های شماره گیری ثابت غیر فعال هستند"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"فعال کردن FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"غیر فعال کردن FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"تغییر پین 2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"غیر فعال کردن FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"فعال کردن FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"مدیریت شماره‌های شماره گیری ثابت"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"تغییر پین برای دسترسی FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"مدیریت لیست شماره تلفن"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"حریم خصوصی صوتی"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"فعال کردن حالت رازداری پیشرفته"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"حالت TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"تنظیم حالت TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"سعی مجدد خودکار"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"فعال کردن حالت سعی مجدد خودکار"</string>
+    <string name="menu_add" msgid="1882023737425114762">"افزودن مخاطب"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"ویرایش مخاطب"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"حذف مخاطب"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"تایپ پین 2"</string>
+    <string name="name" msgid="7329028332786872378">"نام"</string>
+    <string name="number" msgid="7905950798349903858">"تعداد"</string>
+    <string name="save" msgid="4094274636321939086">"ذخیره"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"افزودن شماره شماره گیری ثابت"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"در حال افزودن شماره شماره گیری ثابت..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"شماره شماره گیری ثابت افزوده شد."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"ویرایش شماره شماره گیری ثابت"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"در حال به‌روزرسانی شماره شماره گیری ثابت..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"شماره شماره گیری ثابت به‌روز شد."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"حذف شماره شماره گیری ثابت"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"در حال حذف شماره شماره گیری ثابت..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"شماره شماره گیری ثابت حذف شد."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN به‌روز نشد زیرا یک پین نادرست تایپ کردید."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN به‌روزرسانی نشد زیرا شماره نمی‌تواند بیشتر از 20 رقم باشد."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN به‌روز نشد. پین 2 اشتباه بود یا شماره تلفن رد شد."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"در حال خواندن سیم کارت..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"مخاطبی در سیم کارت شما موجود نیست."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"انتخاب مخاطبین برای ورود"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"برای وارد کردن مخاطبین از سیم کارت، ابتدا حالت هواپیما را خاموش کنید."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"فعال کردن/غیر فعال کردن پین سیم"</string>
+    <string name="change_pin" msgid="9174186126330785343">"تغییر پین سیم"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"پین سیم:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"پین قدیمی"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"پین جدید"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"تأیید پین جدید"</string>
+    <string name="badPin" msgid="8955102849303984935">"پین قدیمی که تایپ کردید نادرست است. دوباره امتحان کنید."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"پین‌هایی که تایپ کردید مطابقت ندارند. دوباره امتحان کنید."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"یک پین 4 تا 8 رقمی را تایپ کنید."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"غیر فعال کردن پین سیم کارت"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"فعال کردن پین سیم"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"لطفاً منتظر بمانید…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"پین سیم فعال شد."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"پین سیم غیر فعال شد."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"پینی که تایپ کردید نادرست است."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"پین سیم با موفقیت تغییر کرد."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"رمز ورود نادرست است، سیم کارت قفل شد! PUK2 مورد نیاز است."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"پین 2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"پین 2 قدیمی"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"پین 2 جدید"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"تأیید پین 2 جدید"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 که تایپ کردید نادرست است. لطفاً دوباره امتحان کنید."</string>
+    <string name="badPin2" msgid="1041576234483629991">"پین 2 قدیمی که تایپ کردید نادرست است. لطفاً دوباره امتحان کنید."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"کدهای پین 2 که تایپ کردید با هم مطابقت ندارند. دوباره امتحان کنید."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"یک کد پین 2، 4 تا 8 رقمی تایپ کنید."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"یک PUK2 دارای 8 رقم را تایپ کنید."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"پین 2 با موفقیت تغییر کرد."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"تایپ کد PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"گذرواژه نادرست است، لطفاً پین 2 را تغییر داده و دوباره امتحان کنید!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"گذرواژه نادرست است، سیم کارت قفل شد. PUK2 مورد نیاز است."</string>
+    <string name="doneButton" msgid="2859593360997984240">"انجام شد"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"تماس کنفرانسی <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"شماره پست صوتی"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"شماره گیری"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"در حال امتحان مجدد"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"تماس کنفرانسی"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"تماس ورودی"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"تماس پایان یافت"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"در انتظار"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"قطع تماس"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"در تماس"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"شماره من <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> است"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"شماره‌گیری"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"تماس بی پاسخ"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"تماس‌های بی پاسخ"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> تماس بی پاسخ"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"تماس بی پاسخ از <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"تماس جاری"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"در انتظار"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"تماس ورودی"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"پست صوتی جدید"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"پست صوتی جدید (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"شماره گیری <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"شماره پست صوتی ناشناس"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"بدون سرویس"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"شبکه انتخابی (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) قابل دسترس نیست"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"قطع تماس"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"پاسخ تماس"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"پیام"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"برای برقراری یک تماس، ابتدا حالت هواپیما را خاموش کنید."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"در شبکه ثبت نشده است."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"شبکهٔ تلفن همراه موجود نیست."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"تماس ارسال نشد، هیچ شماره معتبری وارد نشده است."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"تماس ارسال نشد."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"شروع ترتیب MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"سرویس پشتیبانی نشده."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"تغییر وضعیت تماس‌ها امکان‌پذیر نیست."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"تفکیک تماس امکان‌پذیر نیست."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"انتقال تماس امکان‌پذیر نیست."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"تماس‌های کنفرانسی امکان‌پذیر نیست."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"رد کردن تماس امکان‌پذیر نیست."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"آزاد کردن تماس(ها) امکان‌پذیر نیست."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"تماس اینترنتی"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"تماس اضطراری"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"در حال روشن کردن رادیو..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"خارج از منطقه سرویس، در حال امتحان مجدد..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"تماس ارسال نشد. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> یک شماره اضطراری نیست!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"تماس ارسال نشد، لطفاً یک شماره اضطراری را شماره‌گیری کنید!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"استفاده از صفحه‌کلید برای شماره گیری"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"نگهداشت"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"پایان"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"دکمه‌های شماره گیری"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"بی‌صدا"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"افزودن تماس"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"ادغام تماس‌ها"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"تعویض"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"مدیریت تماس‌ها"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"مدیریت کنفرانس"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"صوتی"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"تماس ویدیویی"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"وارد کردن"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"وارد کردن همه"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"وارد کردن مخاطبین سیم"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"وارد کردن از مخاطبین"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"دستگاه‌های کمک شنوایی"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"روشن کردن سازگاری دستگاه کمک شنوایی"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY خاموش"</item>
+    <item msgid="3971695875449640648">"TTY پر است"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"تون‌های DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"تنظیم طول آهنگ‌های DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"معمولی"</item>
+    <item msgid="2883365539347850535">"طولانی"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"پیام شبکه"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"فعال کردن گوشی خود"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"برای فعال کردن سرویس گوشی خود، باید یک تماس ویژه برقرار کنید. "\n\n"بعد از فشردن \"فعال سازی\"، به دستورالعمل‌های ارائه شده جهت فعال کردن گوشی، گوش کنید."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"از مرحله فعال سازی رد می‌شوید؟"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"در صورت رد شدن از مرحله فعال سازی، نمی‌توانید تماسی برقرار کنید یا به شبکه‌های داده‌ای تلفن همراه متصل شوید (با این وجود می‌توانید به شبکه‌های Wi-Fi متصل شوید). تا زمانی که گوشی خود را فعال نکنید، هر بار که تلفن را روشن می‌کنید از شما درخواست می‌شود آنرا فعال کنید."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"رد شدن"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"فعال کردن"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"تلفن فعال است."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"مشکل در فعال سازی"</string>
+    <string name="ota_listen" msgid="162923839877584937">"دستورالعمل‌های گویا را دنبال کنید تا زمانی که بشنوید فعال سازی انجام شد."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"بلندگو"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"هنگام برنامه‌ریزی تلفن خود، منتظر بمانید."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"برنامه‌ریزی ناموفق"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"گوشی شما در حال حاضر فعال است. راه‌اندازی سرویس ممکن است ۱۵ دقیقه طول بکشد."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"تلفن شما فعال نشد. "\n"ممکن است لازم باشد منطقه‌ای با پوشش بهتر (در نزدیکی پنجره، یا خارج از ساختمان) پیدا کنید. "\n\n"دوباره امتحان کنید یا برای اطلاع از گزینه‌های بیشتر، با سرویس مشتری تماس بگیرید."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"خطاهای SPC بسیار زیاد"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"برگشت"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"دوباره امتحان کنید"</string>
+    <string name="ota_next" msgid="3904945374358235910">"بعدی"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"حالت پاسخ تماس اضطراری وارد شده"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"حال پاسخ تماس اضطراری"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"اتصال داده غیر فعال شد"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"اتصال داده‌ای به مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه موجود نیست"</item>
+    <item quantity="other" msgid="3122217344579273583">"اتصال داده‌ای به مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه موجود نیست"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"تلفن به مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه در حالت پاسخ به تماس‌های اضطراری خواهد بود. در این حالت برنامه‌هایی که از اتصال داده استفاده می‌کنند قابل استفاده نیستند. آیا می‌خواهید اکنون خارج شوید؟"</item>
+    <item quantity="other" msgid="8617116564023933114">"تلفلن به مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه در حالت پاسخ به تماس‌های اضطراری خواهد بود. در این حالت برنامه‌هایی که از اتصال داده استفاده می‌کنند قابل استفاده نیستند. آیا می‌خواهید اکنون خارج شوید؟"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"عملکرد انتخاب شده در حالت پاسخ به تماس اضطراری در دسترس نیست. تلفن مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه در این حالت است. آیا می‌خواهید اکنون خارج شوید؟"</item>
+    <item quantity="other" msgid="6115622137771382224">"عمل انتخاب شده در حالت پاسخ به تماس اضطراری در دسترس نیست. تلفن مدت <xliff:g id="COUNT">%s</xliff:g> دقیقه در این حالت باقی می‌ماند. آیا می‌خواهید اکنون خارج شوید؟"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"در حین یک تماس اضطراری، عملکرد انتخابی در دسترس نیست."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"خروج از حالت پاسخ تماس اضطراری"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"بله"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"خیر"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"رد کردن"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"سرویس"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"تنظیم"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;تنظیم نشده&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"سایر تنظیمات تماس"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"عکس مخاطب"</string>
+    <string name="goPrivate" msgid="865837794424530980">"برو به خصوصی"</string>
+    <string name="selectContact" msgid="781975788478987237">"انتخاب حساب"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"تنظیمات تماس اینترنتی"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"حساب‌های تماس اینترنتی (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"حساب‌ها"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"دریافت تماس‌های ورودی"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"عمر باتری را کاهش می‌دهد"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"استفاده از تماس اینترنتی"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"استفاده از تماس اینترنتی (فقط Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"برای همه تماس‌ها وقتی شبکه داده در دسترس است"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"فقط برای تماس‌های اینترنتی"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"برای هر تماس سؤال شود"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"برای همه تماس‌ها"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"برقرار کردن تماس"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"استفاده از حساب تماس اینترنتی:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"همیشه برای برقراری تماس‌های اینترنتی استفاده شود"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"می‌توانید حساب تماس اینترنتی را که می‌خواهید به صورت پیش‌فرض استفاده کنید از تلفن &gt; تنظیمات &gt; تنظیمات تماس اینترنتی&gt; صفحه حساب‌ها، تغییر دهید."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"تماس با تلفن همراه"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"تماس اینترنتی"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"حساب تماس اینترنتی وجود ندارد"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"بر روی این تلفن حساب‌های تماس اینترنتی وجود ندارد. آیا می‌خواهید یک مورد اضافه کنید؟"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"افزودن"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"افزودن حساب"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"حذف حساب"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"حساب‌های SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"در حال ذخیره حساب..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"در حال حذف حساب..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"ذخیره"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"صرفنظر"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"بستن نمایه"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"تأیید"</string>
+    <string name="close_profile" msgid="6886968271423155284">"بستن"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"حساب اصلی. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"در حال بررسی وضعیت..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"در حال ثبت..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"هنوز در حال تلاش..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"تماس‌های دریافتی موجود نیست."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"ثبت حساب به دلیل عدم وجود اتصال اینترنتی متوقف شد."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"ثبت حساب به دلیل عدم وجود اتصال Wi-Fi متوقف شد."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"ثبت حساب ناموفق بود."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"در حال دریافت تماس‌ها."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"ثبت حساب ناموفق بود: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)، بعداً امتحان می‌شود"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"ثبت حساب ناموفق بود: نام کاربری یا گذرواژه نادرست است."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"ثبت حساب ناموفق: نام سرور را بررسی کنید."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"این حساب اکنون توسط برنامه <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> در حال استفاده است."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"جزئیات حساب SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"جزئیات حساب SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"سرور"</string>
+    <string name="username_title" msgid="2479375923477682328">"نام کاربری"</string>
+    <string name="password_title" msgid="3323555249068171531">"رمز ورود"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"نام نمایش"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"آدرس پروکسی خارج از محدوده"</string>
+    <string name="port_title" msgid="5952939408078626657">"شماره درگاه"</string>
+    <string name="transport_title" msgid="8253139511847746640">"نوع حمل و نقل"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"ارسال حفظ اتصال"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"تنظیم به‌عنوان حساب اصلی"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"برای تماس‌های خارج از محدوده استفاده شد"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"تنظیمات اختیاری"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"نام کاربری تأیید اعتبار"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"نام کاربری مورد استفاده برای تأیید اعتبار"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;تنظیم نشده&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;مانند نام کاربری&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;اختیاری&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ جهت نمایش همه لمس کنید"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ جهت پنهان کردن همه لمس کنید"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ضروری است و نباید خالی بماند."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"شماره درگاه باید بین 1000 و 65534 باشد."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"اتصال اینترنتی وجود ندارد"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"اتصال Wi-Fi وجود ندارد"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"برای برقراری تماس اینترنتی، ابتدا اتصال اینترنت خود را بررسی کنید."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"برای تماس‌های اینترنتی باید به یک شبکه Wi-Fi وصل باشید (از تنظیمات بی‌سیم و شبکه استفاده کنید)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"تماس اینترنتی پشتیبانی نمی‌شود"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"خودکار"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"همیشه ارسال شود"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"تماس صوتی پشتیبانی نمی‌شود"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"اکنون نمی‌توانم صحبت کنم. موضوع چیست؟"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"به زودی با شما تماس می‌گیرم."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"بعداً با شما تماس می‌گیرم."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"اکنون نمی‌توانم صحبت کنم. بعداً به من زنگ می‌زنید؟"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"نوشتن پاسخ خود…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"پاسخ‌های سریع"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"ویرایش پاسخ‌های سریع"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"پاسخ سریع"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"بازنشانی برنامه‌ پیش‌فرض"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"پیام به <xliff:g id="PHONE_NUMBER">%s</xliff:g> ارسال شد."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"یک"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"دو"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"سه"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"چهار"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"پنج"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"شش"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"هفت"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"هشت"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"نه"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"ستاره"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"صفر"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"پوند"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"شماره گیری"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"تلفن آیفون‌دار فعال شد."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"تماس نادیده گرفته شد."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"پاسخ"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"ارسال پیامک"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"عدم پذیرش"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"لرزش"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"لرزش"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"صدا"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"صدای پیش‌فرض (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"آهنگ زنگ تلفن"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ارتعاش هنگام زنگ زدن"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"صداهای پد لمسی شماره‌گیری"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"تکمیل خودکار صفحه شماره‌گیری"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"آهنگ‌ زنگ و لرزش"</string>
+</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
new file mode 100644
index 0000000..334487a
--- /dev/null
+++ b/res/values-fi/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Tiedonsiirto"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Puhelin"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Hätäpuhelut"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Puhelin"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Sallittujen numeroiden luettelo"</string>
+    <string name="unknown" msgid="6878797917991465859">"Tuntematon"</string>
+    <string name="private_num" msgid="6713286113000232309">"Salainen numero"</string>
+    <string name="payphone" msgid="1931775086311769314">"Puhelinautomaatti"</string>
+    <string name="onHold" msgid="9035493194749959955">"Pidossa"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linja varattu"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Verkko varattu"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Ei vastausta, aikakatkaistiin"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Palvelimeen ei saada yhteyttä"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numeroon ei saada yhteyttä"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Virheellinen käyttäjänimi tai salasana"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Puhelu verkon ulkopuolelta"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Palvelinvirhe. Yritä myöhemmin uudelleen."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Ei signaalia"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-raja ylitetty"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio pois käytöstä"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Ei SIM-korttia tai SIM-korttivirhe"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Katvealue"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Sallitut numerot rajoittavat soitettavia puheluita."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Et voi soittaa puheluita puheluiden eston ollessa käytössä."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Käyttörajoitus rajoittaa kaikki puhelut"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Käyttörajoitus rajoittaa hätäpuhelut."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Käyttörajoitus rajoittaa normaalit puhelut."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Virheellinen numero"</string>
+    <string name="confCall" msgid="1904840547188336828">"Puhelinneuvottelu"</string>
+    <string name="call_lost" msgid="317670617901479594">"Puhelu katkesi."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-koodi aloitettu"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-koodi käytössä..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-koodi peruutettu"</string>
+    <string name="cancel" msgid="5044513931633602634">"Peruuta"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-viestin pituuden täytyy olla <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> merkkiä. Yritä uudelleen."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Hallinnoi puhelinneuvottelua"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Kaiutin"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Puhelimen kuuloke"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Langalliset kuulokkeet"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Lähetäänkö seuraavat äänet?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Lähetetään ääniä"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Lähetä"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Kyllä"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ei"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Muuta jokerimerkiksi"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Puhelinvastaajan numero puuttuu"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM-kortille ei ole tallennettu puhelinvastaajan numeroa."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Lisää numero"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM-korttisi esto on purettu. Puhelimen lukitusta poistetaan..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM-verkko, PIN-koodin lukituksen poisto"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Poista lukitus"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Hylkää"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Pyydetään verkon lukituksen poistoa..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Verkon lukituksen poistopyyntö epäonnistui."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Verkon lukituksen poisto onnistui."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-puheluasetukset"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-puheluasetukset"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Tukiasemien nimet"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Verkkoasetukset"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Vastaaja"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Vast.:"</string>
+    <string name="networks" msgid="8873030692174541976">"Verkko-operaattorit"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Puheluasetukset"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Lisäasetukset"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Vain GSM -puhelujen lisäasetukset"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"CDMA-puhelujen lisäasetukset"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Vain CDMA -puhelujen lisäasetukset"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Verkkopalveluasetukset"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Soittajan tunnus"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Ladataan asetuksia..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Numeroa ei näytetä soitetuissa puheluissa"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numero näytetään soitetuissa puheluissa"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Käytä numeroni näyttämistä soitettavissa puheluissa koskevia operaattorin oletusasetuksia"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Koputus"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Ilmoita puhelun aikana saapuvista puheluista"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Ilmoita puhelun aikana saapuvista puheluista"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Soitonsiirtoasetukset"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Soitonsiirto"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Siirrä aina"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Käytä aina tätä numeroa"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Kaikki puhelut siirretään"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Siirretään kaikki puhelut numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numeroon ei saada yhteyttä"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Pois käytöstä"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Siirrä puhelu numeron ollessa varattu"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Soita, kun numero on varattu:"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Siirretään puhelu numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Pois käytöstä"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä, kun puhelimesi on varattuna."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Siirrä puhelu, kun numero ei vastaa"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Soita, kun numero ei vastaa:"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Siirretään puhelu numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Pois käytöstä"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä, kun puhelimesi ei vastaa."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Siirrä puhelu, kun numeroon ei saada yhteyttä"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Soita, kun numeroon ei saada yhteyttä:"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Siirretään puhelu numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Pois käytöstä"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä puhelimesi ollessa saavuttamattomissa."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Puheluasetukset"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Virhe puheluasetuksissa"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Luetaan asetuksia…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Päivitetään asetuksia..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Palautetaan asetuksia…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Odottamaton vastaus verkosta."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Verkko- tai SIM-korttivirhe."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Puhelimesi sovelluksen sallitut numerot -toiminto on käytössä. Osa puheluihin liittyvistä ominaisuuksista ei toimi."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Käynnistä radio ennen näiden asetuksien tarkastelua."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Ota käyttöön"</string>
+    <string name="disable" msgid="7274240979164762320">"Poista käytöstä"</string>
+    <string name="change_num" msgid="239476305819844391">"Päivitä"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Verkon oletus"</item>
+    <item msgid="7876195870037833661">"Piilota numero"</item>
+    <item msgid="1108394741608734023">"Näytä numero"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Puhelinvastaajan numero muutettiin."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Vastaajapalvelun numeron vaihtaminen epäonnistui."\n"Ota yhteyttä operaattoriin, jos ongelma jatkuu."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Soitonsiirtonumeron vaihtaminen epäonnistui."\n"Ota yhteyttä operaattoriin, jos ongelma jatkuu."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nykyisten soitonsiirtonumeroasetuksien noutaminen ja tallentaminen epäonnistui."\n"Haluatko kuitenkin vaihtaa operaattoria?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Muutoksia ei tehty."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Valitse puhelinvastaajapalvelu"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Oma operaattori"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobiiliverkkoasetukset"</string>
+    <string name="label_available" msgid="1181658289009300430">"Käytettävissä olevat verkot"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Haetaan…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Ei verkkoja."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Verkkohaku"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Virhe haettaessa verkkoja."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Rekisteröidään verkkoon <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM-kortti ei anna muodostaa yhteyttä tähän verkkoon."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Tähän verkkoon ei saa yhteyttä juuri nyt. Yritä myöhemmin uudelleen."</string>
+    <string name="registration_done" msgid="495135664535876612">"Rekisteröity verkkoon."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Valitse verkko-operaattori"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Etsi kaikki käytettävissä olevat verkot"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Valitse automaattisesti"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Valitse ensisijainen verkko automaattisesti"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automaattinen rekisteröinti..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Verkkotila"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Vaihda verkon käyttötilaa"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Ensisijainen verkkotila"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Ensisijainen verkkotila: ensisijaisesti WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Ensisijainen verkkotila: vain GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Ensisijainen verkkotila: vain WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Ensisijainen verkkotila: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Ensisijainen verkkotila: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Ensisijainen verkkotila: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Ensisijainen verkkotila: vain CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Ensisijainen verkkotila: vain EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Ensisijainen verkkotila: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Ensisijainen verkkotila: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Ensisijainen verkkotila: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Ensisijainen verkkotila: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Ensisijainen verkkotila: Maailmanlaajuinen"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Ensisijainen verkkotila: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Maailmanlaajuinen"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Vain EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA ilman EvDoa"</item>
+    <item msgid="4341433122263841224">"Automaattinen CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Automaattinen GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Vain WCDMA"</item>
+    <item msgid="1524224863879435516">"Vain GSM"</item>
+    <item msgid="3817924849415716259">"Ensisijaisesti GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Datayhteys käytössä"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Ota mobiiliverkon tiedonsiirto käyttöön"</string>
+    <string name="roaming" msgid="8871412572928323707">"Verkkoyhteys roaming-tilassa"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Yhdistä verkkoon roaming-tilassa"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Yhdistä verkkoon roaming-tilassa"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Menetit verkkoyhteyden, koska poistuit kotiverkkosi alueelta eikä tiedonsiirron roaming-tila ole käytössä."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Sallitaanko verkkoyhteys roaming-tilassa? Roaming-maksut saattavat kasvaa suuriksi!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS-asetukset"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-asetukset"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Tietojen käyttö"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Nykyisellä jaksolla käytetyt tiedot"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Tietojen käyttöjakso"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Tiedonsiirtonopeuskäytäntö"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Lisätietoja"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> enimmäismäärä ylitetty"\n"Tiedonsiirtonopeus vähennetty nopeuteen<xliff:g id="USED_1">%2$d</xliff:g> kt/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ kierrosta valmis"\n"Seuraava jakso alkaa <xliff:g id="USED_1">%2$d</xliff:g> päivän kuluttua (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Tiedonsiirtonopeus vähennetään nopeuteen <xliff:g id="USED">%1$d</xliff:g> kt/s, jos tiedonkäyttöraja ylitetään"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Lisätietoja operaattorisi mobiiliverkon tietojenkäyttökäytännöstä"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast -tekstiviesti"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast -tekstiviesti"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cell Broadcast -tekstiviestit käytössä"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cell Broadcast -tekstiviestit pois käytöstä"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Cell Broadcast -tekstiviestiasetukset"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Hätäpuheluiden lähettäminen"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Hätäpuheluiden lähettäminen käytössä"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Hätäpuheluiden lähettäminen pois käytöstä"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Järjestelmänhallinta"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Järjestelmänhallinta käytössä"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Järjestelmänhallinta pois käytöstä"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Ylläpito"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Ylläpito käytössä"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Ylläpito pois käytöstä"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Yleiset uutiset"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Talous- ja yritysuutiset"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Urheilu-uutiset"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Viihdeuutiset"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Paikallinen"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Paikallisuutiset käytössä"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Paikallisuutiset pois käytöstä"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Alue"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Alueuutiset käytössä"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Alueuutiset pois käytöstä"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Kotimaa"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Kotimaan uutiset käytössä"</string>
+    <string name="national_disable" msgid="326018148178601166">"Kotimaan uutiset pois käytöstä"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Kansainväliset"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Kansainväliset uutiset käytössä"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Kansainväliset uutiset pois käytöstä"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Kieli"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Valitse uutisten kieli"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"englanti"</item>
+    <item msgid="1151988412809572526">"ranska"</item>
+    <item msgid="577840534704312665">"espanja"</item>
+    <item msgid="8385712091143148180">"japani"</item>
+    <item msgid="1858401628368130638">"korea"</item>
+    <item msgid="1933212028684529632">"kiina"</item>
+    <item msgid="1908428006803639064">"heprea"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Kielet"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Paikallissää"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Paikallissää käytössä"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Paikallissää pois käytöstä"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Alueen liikenneraportit"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Alueen liikenneraportit käytössä"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Alueen liikenneraportit pois käytöstä"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Paikallisten lentokenttien lentoaikataulut"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Paikallisten lentokenttien lentoaikataulut käytössä"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Paikallisten lentokenttien lentoaikataulut pois käytöstä"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Ravintolat"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ravintolat käytössä"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Ravintolat pois käytöstä"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Asunnot"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Asunnot käytössä"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Asunnot pois käytöstä"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Jälleenmyyntihakemisto"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Jälleenmyyntihakemisto käytössä"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Jälleenmyyntihakemisto pois käytöstä"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Mainokset"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Mainokset käytössä"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Mainokset pois käytöstä"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Pörssikurssit"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Pörssikurssit käytössä"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Pörssikurssit pois käytöstä"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Avoimet työpaikat"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Avoimet työpaikat käytössä"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Avoimet työpaikat pois käytöstä"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Lääkäri, terveys ja sairaala"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Lääkäri, terveys ja sairaala käytössä"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Lääkäri, terveys ja sairaala pois käytöstä"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Teknologiauutiset"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Teknologiauutiset käytössä"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Teknologiauutiset pois käytöstä"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Useat luokat"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Useat luokat käytössä"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Useat luokat pois käytöstä"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Käytä vain 2G-verkkoja"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Säästää akkua"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Valitse järjestelmä"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Vaihda CDMA-roaming-tila"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Valitse järjestelmä"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Vain kotipuhelin"</item>
+    <item msgid="1205664026446156265">"Automaattinen"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-tilaus"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Vaihda RUIM/SIM- ja NV-tilojen välillä"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"tilaus"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivoi laite"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Määritä tiedonsiirtopalvelu"</string>
+    <string name="fdn" msgid="7878832555095183202">"Sallitut numerot"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Sallittujen numeroiden luettelo"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Sallittujen numeroiden käyttöönotto"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Sallitut numerot ovat käytössä"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Sallitut numerot ovat pois käytöstä"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Ota sallitut numerot käyttöön"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Poista sallitut numerot käytöstä"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Vaihda PIN2-koodi"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Poista sallitut numerot käytöstä"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Ota sallitut numerot käyttöön"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Hallinnoi sallittuja numeroita"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Vaihda PIN-koodi käyttääksesi sallittuja numeroita"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Hallinnoi puhelinnumeroluetteloa"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Voicen tietosuoja"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Ota parannettu tietosuojatila käyttöön"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-tila"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Aseta TTY-tila"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automaattinen uudelleenyritys"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Ota Automaattinen uudelleenyritys -tila käyttöön"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Lisää yhteystieto"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Muokkaa yhteystietoa"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Poista yhteystieto"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Anna PIN2-koodi"</string>
+    <string name="name" msgid="7329028332786872378">"Nimi"</string>
+    <string name="number" msgid="7905950798349903858">"Numero"</string>
+    <string name="save" msgid="4094274636321939086">"Tallenna"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Lisää sallittu numero"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Lisätään sallittua numeroa…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Sallittu numero lisätty."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Muokkaa sallittua numeroa"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Päivitetään sallittua numeroa…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Sallittua numeroa päivitetty."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Poista sallittu numero"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Poistetaan sallittua numeroa…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Sallittu numero poistettu."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Sallittuja numeroita ei päivitetty, koska annoit väärän PIN-koodin."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Sallittuja numeroita ei päivitetty, sillä numerossa voi olla enintään 20 merkkiä."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN-numeroa ei päivitetty. PIN2 on virheellinen tai puhelinnumero hylättiin."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Luetaan SIM-korttia…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM-kortilla ei ole yhteystietoja."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Valitse tuotavat yhteystiedot"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Poista lentokonetila käytöstä, niin voit tuoda yhteystietoja SIM-kortilta."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Ota SIM-kortin PIN-koodi käyttöön / poista koodi käytöstä"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Vaihda SIM-kortin PIN-koodi"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM-kortin PIN-koodi:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Vanha PIN-koodi"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Uusi PIN-koodi"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Vahvista uusi PIN-koodi"</string>
+    <string name="badPin" msgid="8955102849303984935">"Annoit väärän vanhan PIN-koodin. Yritä uudelleen."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Antamasi PIN-koodit eivät täsmää. Yritä uudelleen."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Anna 4–8-numeroinen PIN-koodi."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Poista SIM-kortin PIN-koodi käytöstä"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Ota SIM-kortin PIN-koodi käyttöön"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Odota…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM-kortin PIN-koodi käytössä."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM-kortin PIN-koodi pois käytöstä."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Annoit väärän PIN-koodin."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM-kortin PIN-koodin vaihtaminen onnistui."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Virheellinen salasana, SIM-kortti lukittu! Anna PUK2-koodi."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Vanha PIN2-koodi"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Uusi PIN2-koodi"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Vahvista uusi PIN2-koodi"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Antamasi PUK2-koodi on virheellinen. Yritä uudelleen."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Antamasi vanha PIN2-koodi on virheellinen. Yritä uudelleen."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Antamasi PIN2-koodit eivät täsmää. Yritä uudelleen."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Anna 4–8-numeroinen PIN2-koodi."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Anna 8-numeroinen PUK2-koodi."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2-koodi vaihdettu."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Anna PUK2-koodi"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Väärä salasana. Vaihda PIN2-koodi ja yritä uudelleen."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Virheellinen salasana, SIM-kortti lukittu. PUK2-koodi tarvitaan."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Valmis"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Puhelinneuvottelu <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Puhelinvastaajan numero"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Soitetaan"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Yritetään uudelleen"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Puhelinneuvottelu"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Uusi puhelu"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Puhelu loppui"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Pidossa"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Katkaistaan"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Puhelun aikana"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Numeroni on <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Soitetaan"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Vastaamatta jäänyt puhelu"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Vastaamattomat puhelut"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> vastaamatonta puhelua"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Vastaamatta jäänyt puhelu numerosta <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Käynnissä oleva puhelu"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Pidossa"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Uusi puhelu"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Uusia viestejä vastaajassa"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Uusia viestejä vastaajassa (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Soita numeroon <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Puhelinvastaajan numero tuntematon"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Katvealueella"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Valittu verkko (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ei käytettävissä."</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Katkaise puhelu"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Soita takaisin"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Viesti"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Poista lentokonetila käytöstä ennen puhelun soittamista."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ei rekisteröity verkkoon."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobiiliverkko ei käytettävissä."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Puhelua ei soitettu, et antanut kelvollista numeroa."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Puhelua ei soitettu."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Aloitetaan MMI-koodisekvenssiä..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Palvelua ei tueta."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Puhelujen vaihto epäonnistui."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Puhelun erottaminen epäonnistui."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Puhelun siirtäminen epäonnistui."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Puhelujen yhdistäminen epäonnistui."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Puhelun hylkääminen epäonnistui."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Puhelujen suorittaminen epäonnistui."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetpuhelu"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hätäpuhelu"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Käynnistetään radiota…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Katvealueella, yritetään uudelleen..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Puhelua ei soitettu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hätänumero!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Puhelua ei soitettu. Valitse hätänumero!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Valitse numero näppäimistöstä"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Pitoon"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Loppu"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Näppäimistö"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Äänetön"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Lisää puhelu"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Yhdistä puhelut"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Vaihda"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Hallinnoi puheluita"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Puhelinneuvottelu"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Ääni"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videopuh."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Tuo"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Tuo kaikki"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Tuodaan SIM-kortin yhteystietoja"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Tuo yhteystiedoista"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Kuulolaitteet"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Ota kuulolaitteen yhteensopivuustoiminto käyttöön"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY pois käytöstä"</item>
+    <item msgid="3971695875449640648">"TTY täynnä"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-äänet"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Aseta DTMF-äänien pituus"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normaali"</item>
+    <item msgid="2883365539347850535">"Pitkä"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Verkkoviesti"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivoi puhelin"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Sinun täytyy soittaa erityinen puhelu aktivoidaksesi puhelimesi palvelun. "\n\n"Paina Aktivoi ja aktivoi puhelimesi kuulemiesi ohjeiden avulla."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Ohitetaanko aktivointi?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Jos ohitat aktivoinnin, et voi soittaa puheluita etkä muodostaa verkkoyhteyttä (voit tosin muodostaa yhteyden wifi-verkkoihin). Sinua pyydetään aktivoimaan puhelimesi aina kun käynnistät sen siihen saakka, että aktivoit sen."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ohita"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivoi"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Puhelin aktivoitu."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Aktivointiongelma"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Kuuntele ohjeita ja toimi niiden mukaan, kunnes aktivointi on valmis."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Kaiutin"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Odota, että puhelinta ohjelmoidaan."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Ohjelmointi epäonnistui"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Puhelimesi on nyt aktivoitu. Palvelun käynnistyminen saattaa kestää korkeintaan 15 minuuttia."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Puhelimesi aktivoiminen epäonnistui."\n"Suosittelemme siirtymään alueelle, jolla signaali on vahvempi (ikkunan lähelle tai ulos)."\n\n"Yritä uudelleen tai pyydä lisäohjeita asiakaspalvelusta."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESS SPC -VIRHEET"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Takaisin"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Yritä uudelleen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Seuraava"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Käytössä hätäpuhelujen takaisinsoittotila"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Hätäpuhelujen takaisinsoittotila"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Verkkoyhteys pois käytöstä"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Ei verkkoyhteyttä <xliff:g id="COUNT">%s</xliff:g> minuuttiin"</item>
+    <item quantity="other" msgid="3122217344579273583">"Ei verkkoyhteyttä <xliff:g id="COUNT">%s</xliff:g> minuuttiin"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT">%s</xliff:g> minuutin ajan. Tässä tilassa datayhteyttä hyödyntäviä sovelluksia ei voi käyttää. Haluatko lopettaa nyt?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT">%s</xliff:g> minuutin ajan. Tässä tilassa datayhteyttä hyödyntäviä sovelluksia ei voi käyttää. Haluatko lopettaa nyt?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Valittu toiminto ei ole käytettävissä hätäpuhelujen takaisinsoittotilassa. Puhelu pysyy tässä tilassa <xliff:g id="COUNT">%s</xliff:g> minuutin ajan. Haluatko poistua nyt?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Valittu toiminto ei ole käytettävissä hätäpuhelujen takaisinsoittotilassa. Puhelu pysyy tässä tilassa <xliff:g id="COUNT">%s</xliff:g> minuutin ajan. Haluatko poistua nyt?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Valittu toiminto ei ole käytettävissä hätäpuhelun aikana"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Poistutaan hätäpuhelujen takaisinsoittotilasta"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Kyllä"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ei"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Hylkää"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Palveluntarjoaja"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Asetukset"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ei asetettu&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Muut puheluasetukset"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"yhteyshenkilön valokuva"</string>
+    <string name="goPrivate" msgid="865837794424530980">"muuta yksityiseksi"</string>
+    <string name="selectContact" msgid="781975788478987237">"valitse yhteystieto"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Internetpuheluiden asetukset"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Internetpuhelutilit (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Tilit"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Vastaanota saapuvia puheluita"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Vähentää akun käyttöikää"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Käytä internetpuheluita"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Käytä internetpuheluita (vain wifi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Kaikki puhelut, kun verkko on käytettävissä"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Vain internetpuhelut"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Kysy aina"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Kaikki puhelut"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Soita puhelu"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Käytä seuraavaa internetpuhelutiliä:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Käytä aina internetpuheluille"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Voit muuttaa oletuksena käytettäviä internetpuheluasetuksia valitsemalla Puhelin &gt; Asetukset &gt; Internetpuheluasetukset &gt; Tilit."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Matkapuhelimen puhelu"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetpuhelu"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Ei internetpuhelutiliä"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Tällä puhelimella ei ole internetpuhelutilejä. Haluatko lisätä tilin nyt?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Lisää"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Lisää tili"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Poista tili"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-tilit"</string>
+    <string name="saving_account" msgid="52903398217017954">"Tallennetaan tiliä..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Poistetaan tiliä..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Tallenna"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Hylkää"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Sulje profiili"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Sulje"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Ensisijainen tili. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Tarkistetaan tilaa..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Rekisteröidään..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Yritetään edelleen..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ei saapuvia puheluita"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Tilin rekisteröinti lopetettiin, koska internetyhteyttä ei ole käytettävissä."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Tilin rekisteröinti lopetettiin, koska wifi-yhteyttä ei ole käytettävissä."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Tilin rekisteröinti epäonnistui."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Puheluiden vastaanottaminen."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Tilin rekisteröinti epäonnistui: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Yritetään myöhemmin uudelleen."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Tilin rekisteröinti epäonnistui: virheellinen käyttäjänimi tai salasana."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Tilin rekisteröinti epäonnistui: tarkista palvelimen nimi."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Tili on tällä hetkellä sovelluksen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> käytössä."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-tilin tiedot"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-tilin tiedot"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Palvelin"</string>
+    <string name="username_title" msgid="2479375923477682328">"Käyttäjänimi"</string>
+    <string name="password_title" msgid="3323555249068171531">"Salasana"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Näyttönimi"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Lähettävän välityspalvelimen osoite"</string>
+    <string name="port_title" msgid="5952939408078626657">"Porttinumero"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Kuljetustyyppi"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Lähetä tarkistusviesti"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Aseta ensisijaiseksi tiliksi"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Käytetään lähteviin puheluihin"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Valinnaiset asetukset"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Vahvistuksen käyttäjänimi"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Käyttäjänimeä käytetään vahvistamiseen"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Ei asetettu&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Sama kuin käyttäjänimi&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Valinnainen&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Näytä kaikki koskettamalla"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Piilota kaikki koskettamalla"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on pakollinen, joten se ei voi olla tyhjä."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Porttinumeron tulee olla väliltä 1000–65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Ei internetyhteyttä"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Ei wifi-yhteyttä"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Tarkista internetyhteys ennen internetpuhelun soittamista."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Sinulla täytyy olla yhteys wifi-verkkoon soittaaksesi internetpuheluita (käytä Langaton verkko- ja verkkoasetuksia)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetpuheluita ei tueta"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automaattinen"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Lähetä aina"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Äänipuheluita ei tueta"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"En voi puhua nyt. Mikä hätänä?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Soitan sinulle heti takaisin."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Soitan sinulle myöhemmin."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"En voi puhua nyt. Soita myöhemmin?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Kirjoita oma…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Pikavastaukset"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Muokkaa pikavastausta"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Pikavastaukset"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Palauta oletussovellus"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Viesti lähetetty numeroon <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"yksi"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"kaksi"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"kolme"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"neljä"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"viisi"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"kuusi"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"seitsemän"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"kahdeksan"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"yhdeksän"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"tähti"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nolla"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"punta"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"soita"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"askelpalautin"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Kaiutin käytössä."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Puhelu mykistetty."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Vastaa"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Lähetä tekstiviesti"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Hylkää"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Värinä"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Värinä"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ääni"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Oletusääni (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Puhelimen soittoääni"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Värinä ja soittoääni"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Valintanäppäimien näppäinäänet"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Näppäimistön automaattinen täydennys"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Soittoääni ja värinä"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644
index 0000000..f80d40e
--- /dev/null
+++ b/res/values-fr/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Données mobiles"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Téléphone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Appels d\'urgence"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Téléphone"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Liste de numéros autorisés"</string>
+    <string name="unknown" msgid="6878797917991465859">"Inconnu"</string>
+    <string name="private_num" msgid="6713286113000232309">"Numéro privé"</string>
+    <string name="payphone" msgid="1931775086311769314">"Cabine téléphonique"</string>
+    <string name="onHold" msgid="9035493194749959955">"En attente"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Ligne occupée"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Réseau occupé"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Aucune réponse, délai expiré"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Serveur injoignable"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numéro injoignable"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nom d\'utilisateur ou mot de passe incorrect"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Appel effectué hors réseau"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Erreur serveur : réessayez plus tard."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Aucun signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Limite ACM dépassée"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Signal radio désactivé"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Aucune carte SIM ou erreur de carte SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Hors zone de couverture"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Les appels sortants sont restreints par la liste de numéros autorisés."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Vous ne pouvez pas effectuer d\'appels sortants tant que l\'interdiction d\'appel est activée."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Tous les appels sont restreints par un contrôle d\'accès."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Les appels d\'urgence sont restreints par un contrôle d\'accès."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Les appels ordinaires sont restreints par un contrôle d\'accès."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Numéro incorrect"</string>
+    <string name="confCall" msgid="1904840547188336828">"Conférence tél."</string>
+    <string name="call_lost" msgid="317670617901479594">"L\'appel a été perdu."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Le code IHM a été lancé."</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Exécution du code USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Code IHM annulé"</string>
+    <string name="cancel" msgid="5044513931633602634">"Annuler"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Le message USSD doit comporter entre <xliff:g id="MIN_LEN">%d</xliff:g> et <xliff:g id="MAX_LEN">%d</xliff:g> caractères. Veuillez réessayer."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gérer la conférence téléphonique"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Haut-parleur"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Écouteur du combiné"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Écouteurs filaires"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Envoyer les tonalités suivantes ?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Envoi des tonalités"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Envoyer"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Oui"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Non"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Remplacer le caractère générique par"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Numéro de messagerie vocale manquant"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Aucun numéro de messagerie vocale n\'est enregistré sur la carte SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Ajouter un numéro"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Votre carte SIM a été déverrouillée. Votre téléphone est en cours de déverrouillage..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Code PIN de déblocage du réseau SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Déverrouiller"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Rejeter"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Demande de déblocage du réseau…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Échec de la demande de déblocage du réseau."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Le réseau a bien été débloqué."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Paramètres d\'appel GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Paramètres d\'appel CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Noms des points d\'accès"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Paramètres du réseau"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Messagerie vocale"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"MV :"</string>
+    <string name="networks" msgid="8873030692174541976">"Opérateurs de réseau"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Paramètres d\'appel"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Autres paramètres"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Autres paramètres d\'appel \"GSM uniquement\""</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Autres paramètres d\'appel CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Autres paramètres d\'appel \"CDMA uniquement\""</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Paramètres du service réseau"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Numéro de l\'appelant"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Chargement des paramètres…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Numéro masqué pour les appels sortants"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numéro affiché pour les appels sortants"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utiliser les paramètres opérateur pour afficher mon numéro pour les appels sortants"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Appel en attente"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Me signaler les appels entrants lorsque je suis en communication"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Me signaler les appels entrants lorsque je suis en communication"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Paramètres de transfert d\'appel"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Transfert d\'appel"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Toujours transférer"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Toujours utiliser ce numéro"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Transfert de tous les appels"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Transfert de tous les appels vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numéro indisponible"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Désactivé"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Transférer si ligne occupée"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numéro de renvoi lorsque la ligne est occupée"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Transfert vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Désactivé"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone est indisponible."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Transf. si sans réponse"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numéro de renvoi lorsque vous ne répondez pas"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Transfert vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Désactivé"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone ne répond pas."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Transférer si injoignable"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numéro de renvoi si injoignable"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Transfert vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Désactivé"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone n\'est pas joignable."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Paramètres d\'appel"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Erreur des paramètres d\'appel"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Lecture des paramètres..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Mise à jour des paramètres..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Rétablissement des paramètres…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Réponse inattendue du réseau"</string>
+    <string name="exception_error" msgid="7027667130619518211">"Erreur de réseau ou de carte SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Les numéros autorisés sont activés dans l\'application de votre téléphone. Par conséquent, certaines fonctionnalités d\'appel ne fonctionnent pas."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Activez le signal radio avant d\'afficher ces paramètres."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Activer"</string>
+    <string name="disable" msgid="7274240979164762320">"Désactiver"</string>
+    <string name="change_num" msgid="239476305819844391">"Mettre à jour"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Valeur par défaut"</item>
+    <item msgid="7876195870037833661">"Masquer le numéro"</item>
+    <item msgid="1108394741608734023">"Afficher le numéro"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Le numéro de messagerie vocale a été modifié."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Impossible de modifier le numéro de la messagerie vocale."\n"Veuillez contacter votre opérateur si le problème persiste."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Impossible de modifier le numéro de transfert."\n"Veuillez contacter votre opérateur si le problème persiste."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Impossible de récupérer et d\'enregistrer les paramètres actuels du numéro de transfert."\n"Voulez-vous tout de même changer de fournisseur ?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Aucune modification n\'a été apportée."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Choisissez un service de messagerie vocale."</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mon opérateur"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Paramètres du réseau mobile"</string>
+    <string name="label_available" msgid="1181658289009300430">"Réseaux disponibles"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Recherche..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Aucun réseau trouvé."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Rechercher les réseaux"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Une erreur s\'est produite lors de la recherche de réseaux."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Votre carte SIM ne permet pas de vous connecter à ce réseau."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Impossible de se connecter à ce réseau pour le moment. Veuillez réessayer ultérieurement."</string>
+    <string name="registration_done" msgid="495135664535876612">"Enregistré sur le réseau."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Sélectionner un opérateur réseau"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Chercher tous les réseaux disponibles"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Sélectionner automatiquement"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Sélectionner automatiquement le réseau préféré"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Enregistrement automatique…"</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Mode réseau"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Changer le mode de fonctionnement du réseau"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Mode réseau préféré"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mode réseau préféré : WCDMA de préférence"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mode réseau préféré : GSM uniquement"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mode réseau préféré : WCDMA uniquement"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mode réseau préféré : GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mode réseau préféré : CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mode réseau préféré : CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mode réseau préféré : CDMA uniquement"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mode réseau préféré : EvDo uniquement"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Mode réseau préféré : CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Mode réseau préféré : LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Mode réseau préféré : général"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Mode réseau préféré : LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Général"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo uniquement"</item>
+    <item msgid="1508557726283094448">"CDMA sans EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatique"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automatique"</item>
+    <item msgid="7913148405605373434">"WCDMA uniquement"</item>
+    <item msgid="1524224863879435516">"GSM uniquement"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA de préférence"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Données activées"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Activer l\'accès aux données sur le réseau mobile"</string>
+    <string name="roaming" msgid="8871412572928323707">"Itinérance des données"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Se connecter aux services de données lors de l\'itinérance"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Se connecter aux services de données lors de l\'itinérance"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Vous avez été déconnecté, car vous avez quitté le réseau domestique et l\'itinérance des données est désactivée."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Autoriser l\'itinérance des données ? Des frais d\'itinérance importants peuvent s\'appliquer !"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Options GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Options CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Consommation des données"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Données utilisées sur la période en cours"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Période d\'utilisation des données"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Règles relatives au taux de transfert des données"</string>
+    <string name="throttle_help" msgid="243651091785169900">"En savoir plus"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> sur <xliff:g id="USED_2">%3$s</xliff:g> - (<xliff:g id="USED_1">%2$d</xliff:g> ٪) du maximum par période"\n"La prochaine période démarre dans <xliff:g id="USED_3">%4$d</xliff:g> jours (<xliff:g id="USED_4">%5$s</xliff:g>)."</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> sur <xliff:g id="USED_2">%3$s</xliff:g> - (<xliff:g id="USED_1">%2$d</xliff:g> ٪) du maximum par période"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum dépassé"\n"Taux de transfert des données réduit à <xliff:g id="USED_1">%2$d</xliff:g> Ko/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ du cycle écoulé"\n"La prochaine période démarre dans <xliff:g id="USED_1">%2$d</xliff:g> jours (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Taux de transfert des données réduit à <xliff:g id="USED">%1$d</xliff:g> Ko/s si le plafond d\'utilisation est dépassé"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Plus d\'informations sur les règles de votre opérateur mobile concernant l\'utilisation des données sur son réseau"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Diffusion cellulaire par SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Option \"Diffusion cellulaire par SMS\" activée"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Option \"Diffusion cellulaire par SMS\" désactivée"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Paramètres de la diffusion cellulaire par SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Diffusion des services d\'urgence"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Option \"Diffusion des services d\'urgence\" activée"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Option \"Diffusion des services d\'urgence\" désactivée"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administration"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Option \"Administration\" activée"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Option \"Administration\" désactivée"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Maintenance"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Option \"Maintenance\" activée"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Option \"Maintenance\" désactivée"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Actualités générales"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Économie et finance"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Actualités sportives"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Culture et loisirs"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Locales"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Option \"Actualités locales\" activée"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Option \"Actualités locales\" désactivée"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Régionales"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Option \"Actualités régionales\" activée"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Option \"Actualités régionales\" désactivée"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nationales"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Option \"Actualités nationales\" activée"</string>
+    <string name="national_disable" msgid="326018148178601166">"Option \"Actualités nationales\" désactivée"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internationales"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Option \"Actualités internationales\" activée"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Option \"Actualités internationales\" désactivée"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Langue"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Sélectionnez la langue des actualités"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Anglais"</item>
+    <item msgid="1151988412809572526">"Français"</item>
+    <item msgid="577840534704312665">"Espagnol"</item>
+    <item msgid="8385712091143148180">"Japonais"</item>
+    <item msgid="1858401628368130638">"Coréen"</item>
+    <item msgid="1933212028684529632">"Chinois"</item>
+    <item msgid="1908428006803639064">"Hébreu"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Langues"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Météo locale"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Option \"Météo locale\" activée"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Option \"Météo locale\" désactivée"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Infos trafic locales"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Option \"Infos trafic locales\" activée"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Option \"Infos trafic locales\" désactivée"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Horaires des vols des aéroports à proximité"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Option \"Horaires des vols des aéroports à proximité\" activée"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Option \"Horaires des vols des aéroports à proximité\" désactivée"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Option \"Restaurants\" activée"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Option \"Restaurants\" désactivée"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Hébergements"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Option \"Hébergements\" activée"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Option \"Hébergements\" désactivée"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Annuaire des commerces"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Option \"Annuaire des commerces\""</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Option \"Annuaire des commerces\" désactivée"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Annonces"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Option \"Annonces\" activée"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Option \"Annonces\" désactivée"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cours de bourse"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Option \"Cours de bourse\" activée"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Option \"Cours de bourse\" désactivée"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Offres d\'emploi"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Option \"Offres d\'emploi\" activée"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Option \"Offres d\'emploi\" désactivée"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Médecine, services de santé et hôpitaux"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Option \"Médecine, services de santé et hôpitaux\" activée"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Option \"Médecine, services de santé et hôpitaux\" désactivée"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologies"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Option \"Nouvelles technologies\" activée"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Option \"Technologies\" désactivée"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-catégories"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Option \"Multi-catégories\" activée"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Option \"Multi-catégories\" désactivée"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Réseau 2G seulement"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Économise la batterie"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sélection système"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Modifier le mode d\'itinérance CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sélection système"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Réseaux domestiques uniquement"</item>
+    <item msgid="1205664026446156265">"Automatique"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Abonnement CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Basculer entre les cartes RUIM/SIM et NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonnement"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activer le périphérique"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurer service données"</string>
+    <string name="fdn" msgid="7878832555095183202">"Numéros autorisés"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Liste de numéros autorisés"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activation des numéros autorisés"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"La liste de numéros autorisés est activée."</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Liste de numéros autorisés désactivée"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Activer numéros autorisés"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Désactiver numéros autorisés"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Modifier le code PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Désactiver numéros autorisés"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Activer"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gérer la liste de numéros autorisés"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Modifier le code PIN pour l\'accès aux numéros autorisés"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gérer la liste des numéros de téléphone"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Confidentialité voix"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activer le mode de confidentialité amélioré"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Mode TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Définir le mode TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Réessayer automatiquement"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Activer le mode Réessayer automatiquement"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Ajouter un contact"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Modifier le contact"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Supprimer le contact"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Saisir le code PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nom"</string>
+    <string name="number" msgid="7905950798349903858">"Numéro"</string>
+    <string name="save" msgid="4094274636321939086">"Enregistrer"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Ajouter un numéro autorisé"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Ajout du numéro autorisé..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Numéro autorisé ajouté"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Modifier le numéro autorisé"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Mise à jour du numéro autorisé…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Mise à jour du numéro autorisé effectuée"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Supprimer un numéro autorisé"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Suppression du numéro autorisé…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Numéro autorisé supprimé"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Le numéro autorisé n\'a pas été mis à jour, car vous avez saisi un code PIN incorrect."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Le numéro autorisé n\'a pas été mis à jour, car il ne doit pas comporter plus de 20 chiffres."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Le numéro autorisé n\'a pas été mis à jour. Soit le code PIN2 est incorrect, soit le numéro de téléphone a été rejeté."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Lecture de la carte SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Aucun contact n\'a été trouvé sur votre carte SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Sélection des contacts à importer"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Pour importer des contacts depuis la carte SIM, désactivez tout d\'abord le mode Avion."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Activer/désactiver le code PIN de la carte SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Modifier le code PIN de la carte SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Code PIN de la carte SIM :"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Ancien code PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nouveau code PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmer le nouveau code PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"L\'ancien code PIN saisi est incorrect. Veuillez réessayer."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Les codes PIN saisis ne correspondent pas. Veuillez réessayer."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Saisissez un code PIN comprenant 4 à 8 chiffres."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Désactiver le code PIN de la carte SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Activer le code PIN de la carte SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Merci de patienter..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Code PIN de la carte SIM activé."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Code PIN de la carte SIM désactivé."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Le code PIN saisi est incorrect."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Modification du code PIN de la carte SIM réussie."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Mot de passe incorrect. La carte SIM est verrouillée ! Clé PUK2 requise."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Ancien code PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nouveau code PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmer le nouveau code PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"La clé PUK2 saisie est incorrecte. Veuillez réessayer."</string>
+    <string name="badPin2" msgid="1041576234483629991">"L\'ancien code PIN2 saisi est incorrect. Veuillez réessayer."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Les codes PIN2 saisis ne correspondent pas. Veuillez réessayer."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Saisissez un code PIN2 comprenant 4 à 8 chiffres."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Saisissez une clé PUK2 à 8 chiffres."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Modification du code PIN2 réussie."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Saisissez la clé PUK2."</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Le mot de passe est incorrect. Veuillez modifier le code PIN2, puis réessayer."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Mot de passe incorrect. Carte SIM verrouillée. Clé PUK2 requise."</string>
+    <string name="doneButton" msgid="2859593360997984240">"OK"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Conférence téléphonique à <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"N° messagerie vocale"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Appel en cours…"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Nouvelle tentative"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Conférence téléphonique"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Appel entrant"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Fin de l\'appel"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"En attente"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Fin de l\'appel.."</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Appel en cours"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mon numéro est le <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Numérotation en cours…"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Appel manqué"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Appels manqués"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> appels manqués"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Appel manqué de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Appel en cours"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"En attente"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Appel entrant"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nouveau message vocal"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nouveaux messages vocaux (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Composer le <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Numéro de messagerie vocale inconnu"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Aucun service"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Réseau sélectionné (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponible"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Raccrocher"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Rappeler"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Message"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Veuillez d\'abord désactiver le mode Avion, afin d\'effectuer un appel."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Non enregistré sur le réseau."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Réseau mobile non disponible"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"L\'appel n\'a pas été effectué. Le numéro composé n\'est pas valide."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"L\'appel n\'a pas été effectué."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Lancement de la séquence IHM..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Ce service n\'est pas pris en charge."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Impossible de changer d\'appel."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Impossible de dissocier l\'appel"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Impossible de transférer l\'appel."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Impossible d\'effectuer des conférences téléphoniques."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Impossible de refuser l\'appel."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Impossible de libérer le(s) appel(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Appel Internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Appel d\'urgence"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activation du signal radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Hors zone de couverture. Nouvelle tentative..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"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" msgid="5556166819619323893">"Appel non effectué. Veuillez composer un numéro d\'urgence !"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilisez le clavier pour composer un numéro."</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"En attente"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Raccrocher"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Clavier"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Silencieux"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Autre appel"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Fusionner les appels"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Permuter"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gérer les appels"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gérer la conférence"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Appel vidéo"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importer"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Tout importer"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importation des contacts SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer à partir des contacts"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Assistance auditive"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activer la compatibilité du service d\'assistance auditive"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Mode TTY désactivé"</item>
+    <item msgid="3971695875449640648">"TTY complet"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tonalités DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Définir la durée des tonalités DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normales"</item>
+    <item msgid="2883365539347850535">"Longues"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Message réseau"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activer votre téléphone"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Vous devez passer un appel spécial pour activer le service de téléphonie. "\n\n"Après avoir appuyé sur \"Activer\", écoutez les instructions qui vous permettront d\'activer votre téléphone."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Ignorer l\'activation ?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Si vous poursuivez sans activer votre mobile, vous ne pourrez ni téléphoner, ni vous connecter à des réseaux de données mobiles. La connexion à un réseau Wi-Fi reste possible. Vous serez invité à effectuer l\'activation à chaque démarrage du téléphone."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ignorer"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activer"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Votre téléphone est activé"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problème lors de l\'activation"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Suivez les instructions orales jusqu\'au bout de la procédure d\'activation."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Ht. parleur"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Veuillez patienter pendant la programmation de votre téléphone."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Échec de la programmation."</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Votre téléphone est désormais activé. Un délai de 15 minutes peut être nécessaire avant de démarrer le service."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Votre téléphone n\'a pas pu être activé. "\n"Il est possible que vous deviez vous déplacer vers une zone disposant d\'une meilleure couverture (près d\'une fenêtre ou à l\'extérieur)."\n\n"Veuillez réessayer ou appeler le service client pour plus d\'options."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"NOMBRE EXCESSIF D\'ÉCHECS SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Retour"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Réessayer"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Suivant"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Mode de rappel d\'urgence activé"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mode de rappel d\'urgence"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Connexion des données désactivée"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Aucune connexion de données pendant <xliff:g id="COUNT">%s</xliff:g> minute"</item>
+    <item quantity="other" msgid="3122217344579273583">"Aucune connexion de données pendant <xliff:g id="COUNT">%s</xliff:g> minutes"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Le mode de rappel d\'urgence sera actif sur le téléphone pendant <xliff:g id="COUNT">%s</xliff:g> minute. Tant que ce mode est actif, vous ne pouvez utiliser aucune des applications nécessitant une connexion Internet. Voulez-vous quitter maintenant ?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Le mode de rappel d\'urgence sera actif sur le téléphone pendant <xliff:g id="COUNT">%s</xliff:g> minutes. Tant que ce mode est actif, vous ne pouvez utiliser aucune des applications nécessitant une connexion Internet. Voulez-vous quitter maintenant ?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"L\'action sélectionnée n\'est pas disponible en mode de rappel d\'urgence. Ce mode sera actif sur le téléphone pendant <xliff:g id="COUNT">%s</xliff:g> minute. Voulez-vous quitter maintenant ?"</item>
+    <item quantity="other" msgid="6115622137771382224">"L\'action sélectionnée n\'est pas disponible en mode de rappel d\'urgence. Ce mode sera actif sur le téléphone pendant <xliff:g id="COUNT">%s</xliff:g> minutes. Voulez-vous quitter maintenant ?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"L\'action sélectionnée n\'est pas disponible pendant un appel d\'urgence."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Sortie du mode de rappel d\'urgence…"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Oui"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Non"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Ignorer"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Service"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuration"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Non défini&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Autres paramètres d\'appel"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"photo du contact"</string>
+    <string name="goPrivate" msgid="865837794424530980">"mode privé"</string>
+    <string name="selectContact" msgid="781975788478987237">"sélectionner un contact"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Paramètres d\'appel Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Comptes d\'appels Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Comptes"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Recevoir les appels"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Réduit la durée de vie de la batterie"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Passer un appel Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Appels Internet (Wi-Fi uniquement)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Pour tous les appels quand un réseau de données est disponible"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Seulement pour les appels Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Demander à chaque fois"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Pour tous les appels"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Passer un appel"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Utiliser un compte de téléphonie par Internet :"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Utiliser systématiquement pour passer des appels Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Vous pouvez changer le compte à utiliser par défaut pour les appels Internet depuis l\'écran Téléphone &gt; Paramètres &gt; Paramètres d\'appel Internet &gt; Comptes."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Appel de mobile"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Appel par Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Aucun compte de téléphonie par Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Aucun compte d\'appels Internet sur ce téléphone. Voulez-vous en ajouter un maintenant ?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Ajouter"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Ajouter un compte"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Supprimer le compte"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Comptes SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Enregistrement du compte…"</string>
+    <string name="removing_account" msgid="7183999896088628100">"Suppression du compte…"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Enregistrer"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Supprimer"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Fermer le profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Fermer"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Compte principal. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Vérification de l\'état..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Enregistrement en cours…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Tentative en cours…"</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Réception d\'appels impossible."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"L\'enregistrement du compte a été interrompu, car il n\'y a pas de connexion Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"La procédure d\'enregistrement du compte a été interrompue, car il n\'existe aucune connexion Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Échec de l\'enregistrement du compte."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Réception d\'appels."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Échec de l\'enregistrement du compte : <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>. Une nouvelle tentative sera effectuée ultérieurement."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Échec de l\'enregistrement du compte : nom d\'utilisateur ou mot de passe non valide."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Échec de l\'enregistrement du compte : veuillez vérifier le nom du serveur."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Ce compte est actuellement utilisé par l\'application <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Infos du compte SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Détails du compte SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Serveur"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nom d\'utilisateur"</string>
+    <string name="password_title" msgid="3323555249068171531">"Mot de passe"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nom affiché"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adresse de proxy sortant"</string>
+    <string name="port_title" msgid="5952939408078626657">"N° de port"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Type de transport"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Envoyer un keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Définir comme compte principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilisé pour les appels sortants"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Paramètres facultatifs"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nom d\'utilisateur d\'authentification"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nom d\'utilisateur utilisé pour l\'authentification"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Non défini&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Identique au nom d\'utilisateur&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Facultatif&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Appuyer ici pour tout afficher"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Appuyer ici pour tout masquer"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Le champ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> est obligatoire."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Le numéro de port doit être compris entre 1000 et 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Pas de connexion Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Aucune connexion Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Pour effectuer un appel Internet, vérifiez tout d\'abord la connexion Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Les appels Internet nécessitent une connexion Wi-Fi pouvant être activée dans les paramètres \"Sans fil et réseaux\"."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Appels Internet non pris en charge"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatique"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Toujours envoyer"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Appels vocaux non pris en charge"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Peux pas parler. Quoi de neuf ?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Je te rappelle tout de suite."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Je t\'appellerai plus tard."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Peux pas parler. On se rappelle ?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Réponse personnalisée..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Réponses rapides"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Modifier les réponses rapides"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Réponse rapide"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Rétablir application par défaut"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Message envoyé à <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"un"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"deux"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"trois"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"quatre"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinq"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"six"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sept"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"huit"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"neuf"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"étoile"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zéro"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"dièse"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"composer"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"retour arrière"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Haut-parleur activé"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Son coupé"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Réponse"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Envoyer un SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Refuser"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreur"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreur"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonnerie"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Sonnerie par défaut (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Sonnerie du téléphone"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Mode Vibreur lorsque le tél. sonne"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Numérotation sonore"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Saisie semi-auto clavier num."</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Sonnerie et vibreur"</string>
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
new file mode 100644
index 0000000..89c133c
--- /dev/null
+++ b/res/values-hi/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"फ़ोन"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"आपातकालीन डायलर"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"फ़ोन"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN सूची"</string>
+    <string name="unknown" msgid="6878797917991465859">"अज्ञात"</string>
+    <string name="private_num" msgid="6713286113000232309">"निजी नंबर"</string>
+    <string name="payphone" msgid="1931775086311769314">"सशुल्क फ़ोन"</string>
+    <string name="onHold" msgid="9035493194749959955">"होल्ड पर"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"लाइन व्यस्त"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"नेटवर्क व्यस्त"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"कोई प्रतिसाद नहीं, समयबाह्य"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"सर्वर पहुंच योग्य नहीं है"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"नंबर पहुंच योग्य नहीं है"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"गलत उपयोगकर्ता नाम या पासवर्ड"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"नेटवर्क के बाहर से कॉल किया गया"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"सर्वर त्रुटि. बाद में पुन: प्रयास करें."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"कोई सिग्नल नहीं"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM सीमा पार हो गई"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"रेडियो बंद"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"कोई सिम नहीं या सिम त्रुटि"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"सेवा क्षेत्र के बाहर"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"आउटगोइंग कॉल FDN द्वारा प्रतिबंधित हैं."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"जब कॉल अवरोधन चालू हो, तो आप आउटगोइंग कॉल नहीं कर सकते."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"सभी कॉल पहुंच नियंत्रण द्वारा प्रतिबंधित हैं."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"आपातकालीन कॉल पहुंच नियंत्रण द्वारा प्रतिबंधित किए गए हैं."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"सामान्य कॉल पहुंच नियंत्रण द्वारा प्रतिबंधित हैं."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"अमान्य नंबर"</string>
+    <string name="confCall" msgid="1904840547188336828">"कॉन्फ़्रेंस कॉल"</string>
+    <string name="call_lost" msgid="317670617901479594">"कॉल कट चुकी है."</string>
+    <string name="ok" msgid="3811371167865772377">"ठीक"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI कोड प्रारंभ किया गया"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD कोड चल रहा है…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI कोड रद्द किया गया"</string>
+    <string name="cancel" msgid="5044513931633602634">"रद्द करें"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD संदेश <xliff:g id="MIN_LEN">%d</xliff:g> और <xliff:g id="MAX_LEN">%d</xliff:g> वर्णों के बीच होना चाहिए. कृपया पुन: प्रयास करें."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"कॉन्फ़्रेंस कॉल प्रबंधित करें"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"स्‍पीकर"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"हैंडसेट ईयरपीस"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"वायर वाला हेडसेट"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"निम्न टोन भेजें?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"भेजने वाली टोन"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"भेजें"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"हां"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"नहीं"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"वाइल्ड वर्ण को इससे बदलें:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"गुम ध्वनिमेल नंबर"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"सिम कार्ड पर कोई ध्वनिमेल नंबर संग्रहीत नहीं है."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"नंबर जोड़ें"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"आपका सिम कार्ड अनब्लॉक कर दिया गया है. आपका फ़ोन अनलॉक किया जा रहा है..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"सिम नेटवर्क अनलॉक पिन"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"अनब्लॉक करें"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"खारिज करें"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"नेटवर्क अनलॉक के लिए अनुरोध कर रहा है..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"नेटवर्क अनलॉक अनुरोध असफल."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"नेटवर्क अनलॉक सफल रहा."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM कॉल सेटिंग"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA कॉल सेटिंग"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"पहुंच बिंदु नाम"</string>
+    <string name="settings_label" msgid="3876743539816984008">"नेटवर्क सेटिंग"</string>
+    <string name="voicemail" msgid="8693759337917898954">"ध्वनिमेल"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"नेटवर्क ऑपरेटर"</string>
+    <string name="call_settings" msgid="6112441768261754562">"कॉल सेटिंग"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"अतिरिक्त सेटिंग"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"अतिरिक्त केवल GSM कॉल सेटिंग"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"अतिरिक्त CDMA कॉल सेटिंग"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"अतिरिक्त केवल CDMA कॉल सेटिंग"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"नेटवर्क सेवा सेटिंग"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"कॉलर आईडी"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"सेटिंग लोड हो रही हैं…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"आउटगोइंग कॉल में छुपे नंबर"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"आउटगोइंग कॉल में प्रदर्शित किया गया नंबर"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"आउटगोइंग कॉल में मेरा नंबर दिखाने के लिए डिफ़ॉल्ट ऑपरेटर सेटिंग का उपयोग करें"</string>
+    <string name="labelCW" msgid="6120513814915920200">"कॉल प्रतीक्षा"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"कॉल के दौरान, मुझे इनकमिंग कॉल की सूचना दें"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"कॉल के दौरान, मुझे इनकमिंग कॉल की सूचना दें"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"कॉल अग्रेषण सेटिंग"</string>
+    <string name="labelCF" msgid="2574386948026924737">"कॉल अग्रेषण"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"हमेशा अग्रेषित करें"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"हमेशा इस नंबर का उपयोग करें"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"सभी कॉल अग्रेषित कर रहा है"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"सभी कॉल <xliff:g id="PHONENUMBER">{0}</xliff:g> को अग्रेषित किए जा रहे हैं"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"नंबर अनुपलब्ध है"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"अक्षम की गई"</string>
+    <string name="labelCFB" msgid="218938523102207587">"व्यस्त होने पर अग्रेषित करें"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"व्यस्त रहते समय नंबर"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"<xliff:g id="PHONENUMBER">{0}</xliff:g> को अग्रेषित कर रहा है"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"अक्षम की गई"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"जब आपका फ़ोन व्यस्त हो, तो आपका ऑपरेटर कॉल अग्रेषण अक्षम करने का समर्थन नहीं करता."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"अनुत्तरित होने पर अग्रेषित करें"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"अनुत्तरित होने पर नंबर"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"<xliff:g id="PHONENUMBER">{0}</xliff:g> को अग्रेषित कर रहा है"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"अक्षम की गई"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"जब आपका फ़ोन उत्तर न दे, तो आपका ऑपरेटर कॉल अग्रेषण अक्षम करने का समर्थन नहीं करता."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"पहुंच योग्य न होने पर अग्रेषित करें"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"पहुंच योग्य न होने पर नंबर"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"<xliff:g id="PHONENUMBER">{0}</xliff:g> को अग्रेषित कर रहा है"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"अक्षम की गई"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"जब आपका फ़ोन पहुंच योग्य न हो, तो आपका कैरियर कॉल अग्रेषण अक्षम करने का समर्थन नहीं करता."</string>
+    <string name="updating_title" msgid="6146755386174019046">"कॉल सेटिंग"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"कॉल सेटिंग त्रुटि"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"सेटिंग पढ़ रहा है..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"सेटिंग अपडेट कर रहा है..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"सेटिंग वापस ला रहा है..."</string>
+    <string name="response_error" msgid="6674110501330139405">"नेटवर्क से अनपेक्षित प्रतिसाद."</string>
+    <string name="exception_error" msgid="7027667130619518211">"नेटवर्क या सिम कार्ड त्रुटि."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"आपके फ़ोन एप्‍लिकेशन की फ़िक्‍स्‍ड डायलिंग नंबर सेटिंग चालू है. इसके परिणामस्‍वरूप, कॉल से संबंधित कुछ सुविधाएं कार्य नहीं कर रही हैं."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"इन सेटिंग को देखने के पहले रेडियो चालू करें."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"ठीक"</string>
+    <string name="enable" msgid="1059008390636773574">"सक्षम करें"</string>
+    <string name="disable" msgid="7274240979164762320">"अक्षम करें"</string>
+    <string name="change_num" msgid="239476305819844391">"अपडेट करें"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"नेटवर्क डिफ़ॉल्ट"</item>
+    <item msgid="7876195870037833661">"नंबर छुपाएं"</item>
+    <item msgid="1108394741608734023">"नंबर दिखाएं"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"ध्वनिमेल नंबर बदला गया."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"ध्वनिमेल नंबर बदला नहीं जा सका."\n"यदि यह समस्या बनी रहती है, तो अपने कैरियर से संपर्क करें."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"अग्रेषण नंबर बदला नहीं जा सका."\n"यदि यह समस्या बनी रहती है, तो अपने कैरियर से संपर्क करें."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"वर्तमान अग्रेषण संख्‍या सेटिंग पुनर्प्राप्त नही की जा सकी और सहेजी नहीं जा सकी."\n"किसी भी तरह नए प्रदाता पर स्विच करें?"</string>
+    <string name="no_change" msgid="3186040086622435212">"कोई परिवर्तन नहीं किए गए."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"ध्वनिमेल सेवा चुनें"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"मेरा कैरियर"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"मोबाइल नेटवर्क सेटिंग"</string>
+    <string name="label_available" msgid="1181658289009300430">"उपलब्ध नेटवर्क"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"खोज रहा है..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"कोई नेटवर्क नहीं मिला."</string>
+    <string name="search_networks" msgid="1601136049300882441">"नेटवर्क खोजें"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"नेटवर्क खोज के दौरान त्रुटि."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> पर पंजीकरण कर रहा है…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"आपका सिम कार्ड इस नेटवर्क पर कनेक्शन की अनुमति नहीं देता है."</string>
+    <string name="connect_later" msgid="2308119155752343975">"अभी इस नेटवर्क से कनेक्ट नहीं कर सकते. बाद में पुन: प्रयास करें."</string>
+    <string name="registration_done" msgid="495135664535876612">"नेटवर्क पर पंजीकृत."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"कोई नेटवर्क ऑपरेटर चुनें"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"सभी उपलब्ध नेटवर्क खोजें"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"अपने आप चुनें"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"पसंदीदा नेटवर्क अपने आप चुनें"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"स्वचालित पंजीकरण..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"नेटवर्क मोड"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"नेटवर्क संचालन मोड बदलें"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"पसंदीदा नेटवर्क मोड"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"पसंदीदा नेटवर्क मोड: WCDMA को प्राथमिकता"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"पसंदीदा नेटवर्क मोड: केवल GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"पसंदीदा नेटवर्क मोड: केवल WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"पसंदीदा नेटवर्क मोड: CDMA / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"पसंदीदा नेटवर्क मोड: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"पसंदीदा नेटवर्क मोड: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"पसंदीदा नेटवर्क मोड: केवल CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"पसंदीदा नेटवर्क मोड: केवल EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"पसंदीदा नेटवर्क मोड: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"पसंदीदा नेटवर्क मोड: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"पसंदीदा नेटवर्क मोड: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"पसंदीदा नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"पसंदीदा नेटवर्क मोड: वैश्विक"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"पसंदीदा नेटवर्क मोड: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"वैश्विक"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"केवल EvDo"</item>
+    <item msgid="1508557726283094448">"EvDo के बिना CDMA"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo स्वतः"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA स्वत:"</item>
+    <item msgid="7913148405605373434">"केवल WCDMA"</item>
+    <item msgid="1524224863879435516">"केवल GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA पसंदीदा"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"डेटा सक्षम किया गया"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"मोबाइल नेटवर्क पर डेटा पहुंच सक्षम करें"</string>
+    <string name="roaming" msgid="8871412572928323707">"डेटा रोमिंग"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"रोमिंग के समय डेटा सेवाएं कनेक्ट करें"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"रोमिंग के समय डेटा सेवाएं कनेक्ट करें"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"आपकी डेटा कनेक्टिविटी खो गई है क्योंकि आप डेटा रोमिंग बंद करके अपने होम नेटवर्क से बाहर आ गए हैं."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"डेटा रोमिंग की अनुमति दें? आपको रोमिंग शुल्‍क लग सकते हैं!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS विकल्प"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA विकल्प"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"डेटा उपयोग"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"वर्तमान अवधि में उपयोग किया गया डेटा"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"डेटा उपयोग अवधि"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"डेटा दर नीति"</string>
+    <string name="throttle_help" msgid="243651091785169900">"अधिक जानें"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_2">%3$s</xliff:g> में से <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) अवधि अधिकतम"\n"अगली अवधि <xliff:g id="USED_3">%4$d</xliff:g> दिनों (<xliff:g id="USED_4">%5$s</xliff:g>) में प्रारंभ होगी"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_2">%3$s</xliff:g> में से <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) अवधि अधिकतम"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> अधिकतम सीमा पार हो गई"\n"डेटा दर <xliff:g id="USED_1">%2$d</xliff:g> Kb/s तक कम हो गई है"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"चक्र का <xliff:g id="USED_0">%1$d</xliff:g>٪ बीत चुका है"\n"अगली अवधि <xliff:g id="USED_1">%2$d</xliff:g> दिन में आरंभ होगी (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"यदि डेटा उपयोग की सीमा पार होती है, तो डेटा दर <xliff:g id="USED">%1$d</xliff:g> Kb/s तक कम हो जाती है."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"आपके कैरियर की मोबाइल नेटवर्क डेटा उपयोग नीति के बारे में अधिक जानकारी"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"सेल प्रसारण SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"सेल प्रसारण SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"सेल प्रसारण SMS सक्षम किया गया"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"सेल प्रसारण SMS अक्षम किए गए"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"सेल प्रसारण SMS सेटिंग"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"आपातकालीन प्रसारण"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"आपातकालीन प्रसारण सक्षम किया गया"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"आपातकालीन प्रसारण अक्षम किया गया"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"व्यवस्थापकीय"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"व्यवस्थापकीय सक्षम किया गया"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"व्यवस्थापकीय अक्षम किया गया"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"रखरखाव"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"रखरखाव सक्षम किया गया"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"रखरखाव अक्षम किया गया"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"सामान्य समाचार"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"व्यवसाय और वित्तीय समाचार"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"खेल समाचार"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"मनोरंजक समाचार"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"स्थानीय"</string>
+    <string name="local_enable" msgid="6370463247609136359">"स्थानीय समाचार सक्षम किए गए"</string>
+    <string name="local_disable" msgid="4405691986943795798">"स्थानीय समाचार अक्षम किए गए"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"क्षेत्रीय"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"क्षेत्रीय समाचार सक्षम किए गए"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"क्षेत्रीय समाचार अक्षम किए गए"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"राष्ट्रीय"</string>
+    <string name="national_enable" msgid="1172443648912246952">"राष्ट्रीय समाचार सक्षम किए गए"</string>
+    <string name="national_disable" msgid="326018148178601166">"राष्ट्रीय समाचार अक्षम किए गए"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"अंतर्राष्‍ट्रीय"</string>
+    <string name="international_enable" msgid="5855356769925044927">"अंतर्राष्ट्रीय समाचार सक्षम किए गए"</string>
+    <string name="international_disable" msgid="2850648591041088931">"अंतर्राष्ट्रीय समाचार अक्षम किए गए"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"भाषा"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"समाचार भाषा को चुनें"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"अंग्रेज़ी"</item>
+    <item msgid="1151988412809572526">"फ़्रांसीसी"</item>
+    <item msgid="577840534704312665">"स्पेनिश"</item>
+    <item msgid="8385712091143148180">"जापानी"</item>
+    <item msgid="1858401628368130638">"कोरियाई"</item>
+    <item msgid="1933212028684529632">"चीनी"</item>
+    <item msgid="1908428006803639064">"हिब्रू"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"भाषाएं"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"स्थानीय मौसम"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"स्थानीय मौसम सक्षम किया गया"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"स्थानीय मौसम अक्षम किया गया"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"क्षेत्र ट्रैफिक रिपोर्ट"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"क्षेत्र ट्रैफिक रिपोर्ट सक्षम की गई"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"क्षेत्र ट्रैफिक रिपोर्ट अक्षम की गई"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"स्थानीय हवाई अड्डा उड़ान शेड्यूल"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"स्थानीय हवाई अड्डा उड़ान शेड्यूल सक्षम"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"स्थानीय हवाई अड्डा उड़ान शेड्यूल अक्षम किया गया"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"रेस्तरां"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"रेस्तरां सक्षम किए गए"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"रेस्तरां अक्षम किए गए"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"लॉजिंग"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"लॉजिंग सक्षम की गई"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"लॉजिंग अक्षम की गई"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"रिटेल निर्देशिका"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"रिटेल निर्देशिका सक्षम की गई"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"रिटेल निर्देशिका अक्षम की गई"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"विज्ञापन"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"विज्ञापन सक्षम किए गए"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"विज्ञापन अक्षम किए गए"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"शेयर भाव"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"शेयर भाव सक्षम किए गए"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"शेयर भाव अक्षम किए गए"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"रोज़गार के अवसर"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"रोज़गार के अवसर सक्षम किए गए"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"रोज़गार के अवसर अक्षम किए गए"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"चिकित्सा, स्वास्थ्य और अस्पताल"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"चिकित्सा, स्वास्थ्य और अस्पताल सक्षम"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"चिकित्सा, स्वास्थ्य और अस्पताल अक्षम"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"तकनीकी समाचार"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"तकनीकी समाचार सक्षम किए गए"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"तकनीकी समाचार अक्षम किए गए"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"बहु-श्रेणी"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"बहु-श्रेणी सक्षम की गई"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"बहु-श्रेणी अक्षम की गई"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"केवल 2G नेटवर्क का उपयोग करें"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"बैटरी बचाता है"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"सिस्टम चयन"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMA रोमिंग मोड बदलें"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"सिस्टम चयन"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"केवल होम"</item>
+    <item msgid="1205664026446156265">"स्वचालित"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA सदस्यता"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/सिम और NV के बीच बदलें"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"ग्राहकी"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/सिम"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"उपकरण सक्रिय करें"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"डेटा सेवा सेट करें"</string>
+    <string name="fdn" msgid="7878832555095183202">"फ़िक्स्ड डायलिंग नंबर"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN सूची"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN सक्रियण"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"फ़िक्स्ड डायलिंग नंबर सक्षम किए गए"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"फ़िक्स्ड डायलिंग नंबर अक्षम किए गए हैं"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"FDN सक्षम करें"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"FDN अक्षम करें"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"पिन2 बदलें"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN अक्षम करें"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN सक्षम करें"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"फ़िक्स्ड डायलिंग नंबर प्रबंधित करें"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"FDN पहुंच के लिए पिन बदलें"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"फ़ोन नंबर सूची प्रबंधित करें"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"ध्वनि गोपनीयता"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"उन्नत गोपनीयता मोड सक्षम करें"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY मोड"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY मोड सेट करें"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"स्वतः पुन: प्रयास"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"स्वतः पुन: प्रयास मोड सक्षम करें"</string>
+    <string name="menu_add" msgid="1882023737425114762">"संपर्क जोड़ें"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"संपर्क संपादित करें"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"संपर्क हटाएं"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"पिन2 लिखें"</string>
+    <string name="name" msgid="7329028332786872378">"नाम"</string>
+    <string name="number" msgid="7905950798349903858">"नंबर"</string>
+    <string name="save" msgid="4094274636321939086">"सहेजें"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"फ़िक्स्ड डायलिंग नंबर जोड़ें"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"फ़िक्स्ड डायलिंग नंबर जोड़ रहा है..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"फ़िक्स्ड डायलिंग नंबर जोड़ा गया."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"फ़िक्स्ड डायलिंग नंबर संपादित करें"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"फ़िक्स्ड डायलिंग नंबर अपडेट कर रहा है…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"फ़िक्स्ड डायलिंग नंबर अपडेट किया गया."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"फ़िक्स्ड डायलिंग नंबर हटाएं"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"फ़िक्स्ड डायलिंग नंबर हटा रहा है..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"फ़िक्स्ड डायलिंग नंबर हटाया गया."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN अपडेट नहीं किया गया था क्योंकि आपने गलत पिन लिखा है."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN अपडेट नहीं था क्योंकि नंबर में 20 से अधिक अंक नहीं हो सकते."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN अपडेट नहीं किया गया था. PIN2 गलत था, या फ़ोन नंबर अस्वीकृत था."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"सिम कार्ड से पढ़ रहा है…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"आपके सिम कार्ड पर कोई संपर्क नहीं है."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"आयात करने के लिए संपर्कों को चुनें"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"सिम कार्ड से संपर्क आयात करने के लिए, पहले हवाई जहाज़ मोड बंद करें."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"सिम पिन सक्षम/अक्षम करें"</string>
+    <string name="change_pin" msgid="9174186126330785343">"सिम पिन बदलें"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"सिम पिन:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"पुराना पिन"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"नया पिन"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"नए पिन की पुष्टि करें"</string>
+    <string name="badPin" msgid="8955102849303984935">"आपके द्वारा लिखा गया पुराना पिन सही नहीं है. पुनः प्रयास करें."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"आपके द्वारा लिखे गए पिन का मिलान नहीं होता. पुनः प्रयास करें."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"कोई ऐसा पिन लिखें, जिसमें 4 से 8 अंक हों."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"सिम पिन अक्षम करें"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"सिम पिन सक्षम करें"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"कृपया प्रतीक्षा करें..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"सिम पिन सक्षम"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"सिम पिन अक्षम"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"आपके द्वारा लिखा गया पिन गलत था."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"सिम पिन सफलतापूर्वक बदला गया."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"पासवर्ड गलत, सिम लॉक की गई है! PUK2 का अनुरोध किया गया है."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"पिन2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"पुराना पिन2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"नया पिन2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"नए पिन2 की पुष्टि करें"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"आपके द्वारा लिखा गया PUK2 सही नहीं है. पुनः प्रयास करें."</string>
+    <string name="badPin2" msgid="1041576234483629991">"आपके द्वारा लिखा गया पुराना पिन2 सही नहीं है. पुनः प्रयास करें."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"आपके द्वारा लिखे गए पिन2 का मिलान नहीं होता. पुनः प्रयास करें."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"पिन2 टाइप करें जो 4 से 8 नंबर की हो."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"वह PUK2 टाइप करें जिसमें 8 नंबर हों."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"पिन2 सफलतापूर्वक बदला गया"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2 कोड टाइप करें"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"पासवर्ड गलत. पिन2 बदलें और पुनः प्रयास करें."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"पासवर्ड गलत है, सिम लॉक हो गया है. PUK2 का अनुरोध किया गया."</string>
+    <string name="doneButton" msgid="2859593360997984240">"पूर्ण"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"कॉन्फ़्रेंस कॉल <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"ध्‍वनिमेल नबंर"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"डायल कर रहा है"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"पुनः प्रयास कर रहा है"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"कॉन्फ़्रेंस कॉल"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"इनकमिंग कॉल"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"कॉल समाप्त"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"होल्ड पर"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"बंद कर रहा है"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"कॉल में"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"मेरा नंबर <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g> है"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"डायल हो रहा है"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"छूटी कॉल"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"छूटी कॉल"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छूटी कॉल"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> की कॉल छूटी"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"चल रही कॉल"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"होल्ड पर"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"इनकमिंग कॉल"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"नया ध्वनिमेल"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"नई ध्वनिमेल (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> डायल करें"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ध्वनिमेल नंबर अज्ञात"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"कोई सेवा नहीं"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"चयनित नेटवर्क (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) अनुपलब्ध"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"समाप्त करें"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"वापस कॉल करें"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"संदेश"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"कॉल करने के लिए, पहले विमान मोड बंद करें."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"नेटवर्क पर पंजीकृत नहीं."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"मोबाइल नेटवर्क उपलब्ध नहीं."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"कॉल नहीं भेजी गई, कोई मान्य नंबर दर्ज नहीं किया गया."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"कॉल नहीं भेजी गई."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI अनुक्रम प्रारंभ हो रहा है…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"असमर्थित सेवा."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"कॉल स्विच करने में असमर्थ."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"कॉल पृथक करने में असमर्थ."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"कॉल स्थानांतरित करने में असमर्थ."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"कॉंन्फ़्रेंस कॉल करने में असमर्थ."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"कॉल अस्वीकृत करने में असमर्थ."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"कॉल छोड़ने में असमर्थ."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"इंटरनेट कॉल"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आपातकालीन कॉल"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडियो चालू कर रहा है..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"सेवा क्षेत्र के बाहर, पुनः प्रयास कर रहा है..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"कॉल नहीं भेजा गया, <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> कोई आपातकालीन नंबर नहीं है!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"कॉल नहीं भेजा गया. कोई आपातकालीन नंबर डायल करें!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"डायल करने के लिए कीबोर्ड का उपयोग करें"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"होल्ड करें"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"समाप्त"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"डायलपैड"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"म्यूट करें"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"कॉल जोड़ें"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"कॉल मर्ज करें"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"स्वैप करें"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"कॉल प्रबंधित करें"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"कॉन्फ़्रेंस प्रबंधित करें"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"ऑडियो"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"वीडियो कॉल"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"आयात करें"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"सभी आयात करें"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"सिम संपर्क आयात कर रहा है"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"संपर्कों से आयात करें"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"श्रवण सहायक साधन"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"श्रवण सहायक साधन संगतता चालू करें"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY बंद"</item>
+    <item msgid="3971695875449640648">"TTY पूर्ण"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF टोन"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF टोन की लंबाई सेट करें"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"सामान्य"</item>
+    <item msgid="2883365539347850535">"लंबा"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"नेटवर्क संदेश"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"अपना फ़ोन सक्रिय करें"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"आपकी फ़ोन सेवा को सक्रिय करने के लिए एक विशेष कॉल करने की आवश्यकता है. "\n\n"\"सक्रिय करें\" दबाने के बाद, अपने फ़ोन को सक्रिय करने के लिए दिए जाने वाले निर्देश सुनें."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"सक्रियण छोड़ें?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"यदि आप सक्रियण छोड़ देते हैं, तो आप कॉल नहीं कर सकते या मोबाइल डेटा नेटवर्क से कनेक्ट (हालांकि आप Wi-Fi नेटवर्क से कनेक्ट हो सकते हैं) नहीं हो सकते हैं. जब तक आप अपने फ़ोन को सक्रिय नहीं करते, आपको प्रत्येक बार उसे चालू करने पर उसे सक्रिय करने के लिए कहा जाएगा."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"छोड़ें"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"सक्रिय करें"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"फ़ोन सक्रिय हो गया."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"सक्रियण में समस्या"</string>
+    <string name="ota_listen" msgid="162923839877584937">"जब तक आप यह न सुनें कि सक्रियण पूर्ण हो गया है, कहे गए निर्देशों का पालन करें."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"स्‍पीकर"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"जब तक आपका फ़ोन प्रोग्राम हो, प्रतीक्षा करें."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"प्रोग्रामिंग विफल"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"आपका फ़ोन अब सक्रिय कर दिया गया है. सेवा को आरंभ होने में 15 मिनट तक लग सकते हैं."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"आपका फ़ोन सक्रिय नहीं हुआ. "\n"आपको बेहतर कवरेज वाले किसी क्षेत्र (खिड़की के पास या बाहर) में जाने की आवश्यकता हो सकती है. "\n\n"पुनः प्रयास करें या अधिक विकल्पों के लिए ग्राहक सेवा को कॉल करें."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"अतिरिक्त SPC विफलताएं"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"वापस जाएं"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"पुन: प्रयास करें"</string>
+    <string name="ota_next" msgid="3904945374358235910">"अगला"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"आपातकालीन कॉलबैक मोड में प्रविष्ट हुए"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"आपातकालीन कॉलबैक मोड"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"डेटा कनेक्शन अक्षम किया गया"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g> मिनट के लिए कोई डेटा कनेक्शन नहीं"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g> मिनट के लिए कोई डेटा कनेक्शन नहीं"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"फ़ोन <xliff:g id="COUNT">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा. हालांकि, इस मोड में होने पर डेटा कनेक्शन का उपयोग करने वाले किसी एप्लिकेशन का उपयोग नहीं किया जा सकता. क्या आप अभी बाहर निकलना चाहते हैं?"</item>
+    <item quantity="other" msgid="8617116564023933114">"फ़ोन <xliff:g id="COUNT">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा. हालांकि, इस मोड में होने पर डेटा कनेक्शन का उपयोग करने वाले किसी एप्लिकेशन का उपयोग नहीं किया जा सकता. क्या आप अभी बाहर निकलना चाहते हैं?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"आपातकालीन कॉलबैक मोड के समय चयनित क्रिया उपलब्ध नहीं है. फ़ोन <xliff:g id="COUNT">%s</xliff:g> मिनट तक इस मोड में रहेगा. क्या आप अभी बाहर निकलना चाहते हैं?"</item>
+    <item quantity="other" msgid="6115622137771382224">"आपातकालीन कॉलबैक मोड के समय चयनित क्रिया उपलब्ध नहीं है. फ़ोन <xliff:g id="COUNT">%s</xliff:g> मिनट तक इस मोड में रहेगा. क्या आप अभी बाहर निकलना चाहते हैं?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"आपातकालीन कॉल के समय चयनित क्रिया उपलब्ध नहीं होती है."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"आपातकालीन कॉलबैक मोड से बाहर निकल रहा है"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"हां"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"नहीं"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"खारिज करें"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"सेवा"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"सेटअप"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;सेट नहीं है&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"अन्य कॉल सेटिंग"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"संपर्क का फ़ोटो"</string>
+    <string name="goPrivate" msgid="865837794424530980">"निजी हो जाएं"</string>
+    <string name="selectContact" msgid="781975788478987237">"संपर्क को चुनें"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"इंटरनेट कॉल सेटिंग"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"इंटरनेट कॉलिंग (SIP) खाते"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"खाते"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"इनकमिंग कॉल प्राप्त करें"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"बैटरी का जीवनकाल कम करता है"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"इंटरनेट कॉलिंग का उपयोग करें"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"इंटरनेट कॉलिंग का उपयोग करें (केवल Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"सभी कॉल के लिए जब डेटा नेटवर्क उपलब्ध हो"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"केवल इंटरनेट कॉल के लिए"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"प्रत्येक कॉल के लिए पूछें"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"सभी कॉल के लिए"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"कॉल करें"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"इंटरनेट कॉलिंग खाते का उपयोग करें:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"हमेशा इंटरनेट कॉल करने के लिए उपयोग करें"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"आप परिवर्तित कर सकते हैं कि फ़ोन &gt; सेटिंग &gt; इंटरनेट कॉल सेटिंग &gt; खाता स्क्रीन से डिफ़ॉल्ट रूप से किस इंटरनेट कॉलिंग खाते का उपयोग करना है."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"सेल फ़ोन कॉल"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"इंटरनेट कॉल"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"कोई इंटरनेट कॉलिंग खाता नहीं"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"इस फ़ोन पर कोई इंटरनेट कॉलिंग खाता नहीं है. क्या आप अभी एक जोड़ना चाहते हैं?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"जोड़ें"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"खाता जोड़ें"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"खाता निकालें"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP खाते"</string>
+    <string name="saving_account" msgid="52903398217017954">"खाता सहेज रहा है..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"खाता निकाल रहा है..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"सहेजें"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"छोड़ें"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"प्रोफ़ाइल बंद करें"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ठीक"</string>
+    <string name="close_profile" msgid="6886968271423155284">"बंद करें"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"प्राथमिक खाता. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"स्थिति की जांच कर रहा है..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"पंजीकरण जारी है..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"अब भी प्रयास कर रहा है..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"कॉल प्राप्त नहीं हो रहे."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"खाता पंजीकरण रुक गया क्योंकि कोई इंटरनेट कनेक्शन उपलब्ध नहीं है."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"कोई Wi-Fi कनेक्शन न होने के कारण खाता पंजीकरण रोका गया."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"खाता पंजीकरण विफल."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"कॉल प्राप्त हो रहे हैं"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"खाता पंजीकरण विफल: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); बाद में पुन: प्रयास किया जाएगा"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"खाता पंजीकरण विफल: गलत उपयोगकर्ता नाम या पासवर्ड."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"खाता पंजीकरण विफल: सर्वर नाम जांचें."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"वर्तमान में इस खाते का उपयोग <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> एप्लिकेशन द्वारा किया जा रहा है."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP खाता विवरण"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP खाता विवरण"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"सर्वर"</string>
+    <string name="username_title" msgid="2479375923477682328">"उपयोगकर्ता नाम"</string>
+    <string name="password_title" msgid="3323555249068171531">"पासवर्ड"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"प्रदर्शन नाम"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"जावक प्रॉक्सी पता"</string>
+    <string name="port_title" msgid="5952939408078626657">"पोर्ट नंबर"</string>
+    <string name="transport_title" msgid="8253139511847746640">"परिवहन प्रकार"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"जीवित-रखें भेजें"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"प्राथमिक खाते के रूप में सेट करें"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"जावक कॉल के लिए उपयोग किया जाता है"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"वैकल्पिक सेटिंग"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"प्रमाणीकरण उपयोगकर्ता नाम"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"प्रमाणीकरण के लिए उपयोग होने वाला उपयोगकर्ता नाम"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;सेट नहीं है&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;उपयोगकर्ता नाम के समान&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;वैकल्पिक&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ सभी दिखाने के लिए स्पर्श करें"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ सभी छुपाने के लिए स्पर्श करें"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> आवश्यक है और रिक्त नहीं छोड़ा जा सकता."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"पोर्ट नंबर 1000 और 65534 के बीच होना चाहिए."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"कोई इंटरनेट कनेक्शन नहीं है"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"कोई Wi-Fi कनेक्शन नहीं"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"इंटरनेट कॉल करने के लिए, पहले अपने इंटरनेट कनेक्शन की जांच करें."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"इंटरनेट कॉल के लिए आपको Wi-Fi नेटवर्क से कनेक्ट होना आवश्यक है (वायरलेस और नेटवर्क सेटिंग का उपयोग करें)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"इंटरनेट कॉलिंग समर्थित नहीं है"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"स्वचालित"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"हमेशा भेजें"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"ध्वनि कॉल करना समर्थित नहीं है"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"अभी बात नहीं हो सकती. क्‍या चल रहा है?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"मैं आपको वापस कॉल करूंगा/करूंगी."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"मैं आपको बाद में कॉल करूंगा/करूंगी."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"अभी बात नहीं हो सकती. बाद में कॉल करें?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"अपना स्वयं का लिखें..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"त्वरित प्रतिसाद"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"त्वरित प्रतिसाद संपादित करें"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"त्वरित प्रतिसाद"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"डिफ़ॉल्ट एप्लिकेशन रीसेट करें"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<xliff:g id="PHONE_NUMBER">%s</xliff:g> को संदेश भेजा गया."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"एक"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"दो"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"तीन"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"चार"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"पांच"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"छ:"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"सात"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"आठ"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"नौ"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"तारा"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"शून्‍य"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"पाउंड"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"डायल करें"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"बैकस्पेस"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"स्‍पीकरफ़ोन सक्षम."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"कॉल म्‍यूट की गई."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"उत्तर"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS भेजें"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"अस्वीकार करें"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"कंपन करें"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"कंपन करें"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ध्वनि"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"डिफ़ॉल्ट ध्वनि (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"फ़ोन रिंगटोन"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"रिंग आने पर कंपन करें"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"डायल पैड स्पर्श टोन"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"डायलपैड स्वत: पूर्ण"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन और कंपन"</string>
+</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
new file mode 100644
index 0000000..a2859ef
--- /dev/null
+++ b/res/values-hr/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Birač hitnih poziva"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Popis FDN-a"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privatni broj"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefonska govornica"</string>
+    <string name="onHold" msgid="9035493194749959955">"Na čekanju"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linija je zauzeta"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Mreža je zauzeta"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nema odgovora, privremeno zaustavljeno"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Poslužitelj nedostupan"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Broj je nedostupan"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Netočno korisničko ime ili zaporka"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Poziv izvan mreže"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Pogreška poslužitelja. Pokušajte ponovno kasnije."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Nema signala"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Prekoračeno je ACM ograničenje"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio je isključen"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Nema SIM-a ili SIM ima pogrešku"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Izvan područja usluge"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Odlazne pozive ograničava FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Ne možete uspostavljati odlazne pozive ako je uključena zabrana poziva."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Sve je pozive ograničila pristupna kontrola."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Hitne pozive ograničila je pristupna kontrola."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Uobičajene pozive ograničila je pristupna kontrola."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Nevažeći broj"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferencijski poziv"</string>
+    <string name="call_lost" msgid="317670617901479594">"Poziv je prekinut."</string>
+    <string name="ok" msgid="3811371167865772377">"U redu"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Pokrenut je MMI kôd"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Pokrenut je USSD kôd…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Otkazan je MMI kôd"</string>
+    <string name="cancel" msgid="5044513931633602634">"Odustani"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati ovoliko znakova: <xliff:g id="MIN_LEN">%d</xliff:g> – <xliff:g id="MAX_LEN">%d</xliff:g>. Pokušajte ponovo."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slušalice"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Žičane slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Poslati sljedeće tonove?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Slanje tonova"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zamijeni zamjenski znak s"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj govorne pošte"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM kartici nije spremljen broj govorne pošte."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Vaša je SIM kartica odblokirana. Telefon se odblokira…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"Mrežni PIN za otključavanje SIM-a"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Otključaj"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Odbaci"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Traženje mrežnog otključavanja..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Neuspješan zahtjev za otključavanje mreže."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Mrežno otključavanje bilo je uspješno."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Postavke GSM poziva"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Postavke CDMA poziva"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nazivi pristupnih točaka"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Postavke mreže"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne postavke"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Dodatne postavke samo za GSM poziv"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Dodatne postavke za CDMA poziv"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Dodatne postavke samo za CDMA poziv"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Postavke mrežne usluge"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID pozivatelja"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Učitavanje postavki…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Broj je skriven u izlaznim pozivima"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Broj prikazan za izlazne pozive"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Koristiti zadane postavke operatera za prikaz mog broja kod odlaznih poziva"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Poziv na čekanju"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Obavijesti me tijekom poziva o dolaznim pozivima"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Obavijesti me tijekom poziva o dolaznim pozivima"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Postavke preusmjeravanja poziva"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Preusmjeravanje poziva"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Uvijek preusmjeri"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Uvijek koristi ovaj broj"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Preusmjeravanje svih poziva"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Preusmjeravanje poziva na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Broj je nedostupan"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Onemogućeno"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Preusmjeri ako je zauzeto"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Broj u slučaju zauzeća"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Preusmjeravanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Onemogućeno"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Vaš mobilni operater ne podržava onemogućavanje preusmjeravanja poziva ako je vaš telefon zauzet."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Preusmjeri u slučaju ako nema odgovora"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Broj ako nema odgovora"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Preusmjeravanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Onemogućeno"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Vaš mobilni operater ne podržava onemogućavanje preusmjeravanja poziva ako se na vaš telefon nitko ne javi."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Preusmjeri ako nije dostupno"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Broj u slučaju nedostupnosti"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Preusmjeravanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogućeno"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Vaš mobilni operater ne podržava onemogućavanje preusmjeravanja poziva ako je vaš telefon nedostupan."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Postavke poziva"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Pogreška postavki poziva"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Postavke čitanja..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ažuriranje postavki..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Povrat postavki…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Neočekivan mrežni odgovor."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Pogreška mreže ili SIM kartice."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Uključena je postavka fiksnog biranja u aplikaciji telefona. Zbog toga ne rade neke značajke u vezi s pozivima."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Uključite radio prije pregleda ovih postavki."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"U redu"</string>
+    <string name="enable" msgid="1059008390636773574">"Omogući"</string>
+    <string name="disable" msgid="7274240979164762320">"Onemogući"</string>
+    <string name="change_num" msgid="239476305819844391">"Ažuriraj"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Zdana postavka mreže"</item>
+    <item msgid="7876195870037833661">"Sakrij broj"</item>
+    <item msgid="1108394741608734023">"Prikaži broj"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Broj govorne pošte je promijenjen."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nije bilo moguće promijeniti broj govorne pošte."\n"Obratite se mobilnom operateru ako problem potraje."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nije bilo moguće promijeniti broj za preusmjeravanje."\n"Obratite se mobilnom operateru ako problem potraje."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Dohvaćanje i spremanje trenutačnih postavki broja za prosljeđivanje nije uspjelo."\n"Želite li se ipak prebaciti na novog davatelja usluge?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nisu izvršene nikakve promjene."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Odaberite uslugu govorne pošte"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Moj mobilni operater"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Postavke mobilne mreže"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Pretraživanje…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nije pronađena mreža."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Pogreška tijekom pretraživanja mreža."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Prijava na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Vaša SIM kartica ne dopušta povezivanje s ovom mrežom."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Povezivanje s tom mrežom trenutačno nije moguće. Pokušajte kasnije."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrirano na mreži."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Odaberite mrežnog operatera"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Pretraži sve dostupne mreže"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Odaberi automatski"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatski odabir željene mreže"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatska prijava…"</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Način mreže"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Promijenite način rada mreže"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Način željene mreže"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Način željene mreže: Preferirano WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Način željene mreže: Samo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Način željene mreže: Samo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Način željene mreže: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Način željene mreže: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Način željene mreže: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Način željene mreže: Samo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Način željene mreže: Samo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferirani mrežni način: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferirani mrežni način: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferirani mrežni način: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferirani mrežni način: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferirani mrežni način: globalni"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferirani mrežni način: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalno"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Samo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo-a"</item>
+    <item msgid="4341433122263841224">"Automatski CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Automatski GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Samo WCDMA"</item>
+    <item msgid="1524224863879435516">"Samo GSM"</item>
+    <item msgid="3817924849415716259">"Preferirano GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Omogući podatkovni pristup preko mobilne mreže"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming podataka"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Poveži se s podatkovnim uslugama u roamingu"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Poveži se s podatkovnim uslugama u roamingu"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Izgubili ste podatkovnu vezu jer ste izašli iz matične mreže s isključenim roamingom podataka."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Omogućiti roaming podataka? Može doći do znatno većih troškova za roaming!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA opcije"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Korištenje podataka"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Podaci korišteni za trenutačno razdoblje"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Razdoblje korištenja podataka"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Pravilo za brzinu prijenosa podataka"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Saznajte više"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) od <xliff:g id="USED_2">%3$s</xliff:g> maksimalnog razdoblja"\n"Sljedeće razdoblje počinje za ovoliko dana: <xliff:g id="USED_3">%4$d</xliff:g> (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) od <xliff:g id="USED_2">%3$s</xliff:g> maksimalnog razdoblja"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum je prekoračen"\n"Brzina prijenosa podataka smanjena je na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Proteklo je <xliff:g id="USED_0">%1$d</xliff:g>٪ ciklusa"\n"Sljedeće razdoblje počinje za ovoliko dana: <xliff:g id="USED_1">%2$d</xliff:g> (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Brzina prijenosa podatak smanjena je na <xliff:g id="USED">%1$d</xliff:g> Kb/s ako se prekorači ograničenje korištenja podataka"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Više informacija o pravilima korištenja mobilne podatkovne mreže vašeg davatelja mobilne usluge"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS iz mobilne mreže"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS iz mobilne mreže"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Omogućen je SMS iz mobilne mreže"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Onemogućen je SMS iz mobilne mreže"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Postavke SMS-a iz mobilne mreže"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Hitan prijenos"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Omogućen je hitan prijenos"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Onemogućen je Hitan prijenos"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administracija"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administracija je omogućena"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administracija je onemogućena"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Održavanje"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Održavanje omogućeno"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Održavanje je onemogućeno"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Opće vijesti"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Poslovne i financijske vijesti"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Vijesti iz sporta"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Vijesti iz svijeta zabave"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokalno"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Omogućene su lokalne vijesti"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Onemogućene su lokalne vijesti"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionalno"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Omogućene su regionalne vijesti"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Onemogućene su regionalne vijesti"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacionalno"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Omogućene su nacionalne vijesti"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nacionalne vijesti su onemogućene"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Međunarodno"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Međunarodne su vijesti omogućene"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Onemogućeni su međunarodni pozivi"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jezik"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Odaberite jezik vijesti"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"engleski"</item>
+    <item msgid="1151988412809572526">"francuski"</item>
+    <item msgid="577840534704312665">"španjolski"</item>
+    <item msgid="8385712091143148180">"japanski"</item>
+    <item msgid="1858401628368130638">"korejski"</item>
+    <item msgid="1933212028684529632">"kineski"</item>
+    <item msgid="1908428006803639064">"hebrejski"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jezici"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalna vremenska prognoza"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Omogućena je lokalna vremenska prognoza"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Onemogućeno je lokalno vrijeme"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Izvješća o području prometa"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Omogućena su izvješća o području prometa"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Onemogućena su izvješća o području prometa"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Raspored letova za lokalnu zrakoplovnu luku"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Omogućen je raspored letova za lokalnu zrakoplovnu luku"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Onemogućen je raspored letova za lokalnu zrakoplovnu luku"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restorani"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restorani omogućeni"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restorani onemogućeni"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Boravište"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Učitavanje omogućeno"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Onemogućeno je boravište"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Maloprodajni imenik"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Omogućen je maloprodajni imenik"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Onemogućen je maloprodajni imenik"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Oglašavanje"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Oglašavanje je omogućeno"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Onemogućeno je oglašavanje"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Burzovne kotacije"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Omogućene su burzovne kotacije"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Onemogućene su burzovne kotacije"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Prilike za zapošljavanje"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Omogućene su Prilike za zapošljavanje"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Onemogućene su Prilike za zapošljavanje"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Zdravstvo, zdravlje i bolnice"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Omogućeno je zdravstvo, zdravlje i bolnice"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Onemogućeno je zdravstvo, zdravlje i bolnice"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Vijesti iz tehnologije"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Omogućene su vijesti iz tehnologije"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Vijesti iz tehnologije su onemogućene"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Višestruka kategorija"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Omogućena je višestruka kategorija"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Onemogućena je višestruka kategorija"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Koristi samo 2G mreže"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Štedi bateriju"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Odabir sustava"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Promijeni način rada CDMA roaminga"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Odabir sustava"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Samo matično"</item>
+    <item msgid="1205664026446156265">"Automatski"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA pretplata"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Izmjenjivanje među RUIM/SIM i NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"pretplata"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivacija uređaja"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Postavljanje podatkovne usluge"</string>
+    <string name="fdn" msgid="7878832555095183202">"Brojevi za fiksno biranje"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Popis FDN-a"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivacija FDN-a"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Brojevi za fiksno biranje su omogućeni"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Brojevi za fiksno biranje su onemogućeni"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Omogući FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Onemogući FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Promijeni PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Onemogući FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Omogući FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Upravljanje brojeva za fiksno biranje"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Promijeni PIN za FDN pristup"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Upravljaj popisom telefonskih brojeva"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privatnost za glasovnu uslugu"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Omogući poboljšani način privatnosti"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Način TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Postavi način TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatski ponovni pokušaj"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Omogući način automatskog ponovnog pokušaja"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Dodaj kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Uredi kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Izbriši kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Upišite PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Ime"</string>
+    <string name="number" msgid="7905950798349903858">"Broj"</string>
+    <string name="save" msgid="4094274636321939086">"Spremi"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Dodaj broj za fiksno biranje"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Dodavanje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Dodan je broj za fiksno biranje."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Uredi broj za fiksno biranje"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ažuriranje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Ažuriran je broj za fiksno biranje."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Izbriši broj za fiksno biranje"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Brisanje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Izbrisan je broj za fiksno biranje."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN nije ažuriran jer ste upisali pogrešan PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN nije ažuriran jer broj ne može premašivati 20 znamenki."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN nije ažuriran. PIN2 nije točan ili je telefonski broj odbijen."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Čitanje sa SIM kartice…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nema kontakata na vašoj SIM kartici."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Odaberite kontakte za uvoz"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Za uvoz kontakata sa SIM kartice prvo isključite način rada u zrakoplovu."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Omogući/onemogući PIN za SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Promijeni PIN za SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN za SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Stari PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novi PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potvrdi novi PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Stari PIN koji ste unijeli nije točan. Pokušajte ponovo."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN-ovi koje ste unijeli međusobno se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Unesite PIN koji ima od 4 do 8 brojeva."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Onemogući SIM PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Omogući PIN za SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Pričekajte…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Omogućen je PIN za SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Onemogućen je PIN za SIM."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN koji ste unijeli nije točan."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Uspješno je promijenjen PIN SIM-a."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Zaporka nije točna, SIM je zaključan! PUK2 zatražen."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Stari PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novi PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potvrdi novi PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 koji ste unijeli nije točan. Pokušajte ponovo."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Stari PIN2 koji ste unijeli nije točan. Pokušajte ponovo."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Vaši unosi za PIN2 međusobno se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Unesite PIN2 koji ima 4-8 brojeva."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Unesite PUK2 koji ima 8 brojeva."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 uspješno je promijenjen."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Unesite PUK2 kôd"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Zaporka nije točna. Promijenite PIN2 i pokušajte ponovo."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Zaporka nije točna, SIM je zaključan. Zatražen je PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gotovo"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferencijski poziv <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Biranje broja"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Ponovni pokušaj"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Dolazni poziv"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Poziv je završio"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Prekidanje veze"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Poziv u tijeku"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Moj broj je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Biranje broja"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Propušteni poziv"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Broj propuštenih poziva: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Propušten poziv kontakta <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Poziv u tijeku"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Na čekanju"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Dolazni poziv"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nova govorna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nova govorna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Biraj <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nepoznat je broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nema usluge"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Odabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) je onemogućena"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Prekini vezu"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Povratni poziv"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Poruka"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Da biste uspostavili poziv, prvo isključite način rada u zrakoplovu."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nije registrirano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Poziv nije uspostavljen, nije unijet valjani broj."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Poziv nije poslan."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Pokretanje MMI sekvence…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nepodržana usluga."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Nije moguće prebaciti pozive."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Nije moguće odvojiti poziv."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Nije moguće prenijeti poziv."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nije moguće uspostaviti konferencijske pozive."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Nije moguće odbiti poziv."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Nije moguće ostvariti pozi(e)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetski poziv"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitan poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Izvan područja usluge, ponovni pokušaj..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Poziv nije upućen. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne pozive!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Poziv nije upućen. Birajte broj hitne službe!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Birajte pomoću tipkovnice"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Na čekanju"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Kraj"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Površina za biranje brojeva"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Isključi zvuk"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Spoji pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zamijeni"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Upravljaj pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Upravljanje konferencijom"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videopoziv"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Uvezi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Uvezi sve"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Uvoz SIM kontakata"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvezi iz kontakata"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Pomoć za osobe oštećenog sluha"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Uključi kompatibilnost za pomoć osobama oštećenog sluha"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Isključen je TTY"</item>
+    <item msgid="3971695875449640648">"TTY je pun"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tonovi"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Postavite duljinu DTMF tonova"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normalni"</item>
+    <item msgid="2883365539347850535">"Dugo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mrežna poruka"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivirajte svoj telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Poseban poziv upućen je za aktiviranje telefonske usluge. "\n\n"Nakon što pritisnete “Aktiviraj”, poslušajte upute za aktiviranje telefona."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Preskoči aktivaciju?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ako preskočite aktivaciju, ne možete pozivati niti se povezivati na mobilne podatkovne mreže (premda se možete prijaviti na Wi-Fi mreže).Sve dok ne aktivirate telefon prikazivat će se upit za aktiviranje kod svakog prijavljivanja."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Preskoči"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiviraj"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon je aktiviran."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem s aktivacijom"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Slijedite govorne upute sve dok ne čujete da je aktivacija dovršena."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Zvučnik"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Pričekajte dok ne završi programiranje vašeg telefona."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Neuspješno programiranje"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Vaš telefon nije aktiviran. Pokretanje usluge može potrajati i do 15 minuta."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Vaš se telefon nije aktivirao. "\n"Možda biste trebali potražiti područje s boljom pokrivenošću (pored prozora ili vani). "\n\n"Pokušajte ponovo ili nazovite korisničku službu za više opcija."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"KVAR PRETJERANOG SPC-a"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Natrag"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Pokušajte ponovo"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Dalje"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Unijet je način hitnog povratnog poziva"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Način hitnog povratnog poziva"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Onemogućena je podatkovna mreža"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Nema podatkovne veze <xliff:g id="COUNT">%s</xliff:g> min"</item>
+    <item quantity="other" msgid="3122217344579273583">"Nema podatkovne veze <xliff:g id="COUNT">%s</xliff:g> min"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT">%s</xliff:g> min. Za to se vrijeme ne može upotrebljavati nijedna aplikacija kojoj je potrebna podatkovna veza. Želite li izaći sada?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT">%s</xliff:g> min. Za to se vrijeme ne može upotrebljavati nijedna aplikacija kojoj je potrebna podatkovna veza. Želite li izaći sada?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Odabrana radnja nije dostupna u načinu rada hitnog povratnog poziva. Telefon će biti u tom načinu rada <xliff:g id="COUNT">%s</xliff:g> min. Želite li izaći sada?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Odabrana radnja nije dostupna u načinu rada hitnog povratnog poziva. Telefon će biti u tom načinu rada <xliff:g id="COUNT">%s</xliff:g> min. Želite li izaći sada?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Odabrana radnja nije dostupna tijekom hitnog poziva."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Izlaz iz načina hitnog povratnog poziva"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Odbaci"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Usluga"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Postavljanje"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nije postavljeno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Ostale postavke poziva"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontakt fotografija"</string>
+    <string name="goPrivate" msgid="865837794424530980">"na privatno"</string>
+    <string name="selectContact" msgid="781975788478987237">"odabir kontakta"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Postavke internetskih poziva"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Računi za internetske pozive (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Računi"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Primi dolazni poziv"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Skraćuje trajanje baterije"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Upotrijebi internetski poziv"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Upotrijebi internetski poziv (samo Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Za sve pozive kada je podatkovna mreža dostupna"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Samo za internetske pozive"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Upit za svaki poziv"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Za sve pozive"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Nazovi"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Upotrijebi račun za internetske pozive:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Uvijek upotrijebi za internetske pozive"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Možete promijeniti koji ćete internetski račun za pozivanje upotrebljavati prema zadanim postavkama iz opcije Telefon &gt; Postavke &gt; Postavke internetskih poziva &gt; Zaslon računa."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Poziv mobitelom"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetski poziv"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nema računa za internetske pozive"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Na ovom telefonu nema računa za internetske pozive. Želite li sada dodati jedan?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Dodaj"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Dodavanje računa"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Brisanje računa"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP računi"</string>
+    <string name="saving_account" msgid="52903398217017954">"Spremanje računa…"</string>
+    <string name="removing_account" msgid="7183999896088628100">"Uklanjanje računa…"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Spremi"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Odbaci"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Zatvori profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"U redu"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Zatvori"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primarni račun. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Provjeravanje statusa..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Prijava…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Još pokušavam…"</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ne prima pozive."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Prijava računa zaustavljena je jer nema internetske veze."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Prijava računa zaustavljena je jer nema Wi-Fi veze."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Prijava računa nije uspjela."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Prima pozive."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registracija računa nije uspjela: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); pokušat ćemo kasnije"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Prijava računa nije uspjela: netočno korisničko ime ili zaporka."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Prijava računa nije uspjela: provjerite naziv poslužitelja."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Ovaj račun trenutačno upotrebljava aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalji SIP računa"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalji SIP računa"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Poslužitelj"</string>
+    <string name="username_title" msgid="2479375923477682328">"Korisničko ime"</string>
+    <string name="password_title" msgid="3323555249068171531">"Zaporka"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Ime za prikaz"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Odlazna proxy adresa"</string>
+    <string name="port_title" msgid="5952939408078626657">"Broj porta"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Vrsta transporta"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Pošalji postavke keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Postavi kao primarni račun"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Upotrebljava se za odlazne pozive"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Izborne postavke"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Korisničko ime za provjeru autentičnosti"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Korisničko ime za provjeru autentičnosti"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nije postavljeno&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Isto kao korisničko ime&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Izborno&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Dodirnite da biste prikazali sve"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Dodirnite kako bi sakrili sve"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> obavezno je i ne može ostati prazno."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Broj priključka trebao bi biti između 1000 i 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nema internetske veze"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nema Wi-Fi veze"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Za uspostavu internetskog poziva prvo provjerite internetsku vezu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Morate se povezati s Wi-Fi mrežom za internetske pozive (upotrijebite postavke Bežičnog povezivanja i mreža)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetski pozivi nisu podržani"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatski"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Uvijek šalji"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Glasovni pozivi nisu podržani"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Sada ne mogu razgovarati. Što ima?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nazvat ću vas odmah."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zvat ću vas kasnije."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Sada ne mogu razgovarati. Nazovite me kasnije?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napišite odgovor..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Brzi odgovori"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Uređivanje brzih odgovora"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Brzi odgovor"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Poništavanje zadane aplikacije"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Poruka poslana na broj <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"jedan"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dva"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tri"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"četiri"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"pet"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"šest"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sedam"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"osam"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"devet"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"zvjezdica"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nula"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"funta"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"biraj"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Zvučnik je omogućen."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Zvuk poziva isključen."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odgovori"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Pošalji SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Odbij"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibracija"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibracija"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Zadani zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Melodija zvona telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrira dok zvoni"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tonovi biranja"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Samodovršavanje biranja brojeva"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
+</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
new file mode 100644
index 0000000..a5cd5be
--- /dev/null
+++ b/res/values-hu/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobiladatok"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Segélyhívó tárcsázó"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN lista"</string>
+    <string name="unknown" msgid="6878797917991465859">"Ismeretlen"</string>
+    <string name="private_num" msgid="6713286113000232309">"Magántelefonszám"</string>
+    <string name="payphone" msgid="1931775086311769314">"Nyilvános telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Tartásban"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"A vonal foglalt"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"A hálózat túlterhelt"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nincs válasz, időtúllépés történt"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"A szerver nem érhető el"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"A szám nem érhető el"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Helytelen felhasználónév vagy jelszó"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"A hívó hálózaton kívüli volt"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Szerverhiba. Kérjük, próbálkozzon újra."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Nincs vonal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Elérte az ACM-korlátot"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Rádió kikapcsolva"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Hiányzó vagy hibás SIM kártya"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Szolgáltatási területen kívüli terület"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Az FDN korlátozza a kimenő hívásokat."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Nem kezdeményezhet hívásokat, amíg a hívásletiltás be van kapcsolva."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Minden hívást korlátoz a hozzáférésvezérlés."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"A segélyhívásokat korlátozza a hozzáférésvezérlés."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"A normál hívásokat korlátozza a hozzáférésvezérlés."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Érvénytelen szám"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferenciahívás"</string>
+    <string name="call_lost" msgid="317670617901479594">"A hívás megszakadt."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-kód elindítva"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kód futtatása..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-kód megszakítva"</string>
+    <string name="cancel" msgid="5044513931633602634">"Mégse"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Az USSD-üzenet hossza <xliff:g id="MIN_LEN">%d</xliff:g> és <xliff:g id="MAX_LEN">%d</xliff:g> karakter között lehet. Kérjük, próbálja újra."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Konferenciahívás kezelése"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Hangszóró"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Kézibeszélő fülhallgatója"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Vezetékes fülhallgató"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Elküldi a következő hangjelzéseket?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Hangjelzések küldése"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Küldés"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Igen"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nem"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Helyettesítő karakter lecserélése a következővel:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Hiányzik a hangposta száma"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Nincs hangpostaszám a SIM-kártyán."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Szám hozzáadása"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM-kártyája letiltása megszűnt. Feloldás folyamatban..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM hálózati függetlenítő PIN-kódja"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Feloldás"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Elvetés"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Függetlenítés kérése..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"A hálózatzárolás feloldására vonatkozó kérelem sikertelen volt."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"A függetlenítés sikerült."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-hívásbeállítások"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-hívásbeállítások"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Hozzáférési pontok nevei"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Hálózati beállítások"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Hangposta"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"HP:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mobilszolgáltatók"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Hívásbeállítások"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"További beállítások"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"További csak GSM hívásbeállítások"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"További CDMA-hívásbeállítások"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"További csak CDMA-hívásbeállítások"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Hálózati szolgáltatás beállításai"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Hívóazonosító"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Beállítások betöltése..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"A kimenő hívások során elrejtett szám"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"A kimenő hívások során megjelenített szám"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Alapértelmezett szolgáltatói beállítások használata a számom megjelenítésére a kimenő hívások során"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Hívásvárakoztatás"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Hívás közben értesítést kérek a beérkező hívásokról"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Hívás közben értesítést kérek a beérkező hívásokról"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Hívásátirányítás beállításai"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Hívásátirányítás"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Mindig legyen átirányítás"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Mindig a következő szám használata"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Minden hívás átirányítása"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Minden hívás átirányítása ide: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"A szám nem érhető el"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Letiltva"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Átirányítás, ha foglalt"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Átirányítási szám, ha foglalt"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Átirányítás ide: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Letiltva"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Szolgáltatója nem támogatja a hívásátirányítás letiltását, ha a  telefon foglalt."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Átirányítás, ha nem válaszol"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Átirányítási szám, ha nem válaszol"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Átirányítás ide: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Letiltva"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Szolgáltatója nem támogatja a hívásátirányítás letiltását, ha telefonja nem fogad hívásokat."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Átirányítás, ha nem érhető el"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Átirányítási szám, ha nem elérhető"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Átirányítás ide: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Kikapcsolva"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Szolgáltatója nem támogatja a hívásátirányítás letiltását, ha a telefon nem érhető el."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Hívásbeállítások"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Hiba a hívásbeállításokban"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Beállítások olvasása..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Beállítások frissítése..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Beállítások visszaállítása..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Nem várt válasz a hálózattól."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Hálózati vagy SIM-kártya hiba."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Telefonja alkalmazásának Fix hívószámok beállítása be van kapcsolva. Ennek eredményeként bizonyos hívásfunkciók nem működnek."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Kapcsolja be a rádiót a beállítások megtekintése előtt."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Engedélyezés"</string>
+    <string name="disable" msgid="7274240979164762320">"Letiltás"</string>
+    <string name="change_num" msgid="239476305819844391">"Frissítés"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Hálózati alapértelmezés"</item>
+    <item msgid="7876195870037833661">"Szám elrejtése"</item>
+    <item msgid="1108394741608734023">"Szám megjelenítése"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"A postafiók száma módosítva."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nem sikerült módosítani a hangposta számát."\n"Ha a probléma továbbra is fennáll, forduljon a szolgáltatóhoz."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nem sikerült megváltoztatni a továbbítási számot."\n"Ha a probléma továbbra is fennáll, forduljon a szolgáltatójához."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nem sikerült lekérni és elmenteni a jelenlegi hívásátirányítási beállításokat."\n"Mégis átvált az új szolgáltatóra?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nem történt változtatás."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Válassza ki a hangposta-szolgáltatást"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Saját szolgáltatóm"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobilhálózati beállítások"</string>
+    <string name="label_available" msgid="1181658289009300430">"Elérhető hálózatok"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Keresés…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nem található hálózat."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Hálózatkeresés"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Hiba történt a hálózatok keresése közben."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Regisztrálás a(z) <xliff:g id="NETWORK">%s</xliff:g> hálózaton..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM kártyája nem teszi lehetővé a kapcsolódást ehhez a hálózathoz."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Most nem lehet csatlakozni a hálózathoz. Próbálja meg később."</string>
+    <string name="registration_done" msgid="495135664535876612">"Regisztrálva a hálózaton."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Válassza ki a hálózat üzemeltetőjét"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Az összes elérhető hálózat megkeresése"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Automatikus választás"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Preferált hálózat automatikus kiválasztása"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatikus regisztráció..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Hálózati mód"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"A hálózati üzemmód megváltoztatása"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Preferált hálózati mód"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferált hálózati mód: preferált WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferált hálózati mód: csak GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferált hálózati mód: csak WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferált hálózati mód: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferált hálózati mód: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferált hálózati mód: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferált hálózati mód: csak CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferált hálózati mód: csak EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferált hálózati mód: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferált hálózati mód: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferált hálózati mód: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferált hálózati mód: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferált hálózati mód: globális"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferált hálózati mód: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globális"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Csak EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA EvDo nélkül"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatikus"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automatikus"</item>
+    <item msgid="7913148405605373434">"Csak WCDMA"</item>
+    <item msgid="1524224863879435516">"Csak GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA a preferált"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Adatok engedélyezése"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Adathozzáférés engedélyezése mobilhálózatokon"</string>
+    <string name="roaming" msgid="8871412572928323707">"Adatbarangolás"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Megszakadt az adatkapcsolat, mert elhagyta az otthoni hálózatot, és az adatbarangolás nincs bekapcsolva."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Engedélyezi az adatbarangolást? Lehet, hogy jelentős összeget számítanak fel érte!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS beállítások"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-beállítások"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Adathasználat"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Az aktuális időszakban felhasznált adatmennyiség"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Adathasználat időtartama"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Adatsebesség-irányelvek"</string>
+    <string name="throttle_help" msgid="243651091785169900">"További információ"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"az időszakra vonatkozó maximum: <xliff:g id="USED_2">%3$s</xliff:g>/<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"\n"A következő időszak <xliff:g id="USED_3">%4$d</xliff:g> nap múlva kezdődik (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"az időszakra vonatkozó maximum: <xliff:g id="USED_2">%3$s</xliff:g>/<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Elérte a felső korlátot: <xliff:g id="USED_0">%1$s</xliff:g>"\n"Az adatsebesség lecsökken <xliff:g id="USED_1">%2$d</xliff:g> kb/s-ra"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"A ciklus <xliff:g id="USED_0">%1$d</xliff:g>٪ -a letelt"\n"A következő időszak <xliff:g id="USED_1">%2$d</xliff:g> nap múlva kezdődik (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Az adatátvitel sebessége <xliff:g id="USED">%1$d</xliff:g> kb/s-ra csökken, ha átlépi az adathasználati korlátot."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"További információk mobilszolgáltatója hálózatának adatfelhasználási irányelveiről"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cellán belüli üzenetszórás"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cellán belüli üzenetszórás"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cellán belüli üzenetszórás engedélyezve"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cellán belüli üzenetszórás letiltva"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Cellán belüli üzenetszórás beállításai"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Vészhelyzeti műsorszórás"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Vészhelyzeti műsorszórás engedélyezve"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Vészhelyzeti műsorszórás letiltva"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Közigazgatás"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Közigazgatás engedélyezve"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Közigazgatás letiltva"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Karbantartás"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Karbantartás bekapcsolva"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Karbantartás kikapcsolva"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Általános hírek"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Üzleti és pénzügyi hírek"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sporthírek"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Bulvárhírek"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Helyi"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Helyi hírek engedélyezve"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Helyi hírek letiltva"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionális"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionális hírek engedélyezve"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionális hírek letiltva"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Belföldi"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Belföldi hírek engedélyezve"</string>
+    <string name="national_disable" msgid="326018148178601166">"Belföldi hírek letiltva"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Nemzetközi"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Nemzetközi hírek engedélyezve"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Nemzetközi hírek letiltva."</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Nyelv"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Válassza ki a hírek nyelvét"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Angol"</item>
+    <item msgid="1151988412809572526">"francia"</item>
+    <item msgid="577840534704312665">"spanyol"</item>
+    <item msgid="8385712091143148180">"Japán"</item>
+    <item msgid="1858401628368130638">"koreai"</item>
+    <item msgid="1933212028684529632">"kínai"</item>
+    <item msgid="1908428006803639064">"Héber"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Nyelvek"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Helyi időjárás"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Helyi időjárás engedélyezve"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Helyi időjárás letiltva"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Jelentések a környék forgalmáról"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"A jelentések a környék forgalmáról engedélyezve vannak"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"A jelentések a környék forgalmáról le vannak tiltva"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Helyi repülőjárat-menetrend"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Helyi repülőjárat-menetrend engedélyezve"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Helyi repülőjárat-menetrend letiltva"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Éttermek"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Éttermek engedélyezve"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Éttermek letiltva"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Szállások"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Szállások engedélyezve"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Szállások letiltva"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Kiskereskedők címtára"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Kiskereskedők címtára engedélyezve"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Kiskereskedők címtára letiltva"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Hirdetések"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Hirdetések engedélyezve"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Hirdetések letiltva"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Részvényárfolyamok"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Részvényárfolyamok engedélyezve"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Részvényárfolyamok letiltva"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Álláslehetőségek"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Álláslehetőségek engedélyezve"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Álláslehetőségek letiltva"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Orvosi, egészségügyi és kórházi"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Orvosi, egészségügyi és kórházi engedélyezve"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Orvosi, egészségügyi és kórházi letiltva"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Műszaki hírek"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Műszaki hírek engedélyezve"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Műszaki hírek letiltva"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Több kategória"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Több kategória engedélyezve"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Több kategória letiltva"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Csak 2G hálózatok használata"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Spórol az energiával"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Rendszer kiválasztása"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"A CDMA-barangolási mód megváltoztatása"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Rendszer kiválasztása"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Csak otthoni"</item>
+    <item msgid="1205664026446156265">"Automatikus"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-feliratkozás"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Váltás RUIM/SIM és NV között"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"feliratkozás"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Eszköz aktiválása"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Adatszolgáltatás beállítása"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fix hívószámok"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN lista"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN aktiválása"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"A fix hívószámok engedélyezve"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"A fix hívószámok letiltva"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"FDN engedélyezése"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"FDN letiltása"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2-kód módosítása"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN letiltása"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN engedélyezése"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Fix hívószámok kezelése"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"PIN-kód módosítása az FDN eléréséhez"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Telefonszámok listájának kezelése"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Adatvédelem"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Fokozott adatvédelmi mód engedélyezése"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-mód"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY-mód beállítása"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatikus újrapróbálkozás"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Automatikus újrapróbálkozás-mód bekapcsolása"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Névjegy hozzáadása"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Névjegy szerkesztése"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Névjegy törlése"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Írja be a PIN2 kódot"</string>
+    <string name="name" msgid="7329028332786872378">"Név"</string>
+    <string name="number" msgid="7905950798349903858">"Szám"</string>
+    <string name="save" msgid="4094274636321939086">"Mentés"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Fix hívószám hozzáadása"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Fix hívószám hozzáadása..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"A fix hívószám hozzáadva."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Fix hívószám szerkesztése"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Fix hívószám frissítése..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"A fix hívószám frissítve."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Fix hívószám törlése"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Fix hívószám törlése..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"A fix hívószám törölve."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Az FDN nem volt frissítve, mert hibás PIN-kódot írt be."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Az FDN nem lett frissítve, mert a szám nem haladhatja meg a 20 számjegyet."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Az FDN nem lett frissítve. Hibás a PIN2 kód, vagy a telefonszámot elutasították."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Beolvasás a SIM-kártyáról..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nincsenek névjegyek a SIM-kártyán."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Válassza ki az importálni kívánt névjegyeket"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"A névjegyek SIM kártyáról való importálásához először kapcsolja ki a repülőgépes üzemmódot."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM-kártya PIN-kódjának be-/kikapcsolása"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM-kártya PIN-kódjának módosítása"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM-kártya PIN-kódja:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Régi PIN-kód"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Új PIN-kód"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Erősítse meg az új PIN-kódot"</string>
+    <string name="badPin" msgid="8955102849303984935">"A megadott régi PIN kód helytelen. Próbálja újra."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"A beírt PIN kódok nem egyeznek. Próbálja újra."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Írjon be egy 4-8 számjegyű PIN-kódot."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM-kártya PIN-kódjának kikapcsolása"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM-kártya PIN-kódjának bekapcsolása"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Kérjük, várjon..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM kártya PIN kódja bekapcsolva."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM kártya PIN kódja kikapcsolva."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"A megadott PIN kód hibás."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"A SIM kártya PIN kódja sikeresen módosítva."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"A jelszó helytelen, a SIM-kártya zárolásra került. Adja meg a PUK2-kódot."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Régi PIN2-kód"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Új PIN2-kód"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Erősítse meg az új PIN2-kódot"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"A megadott PUK2 kód helytelen. Kérjük, próbálja újra."</string>
+    <string name="badPin2" msgid="1041576234483629991">"A megadott régi PIN2 kód helytelen. Próbálja újra."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"A beírt PIN2 kódok nem egyeznek. Próbálja újra."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Írjon be egy 4-8 számjegyű PIN2-kódot."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Írja be a 8 jegyű PUK2-kódot."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"A PIN2 kód sikeresen módosítva."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Írja be a PUK2-kódot"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"A jelszó helytelen. Kérjük, módosítsa a PIN2 kódot és próbálja újra."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"A jelszó helytelen, a SIM kártya zárolásra került. Adja meg a PUK2 kódot."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Kész"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferenciahívás: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Hangposta száma"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Tárcsázás"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Újrapróbálkozás"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenciahívás"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Bejövő hívás"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"A hívás befejeződött"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Tartásban"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Megszakítás"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Hívásban"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"A számom: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Tárcsázás"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Nem fogadott hívás"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Nem fogadott hívások"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> nem fogadott hívás"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Nem fogadott hívás: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Hívás folyamatban"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Tartásban"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Bejövő hívás"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Új hangposta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Új hangpostaüzenet (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> tárcsázása"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"A hangposta száma ismeretlen"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nincs szolgáltatás"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"A kiválasztott hálózat (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nem érhető el"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Hívás befejezése"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Visszahívás"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Üzenet"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Híváskezdeményezéshez kapcsolja ki a Repülőgép üzemmódot."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nincs regisztrálva a hálózaton."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"A mobilhálózat nem érhető el."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"A hívás indítása érvénytelen szám beírása miatt nem történt meg."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"A hívás nem indítható."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-sorozat indítása..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nem támogatott szolgáltatás"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Nem lehet váltani a hívások között."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Nem lehet elkülöníteni a hívást."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Nem lehet továbbítani a hívást."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nem lehet konferenciahívást folytatni."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Nem lehet elutasítani a hívást."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Nem lehet befejezni a hívás(oka)t."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetes hívás"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Segélyhívás"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Rádió bekapcsolása..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Szolgáltatási területen kívüli terület, újrapróbálás..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"A hívás nem indítható. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nem segélyhívó szám!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"A hívás nem indítható. Tárcsázzon egy segélyhívó számot!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"A tárcsázáshoz használja a billentyűzetet"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Tartás"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Befejezés"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tárcsázó"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Lezárás"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Hívás hozzáadása"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Hívások egyesítése"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Csere"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Hívások kezelése"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Konferencia kezelése"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Hang"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videohívás"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importálás"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Összes importálása"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM-kártya névjegyeinek importálása"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importálás a Címtárból"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Hallókészülékek"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Hallókészülék-kompatibilitás bekapcsolása"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY kikapcsolva"</item>
+    <item msgid="3971695875449640648">"Teljes TTY"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-hangjelzések"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF hangjelzések hosszának beállítása"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normál"</item>
+    <item msgid="2883365539347850535">"Hosszú"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Hálózati üzenet"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktiválja telefonját"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"A telefonszolgáltatás aktiválásához egy speciális hívást kell indítania. "\n\n"Az \"Aktiválás\" megnyomása után kövesse az utasításokat."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Kihagyja az aktiválást?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ha kihagyja az aktiválást, nem indíthat hívásokat és nem kapcsolódhat mobil adathálózatokhoz (de csatlakozhat Wi-Fi hálózatokhoz). Amíg nem aktiválja telefonját, az minden egyes bekapcsoláskor felkéri Önt erre."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Átugrás"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiválás"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"A telefon aktiválva."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Gond volt az aktiválással"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Kövesse a hallott utasításokat, amíg azt nem hallja, hogy az aktiválás befejeződött."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Hangszóró"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Kérjük, várjon a telefon beprogramozásáig."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"A programozás nem sikerült"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefonja most már aktiválva van. Akár 15 percet is igénybe vehet a szolgáltatás elindítása."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Nem aktiválta a telefont. "\n"Lehet, hogy keresnie kell egy jobb lefedettségű területet (egy ablak közelében vagy a szabadban). "\n\n"Próbálkozzon újra vagy hívja az ügyfélszolgálatot a további lehetőségekért."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"TÚL SOK HELYESÍRÁSI HIBA"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Vissza"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Újrapróbálkozás"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Tovább"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Segélykérő visszahívása mód bekapcsolva"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Segélykérő visszahívása mód"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Adatkapcsolat letiltva"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g> perce nincs adatkapcsolat"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g> perce nincs adatkapcsolat"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"A telefon <xliff:g id="COUNT">%s</xliff:g> percig Sürgősségi visszahívás módban lesz. Ebben az üzemmódban nem használhatók az adatkapcsolatot használó alkalmazások. Szeretne most kilépni?"</item>
+    <item quantity="other" msgid="8617116564023933114">"A telefon <xliff:g id="COUNT">%s</xliff:g> percig Sürgősségi visszahívás módban lesz. Ebben az üzemmódban nem használhatók az adatkapcsolatot használó alkalmazások. Szeretne most kilépni?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"A kiválasztott művelet nem áll rendelkezésre Sürgősségi visszahívás módban. A telefon <xliff:g id="COUNT">%s</xliff:g> percig lesz ebben a módban. Szeretne most kilépni?"</item>
+    <item quantity="other" msgid="6115622137771382224">"A kiválasztott művelet nem áll rendelkezésre Sürgősségi visszahívás módban. A telefon <xliff:g id="COUNT">%s</xliff:g> percig lesz ebben a módban. Szeretne most kilépni?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A választott művelet nem érhető el segélyhívás során."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Kilépés a Sürgősségi visszahívás módból"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Igen"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nem"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Elvetés"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Szolgáltatás"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Beállítás"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nincs megadva&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Egyéb hívásbeállítások"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"ismerős fotója"</string>
+    <string name="goPrivate" msgid="865837794424530980">"magánbeszélgetés"</string>
+    <string name="selectContact" msgid="781975788478987237">"névjegy kijelölése"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Internetes hívás beállításai"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Internetes hívási (SIP) fiókok"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Fiókok"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Beérkező hívások fogadása"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Csökkenti a használati időt"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Internetes hívás használata"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Internetes hívás használata (csak Wi-Fi esetén)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Minden hívásnál, amikor nincs elérhető adathálózat"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Csak internetes hívásoknál"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Mindig rákérdez"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Minden hívásnál"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Hívás indítása"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"A következő Internetes hívási fiók használata:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Mindig használja internetes hívás kezdeményezésekor"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Megváltoztathatja, hogy melyik internetes telefonálási fiókot használja alapértelmezés szerint a Telefon &gt; Beállítások &gt; Internetes hívásbeállítások&gt; Fiókok képernyőn."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobiltelefonos hívás"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetes hívás"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nincs internetes hívási fiók"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Nincsenek internetes hívási fiókok ezen a telefonon. Szeretne most hozzáadni egyet?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Hozzáadás"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Fiók hozzáadása"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Fiók törlése"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-fiókok"</string>
+    <string name="saving_account" msgid="52903398217017954">"A fiók mentése..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"A fiók törlése..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Mentés"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Visszavonás"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"A profil bezárása"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Bezárás"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Elsődleges fiók: <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Állapot ellenőrzése..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Regisztrálás..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Még próbálkozik..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Nem fogad hívásokat."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"A fiók regisztrálása leállt, mert nincs internetkapcsolat."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"A fiók regisztrálása leállt, mert nincs Wi-Fi kapcsolat."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"A fiók regisztrálása sikertelen."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Hívások fogadása."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"A fiók regisztrálása sikertelen: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); próbálja újra később"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"A fiók regisztrálása nem sikerült: a felhasználónév vagy a jelszó helytelen."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"A fiók regisztrálása nem sikerült: ellenőrizze a szerver nevét."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Ezt a fiókot jelenleg a(z) <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> alkalmazás használja."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-fiók részletei"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-fiók részletei"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Szerver"</string>
+    <string name="username_title" msgid="2479375923477682328">"Felhasználónév"</string>
+    <string name="password_title" msgid="3323555249068171531">"Jelszó"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Megjelenített név"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Kimenő proxy címe"</string>
+    <string name="port_title" msgid="5952939408078626657">"Port száma"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Átvitel típusa"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Kapcsolat megtartása"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Beállítás elsődleges fiókként"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"A kimenő hívásokhoz használatos"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"További beállítások"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Azonosításhoz használt felhasználónév"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Azonosításhoz használt felhasználónév"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nincs megadva&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Ugyanaz, mint a felhasználónév&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcionális&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Érintse meg az összes megjelenítéséhez"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Érintse meg az összes elrejtéséhez"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> megadása kötelező, nem maradhat üresen."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"A port számának 1000 és 65534 között kell lennie."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nincs internetkapcsolat"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nincs Wi-Fi kapcsolat"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Internetes hívás kezdeményezéséhez először ellenőrizze az internetkapcsolatot."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Internetes hívásokhoz csatlakoznia kell egy Wi-Fi hálózathoz (használja a Vezeték nélküli és hálózati beállításokat)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Az internetes hívás nem támogatott"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatikus"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Mindig küldjön"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"A hanghívás nem támogatott"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Most nem alkalmas. Mi újság?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Hamarosan visszahívom."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Később visszahívom."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Most nem alkalmas. Hívna később?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Saját válasz írása..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Gyors válaszok"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Gyors válaszok szerkesztése"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Gyors válasz"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Alapalkalmazás visszaállítása"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Üzenet elküldve ide: <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"egy"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"kettő"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"három"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"négy"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"öt"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"hat"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"hét"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"nyolc"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"kilenc"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"csillag"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nulla"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"kettős kereszt"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"tárcsázás"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Kihangosítás engedélyezve."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Hívás némítva."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Fogadás"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS küldése"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Elutasítás"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Rezgés"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Rezgés"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Hang"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Alapértelmezett hang (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefon csengőhangja"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Csengetéskor rezegjen"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tárcsázó érintési hangjai"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Tárcsázó automatikus kiegészítés"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Csengőhang és rezgés"</string>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
new file mode 100644
index 0000000..f39daa4
--- /dev/null
+++ b/res/values-in/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Data Seluler"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Ponsel"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Aplikasi Telepon Darurat"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telepon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Daftar FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Tidak diketahui"</string>
+    <string name="private_num" msgid="6713286113000232309">"Nomor pribadi"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telepon umum"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ditangguhkan"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Jalur sibuk"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Jaringan sibuk"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Tidak ada jawaban, waktu habis"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server tidak dapat dijangkau"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nomor tidak dapat dijangkau"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nama pengguna atau sandi salah"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Dipanggil dari luar jaringan"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Kesalahan Server: Coba lagi nanti."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Tidak ada sinyal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM melebihi batas"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio mati"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Tidak ada SIM atau kesalahan SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Di luar area layanan"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Panggilan keluar dibatasi oleh FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Anda tidak dapat melakukan panggilan keluar sewaktu pemblokiran panggilan aktif."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Semua panggilan dibatasi oleh kontrol akses."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Panggilan darurat dibatasi oleh kontrol akses."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Panggilan normal dibatasi oleh kontrol akses."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Nomor tidak valid"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telewicara"</string>
+    <string name="call_lost" msgid="317670617901479594">"Panggilan telah terputus."</string>
+    <string name="ok" msgid="3811371167865772377">"Oke"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Kode MMI dimulai"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Kode USSD sedang berjalan…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kode MMI dibatalkan"</string>
+    <string name="cancel" msgid="5044513931633602634">"Batal"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Pesan USSD harus antara <xliff:g id="MIN_LEN">%d</xliff:g> dan <xliff:g id="MAX_LEN">%d</xliff:g> karakter. Coba lagi."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Kelola penggilan telewicara"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Pelantang"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Earpiece handset"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Headset berkabel"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Kirimkan nada berikut?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Mengirimkan nada"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Kirimkan"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ya"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Tidak"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Ganti karakter acak dengan"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nomor kotak pesan hilang"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Tidak ada nomor kotak pesan tersimpan pada kartu SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Tambahkan nomor"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Kartu SIM Anda tidak lagi dicekal. Ponsel Anda sedang dibuka kuncinya..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN pembuka kunci jaringan SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Buka kunci"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Tutup"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Meminta membuka jaringan..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Permintaan buka kunci jaringan gagal."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Jaringan berhasil dibuka."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Setelan panggilan GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Setelan panggilan CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Access Point Names (Nama Titik Akses)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Setelan jaringan"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Kotak Pesan"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operator jaringan"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Setelan panggilan"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Setelan tambahan"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Setelan panggilan khusus GSM tambahan"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Setelan panggilan CDMA tambahan"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Setelan panggilan khusus CDMA tambahan"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Setelan layanan jaringan"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Nomor Penelepon"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Memuat setelan..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nomor disembunyikan selama panggilan keluar"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nomor ditampilkan selama panggilan keluar"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Gunakan setelan operator default untuk menampilkan nomor saya pada panggilan keluar"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Nada tunggu"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Selama panggilan, beritahukan panggilan masuk kepada saya"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Selama panggilan, beritahukan panggilan masuk kepada saya"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Setelan penerusan panggilan"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Penerusan panggilan"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Selalu teruskan"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Selalu gunakan nomor ini"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Meneruskan semua panggilan"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Meneruskan semua panggilan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nomor tidak tersedia"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Dinonaktifkan"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Teruskan ketika sibuk"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nomor ketika sibuk"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Meneruskan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Dinonaktifkan"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operator Anda tidak mendukung penonaktifan penerusan panggilan ketika ponsel sibuk."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Teruskan ketika tidak dijawab"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nomor ketika tidak dapat dihubungi"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Meneruskan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Dinonaktifkan"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operator Anda tidak mendukung penonaktifan penerusan panggilan ketika ponsel tidak menjawab panggilan."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Teruskan ketika tidak dapat dihubungi"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nomor ketika tidak dapat dihubungi"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Meneruskan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dinonaktifkan"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operator Anda tidak mendukung penonaktifan penerusan panggilan ketika ponsel tidak dapat dijangkau."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Setelan panggilan"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Kesalahan setelan panggilan"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Membaca setelan…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Memperbarui setelan…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Mengembalikan setelan..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Tanggapan tak terduga dari jaringan."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Kesalahan jaringan atau kartu SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Setelan Nomor Panggilan Tetap aplikasi Ponsel Anda diaktifkan. Akibatnya, beberapa fitur yang terkait dengan panggilan tidak bekerja."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Keluar dari mode pesawat sebelum melihat setelan ini."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Oke"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktifkan"</string>
+    <string name="disable" msgid="7274240979164762320">"Nonaktifkan"</string>
+    <string name="change_num" msgid="239476305819844391">"Perbarui"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Setelan default jaringan"</item>
+    <item msgid="7876195870037833661">"Sembunyikan nomor"</item>
+    <item msgid="1108394741608734023">"Tampilkan nomor"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Nomor kotak pesan berubah."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Tidak dapat mengubah nomor pesan suara."\n"Hubungi operator Anda jika masalah ini terus berlanjut."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Tidak dapat mengubah nomor penerusan."\n"Hubungi operator Anda jika masalah ini terus berlanjut."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Tidak dapat mengambil dan menyimpan setelan nomor telepon penerusan saat ini."\n"Tetap beralih ke operator baru?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Tidak ada perubahan yang dilakukan."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Pilih layanan kotak pesan"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Operator Anda"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Setelan jaringan seluler"</string>
+    <string name="label_available" msgid="1181658289009300430">"Jaringan yang tersedia"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Menelusuri…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Jaringan tidak ditemukan."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Telusuri jaringan"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Kesalahan ketika menelusuri jaringan."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Mendaftarkan pada <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Kartu SIM Anda tidak mengizinkan sambungan ke jaringan ini."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Tidak dapat terhubung ke jaringan ini sekarang. Coba lagi nanti."</string>
+    <string name="registration_done" msgid="495135664535876612">"Terdaftar pada jaringan."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Pilih operator jaringan"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Telusuri semua jaringan yang tersedia"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Pilih otomatis"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Memilih jaringan yang disukai secara otomatis"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Pendaftaran otomatis..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Mode Jaringan"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Ubah mode pengoperasian jaringan"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Mode jaringan yang disukai"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mode jaringan pilihan: WCDMA lebih disukai"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mode jaringan pilihan: GSM saja"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mode jaringan pilihan: WCDMA saja"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mode jaringan pilihan: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mode jaringan yang disukai: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mode jaringan yang disukai: : CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mode jaringan pilihan: CDMA saja"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mode jaringan pilihan: EvDo saja"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Mode jaringan yang disukai: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Mode jaringan yang disukai: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Mode jaringan yang disukai: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Mode jaringan yang disukai: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Mode jaringan yang disukai: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Mode jaringan yang disukai: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo saja"</item>
+    <item msgid="1508557726283094448">"CDMA tanpa EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo otomatis"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA otomatis"</item>
+    <item msgid="7913148405605373434">"WCDMA saja"</item>
+    <item msgid="1524224863879435516">"GSM saja"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA lebih disukai"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data diaktifkan"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktifkan akses data pada jaringan Seluler"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming data"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Sambungkan ke layanan data ketika roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Sambungkan ke layanan data ketika roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Anda telah kehilangan konektivitas data karena meninggalkan jaringan asal dalam keadaan roaming data dimatikan."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Izinkan roaming data? Anda mungkin dikenai tarif jelajah yang tinggi!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opsi GSM//UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opsi CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Penggunaan data"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data yang digunakan dalam periode saat ini"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Periode penggunaan data"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Kebijakan kecepatan data"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Pelajari lebih lanjut"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) dari <xliff:g id="USED_2">%3$s</xliff:g> maksimum periode "\n"Periode berikutnya dimulai dalam <xliff:g id="USED_3">%4$d</xliff:g> hari (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) dari <xliff:g id="USED_2">%3$s</xliff:g> maksimum periode"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Melebihi batas maksimum <xliff:g id="USED_0">%1$s</xliff:g>"\n"Kecepatan data dikurangi hingga <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ dari siklus yang berlalu"\n"Periode berikutnya dimulai dalam <xliff:g id="USED_1">%2$d</xliff:g> hari (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Kecepatan data dikurangi menjadi <xliff:g id="USED">%1$d</xliff:g> Kb/s jika penggunaan data melebihi batas"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Informasi selengkapnya tentang kebijakan penggunaan data jaringan seluler operator Anda"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS Siaran Sel"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Siaran Sel"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Setelan SMS Siaran Sel diaktifkan"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS Siaran Sel dinonaktifkan"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Setelan SMS Siaran Sel"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Siaran Darurat"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Siaran Darurat diaktifkan"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Siaran Darurat dinonaktifkan"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratif"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administratif diaktifkan"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administratif dinonaktifkan"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Pemeliharaan"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Pemeliharaan diaktifkan"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Perawatan dinonaktifkan"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Berita Umum"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Bisnis dan Berita Keuangan"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Berita Olahraga"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Berita Hiburan"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Berita Lokal diaktifkan"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Berita lokal dinonakifkan"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Berita Regional diaktifkan"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Berita Regional dinonakifkan"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nasional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Berita nasional diaktifkan"</string>
+    <string name="national_disable" msgid="326018148178601166">"Berita nasional dinonaktifkan"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internasional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Berita internasional diaktifkan"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Berita internasional dinonakifkan"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Bahasa"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Pilih bahasa berita"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inggris"</item>
+    <item msgid="1151988412809572526">"Prancis"</item>
+    <item msgid="577840534704312665">"Spanyol"</item>
+    <item msgid="8385712091143148180">"Jepang"</item>
+    <item msgid="1858401628368130638">"Korea"</item>
+    <item msgid="1933212028684529632">"Bahasa China"</item>
+    <item msgid="1908428006803639064">"Ibrani"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Bahasa"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Cuaca Lokal"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Cuaca Lokal diaktifkan"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Cuaca Lokal dinonakifkan"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Laporan Lalu Lintas Daerah"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Laporan Lalu Lintas Daerah diaktifkan"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Laporan Lalu Lintas Daerah dinonaktifkan"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Jadwal Penerbangan Bandara Lokal"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Jadwal Penerbangan Bandara Lokal diaktifkan"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Jadwal Penerbangan Bandara Lokal dinonaktifkan"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restoran"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restoran diaktifkan"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restoran dinonaktifkan"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Penginapan"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Penginapan diaktifkan"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Penginapan dinonaktifkan"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Direktori Pengecer"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Direktori Pengecer diaktifkan"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Direktori Pengecer dinonaktifkan"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Iklan"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Iklan diaktifkan"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Iklan dinonaktifkan"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Kutipan Saham"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Kutipan Saham diaktifkan"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Kutipan Saham dinonaktifkan"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Peluang Kerja"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Peluang Kerja diaktifkan"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Peluang Kerja dinonaktifkan"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medis, Kesehatan, dan Rumah Sakit"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medis, Kesehatan, dan Rumah Sakit diaktifkan"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medis, Kesehatan, dan Rumah Sakit dinonaktifkan"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Berita Teknologi"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Berita Teknologi diaktifkan"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Berita Teknologi dinonaktifkan"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-kategori"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multi-kategori diaktifkan"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multi-kategori dinonaktifkan"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Jaringan 2G saja"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Menghemat baterai"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Pilih sistem"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Ubah mode roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Pilih sistem"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Utama saja"</item>
+    <item msgid="1205664026446156265">"Otomatis"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Langganan CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Ubah antara RUIM/SIM dan NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"langganan"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM//SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktifkan perangkat"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Siapkan layanan data"</string>
+    <string name="fdn" msgid="7878832555095183202">"Nomor Panggilan Tetap"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Daftar FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivasi FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Nomor Panggilan Tetap diaktifkan"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Nomor Panggilan Tetap dinonaktifkan"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Aktifkan FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Nonaktifkan FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Ubah PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Nonaktifkan FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Aktifkan FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Kelola Nomor Panggilan Tetap"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Ubah PIN untuk akses FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Kelola daftar nomor telepon"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privasi suara"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Aktifkan mode privasi yang ditingkatkan"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Mode TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Setel Mode TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Coba lagi otomatis"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktifkan mode Coba lagi otomatis"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Tambahkan kontak"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Edit kontak"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Hapus kontak"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Ketik PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nama"</string>
+    <string name="number" msgid="7905950798349903858">"Nomor"</string>
+    <string name="save" msgid="4094274636321939086">"Simpan"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Tambahkan nomor panggilan tetap"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Menambahkan nomor panggilan tetap..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Nomor panggilan tetap ditambahkan."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Edit nomor panggilan tetap"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Memperbarui nomor panggilan tetap..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Nomor panggilan tetap diperbarui."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Hapus nomor panggilan tetap"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Menghapus nomor panggilan tetap..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Nomor panggilan tetap dihapus."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN tidak diperbarui karena Anda memasukkan PIN yang salah."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN tidak diperbarui karena nomor tersebut tidak boleh melebihi 20 digit."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN tidak diperbarui. PIN2 salah, atau nomor telepon ditolak."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Membaca dari kartu SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Tidak ada kontak pada Kartu SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Pilih kontak untuk diimpor"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Untuk mengimpor kontak dari kartu SIM, pertama-tama matikan mode Pesawat."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Aktifkan/nonaktifkan PIN SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Ubah PIN SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN lama"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN Baru"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Konfirmasi PIN baru"</string>
+    <string name="badPin" msgid="8955102849303984935">"PIN lama yang Anda masukkan salah. Coba lagi."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN yang Anda masukkan tidak cocok. Coba lagi."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Ketikkan PIN berupa 4 sampai 8 angka."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Nonaktifkan PIN SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Aktifkan PIN SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Harap tunggu…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN SIM diaktifkan."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN SIM dinonaktifkan."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN yang Anda ketikkan salah."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN SIM berhasil diubah."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Sandi salah, SIM terkunci! Masukkan PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 yang lama"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 Baru"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Konfirmasi PIN2 baru"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 yang Anda ketikkan salah. Coba lagi."</string>
+    <string name="badPin2" msgid="1041576234483629991">"PIN2 lama yang Anda masukkan salah. Coba lagi."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2 yang Anda masukkan tidak cocok. Coba lagi."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Ketikkan PIN2 berupa 4 sampai 8 angka."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Ketikkan PUK2 berupa 8 angka."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 berhasil diubah."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Ketikkan kode PUK2."</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Sandi salah. Ubah PIN2 dan coba lagi."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Sandi salah, SIM terkunci. Masukkan PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Selesai"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telewicara <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nomor kotak pesan"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Memanggil"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Mencoba ulang"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telewicara"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Panggilan masuk"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Panggilan diakhiri"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ditangguhkan"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Menutup panggilan"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Sedang dalam panggilan"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Nomor saya <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Memanggil"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Panggilan tak terjawab"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Panggilan tak terjawab"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan tak terjawab"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Panggilan tak terjawab dari <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Panggilan yang berlangsung"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Ditangguhkan"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Panggilan masuk"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Kotak pesan baru"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Kotak pesan baru (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Panggil <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nomor kotak pesan tidak dikenal"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Tidak ada layanan"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Jaringan yang dipilih (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) tidak tersedia"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Akhiri"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Hubungi kembali"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Pesan"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Untuk melakukan panggilan, pertama-tama matikan mode Pesawat."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Tidak terdaftar pada jaringan."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Jaringan seluler tidak tersedia."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Panggilan tidak terkirim, tidak ada nomor valid yang dimasukkan."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Panggilan tidak terkirim."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Memulai urutan MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Layanan tidak didukung."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Tidak dapat mengalihkan panggilan."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Tidak dapat memisahkan panggilan."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Tidak dapat mentransfer panggilan."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Tidak dapat melakukan telewicara."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Tidak dapat menolak panggilan."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Tidak dapat melepaskan panggilan."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Panggilan internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan darurat"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Di luar area layanan, mencoba sekali lagi..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Panggilan tidak terkirim. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nomor darurat!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Panggilan tidak terkirim. Panggil nomor darurat!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Gunakan keyboard untuk memanggil"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Tahan"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Akhiri"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Dialpad"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Bungkam"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Tambahkan panggilan"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Gabungkan panggilan"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Tukar"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Kelola panggilan"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Kelola konferensi"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video call"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Impor"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Impor semua"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Mengimpor kontak dari SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Impor dari kontak"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Alat bantu dengar"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Hidupkan kompatibilitas alat bantu dengar"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY Mati"</item>
+    <item msgid="3971695875449640648">"TTY Penuh"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Nada DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Setel panjang nada DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Jauh"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Pesan jaringan"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktifkan ponsel Anda"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Perlu dilakukan panggilan khusus untuk mengaktifkan layanan ponsel Anda. "\n\n"Setelah menekan “Aktifkan”, dengarkan instruksi yang diberikan untuk mengaktifkan ponsel."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Lewati aktivasi?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Jika Anda mengabaikan aktivasi, Anda tidak dapat melakukan panggilan atau menyambung ke jaringan data seluler (walaupun dapat menyambung ke jaringan Wi-Fi). Sampai ponsel diaktifkan, Anda akan diminta mengaktifkannya setiap kali ponsel dihidupkan."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Lewati"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktifkan"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Ponsel telah aktif."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Masalah dengan aktivasi"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Ikuti instruksi lisan sampai Anda mendengar aktivasi telah selesai."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Pengeras Suara"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Tunggu sampai ponsel selesai diprogram."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Pemrograman gagal"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Ponsel Anda sekarang diaktifkan. Mungkin dibutuhkan waktu hingga 15 menit sampai layanan dimulai."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Ponsel Anda tidak aktif. "\n"Anda mungkin perlu menemukan area dengan cakupan yang lebih baik (di dekat jendela atau di luar). "\n\n"Coba lagi atau hubungi layanan pelanggan untuk opsi lainnya."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"KEGAGALAN SPC BERLEBIH"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Kembali"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Coba lagi"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Berikutnya"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Masukkan Mode Panggilan Balik Darurat"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mode Panggilan Balik Darurat"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Sambungan data dinonaktifkan"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Tidak ada sambungan data selama <xliff:g id="COUNT">%s</xliff:g> menit"</item>
+    <item quantity="other" msgid="3122217344579273583">"Tidak ada sambungan data selama <xliff:g id="COUNT">%s</xliff:g> menit"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Ponsel akan berada dalam mode Panggil Balik Darurat selama <xliff:g id="COUNT">%s</xliff:g> menit. Selama dalam mode ini, aplikasi yang menggunakan sambungan data tidak dapat dipakai. Apakah Anda ingin keluar sekarang?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Ponsel akan berada dalam mode Panggil Balik Darurat selama <xliff:g id="COUNT">%s</xliff:g> menit. Selama dalam mode ini, aplikasi yang menggunakan sambungan data tidak dapat dipakai. Apakah Anda ingin keluar sekarang?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Tindakan yang dipilih tidak tersedia saat berada dalam mode Panggil Balik Darurat. Ponsel akan berada dalam mode ini selama <xliff:g id="COUNT">%s</xliff:g> menit. Apakah Anda ingin keluar sekarang?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Tindakan yang dipilih tidak tersedia saat berada dalam mode Panggil Balik Darurat. Ponsel akan berada dalam mode ini untuk <xliff:g id="COUNT">%s</xliff:g> menit. Apakah Anda ingin keluar sekarang?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Tindakan yang dipilih tidak tersedia ketika dalam panggilan darurat."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Keluar dari mode Panggilan Balik Darurat"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ya"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Tidak"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Tutup"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Layanan"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Penyiapan"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Tidak disetel&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Setelan panggilan lainnya"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Memanggil via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto kontak"</string>
+    <string name="goPrivate" msgid="865837794424530980">"aktifkan pribadi"</string>
+    <string name="selectContact" msgid="781975788478987237">"pilih kontak"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Setelan panggilan internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Akun panggilan internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Akun"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Terima panggilan masuk"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Mengurangi masa pakai baterai"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Gunakan panggilan internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Gunakan panggilan internet (Wi-Fi saja)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Untuk semua panggilan ketika jaringan data tersedia"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Hanya untuk panggilan internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Tanyakan pada setiap panggilan"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Untuk semua panggilan"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Lakukan panggilan"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Gunakan akun panggilan internet"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Selalu gunakan untuk melakukan panggilan internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Anda dapat mengubah akun pemanggil internet mana yang digunakan secara default dari layar Telepon &gt; Setelan &gt; Setelan panggilan internet &gt; Akun."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Paggilan ponsel"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Panggilan internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Tidak ada akun panggilan internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Tidak ada akun panggilan internet di ponsel ini. Apakah Anda ingin menambahkan akun sekarang?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Tambahkan"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Tambahkan akun"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Hapus akun"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Akun SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Menyimpan akun..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Menghapus akun..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Simpan"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Hapus"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Tutup profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Oke"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Tutup"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Akun utama. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Memeriksa status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Mendaftarkan..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Masih mencoba..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Tidak menerima panggilan."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Pendaftaran akun terhenti karena tidak ada sambungan internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Pendaftaran akun terhenti karena tidak ada sambungan Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Pendaftaran akun gagal."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Menerima panggilan."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Pendaftaran akun gagal: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); akan mencoba lagi nanti"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Pendaftaran akun gagal: Nama pengguna atau sandi salah."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Pendaftaran akun gagal: Periksa nama server."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Saat ini akun digunakan oleh aplikasi <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detail akun SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detail akun SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nama Pengguna"</string>
+    <string name="password_title" msgid="3323555249068171531">"Sandi"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nama tampilan"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Alamat proxy di luar"</string>
+    <string name="port_title" msgid="5952939408078626657">"Nomor port"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Jenis transportasi"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Kirim keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Setel sebagai akun utama"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Digunakan untuk panggilan keluar"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Setelan opsional"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nama pengguna autentikasi"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nama pengguna yang digunakan untuk autentikasi"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Tidak disetel&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Sama dengan nama pengguna&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opsional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Sentuh untuk menampilkan semua"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Sentuh untuk menyembunyikan semua"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diperlukan, tidak boleh kosong."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Nomor port harus dalam rentang 1000 dan 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Tidak ada sambungan internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Tidak ada sambungan Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Untuk melakukan panggilan internet, periksalah sambungan internet Anda terlebih dulu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Anda perlu tersambung ke jaringan Wi-Fi untuk panggilan internet (gunakan setelan Nirkabel &amp; Jaringan)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Panggilan internet tidak didukung"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Otomatis"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Selalu kirim"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Panggilan suara tidak didukung"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Tak bisa bicara sekarang. Ada apa?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Saya segera telepon balik."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nanti saya telepon balik."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Tak bisa bicara skrg. Tlp lg nanti?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Tulis respons Anda sendiri…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Tanggapan cepat"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edit tanggapan cepat"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Tanggapan cepat"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Setel ulang aplikasi default"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Pesan dikirim ke <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"satu"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dua"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tiga"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"empat"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"lima"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"enam"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"tujuh"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"delapan"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"sembilan"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"bintang"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nol"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pound"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"panggil"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Pengeras suara ponsel diaktifkan."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Panggilan disenyapkan."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Menjawab"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Mengirim SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Menolak"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Getar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Getar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Suara"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Suara default (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Nada dering ponsel"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Bergetar saat berdering"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Nada sentuh dial pad"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Lengkapi otomatis tombol nomor"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Getar"</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
new file mode 100644
index 0000000..3a76e36
--- /dev/null
+++ b/res/values-it/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Dati cellulare"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Chiamata di emergenza"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefono"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Elenco FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Sconosciuto"</string>
+    <string name="private_num" msgid="6713286113000232309">"Numero privato"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefono a monete"</string>
+    <string name="onHold" msgid="9035493194749959955">"In attesa"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linea occupata"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Rete occupata"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nessuna risposta, timeout"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server non raggiungibile"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numero non raggiungibile"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Password o nome utente errato"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Chiamata da fuori rete"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Errore del server. Riprova più tardi."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Nessun segnale"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Limite ACM superato"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Segnale cellulare disattivato"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Nessuna SIM o errore della SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Area non coperta dal servizio"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Chiamate in uscita limitate da FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Impossibile effettuare chiamate in uscita con il blocco chiamate attivo."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Tutte le chiamate sono limitate dal controllo di accesso."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Chiamate di emergenza limitate dal controllo di accesso."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Le normali chiamate sono limitate dal controllo di accesso."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Numero non valido"</string>
+    <string name="confCall" msgid="1904840547188336828">"Audioconferenza"</string>
+    <string name="call_lost" msgid="317670617901479594">"La chiamata è stata persa."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Codice MMI avviato"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Esecuzione codice USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Codice MMI annullato"</string>
+    <string name="cancel" msgid="5044513931633602634">"Annulla"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Il messaggio USSD deve essere compreso tra <xliff:g id="MIN_LEN">%d</xliff:g> e <xliff:g id="MAX_LEN">%d</xliff:g> caratteri. Riprova."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestisci audioconferenza"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altoparlante"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Auricolare telefono"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Auricolare con cavo"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Inviare i numeri successivi?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Invio toni"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Invia"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sì"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Sostituisci carattere jolly con"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Numero segreteria mancante"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Nessun numero di segreteria presente nella SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Aggiungi numero"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"La SIM è stata sbloccata. Sblocco del telefono..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN sblocco rete SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Sblocca"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Chiudi"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Richiesta sblocco rete..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Richiesta di sblocco della rete respinta."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Sblocco della rete riuscito."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Imp. chiamate GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Impostazioni di chiamata CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nomi punti di accesso"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Impostazioni di rete"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Segreteria"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"ST:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operatori di rete"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Impostazioni chiamate"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Altre impostazioni"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Altre impostazioni chiamata solo GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Altre impostazioni chiamata CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Altre impostazioni chiamata solo CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Impostazioni servizio di rete"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID chiamante"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Caricamento impostazioni…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Numero nascosto per chiamate in uscita"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numero visualizzato in chiamate in uscita"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Usa impostazioni operatore per visualizzare il mio numero in chiamate in uscita"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Avviso di chiamata"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Notifica chiamate in entrata durante telefonata"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Notifica chiamate in entrata durante telefonata"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Deviazione chiamate"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Deviazione chiamate"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Devia sempre"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Usa sempre questo numero"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Deviazione di tutte le chiamate"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Deviazione di tutte le chiamate al numero <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numero non disponibile"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Disattivato"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Devia se occupato"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numero se occupato"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Deviazione al numero <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Disattivato"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Il tuo operatore non supporta la disattivazione dell\'inoltro chiamate quando il telefono è occupato."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Devia se non si risponde"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numero se non si risponde"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Deviazione al numero <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Disattivato"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Il tuo operatore non supporta la disattivazione dell\'inoltro chiamate quando il telefono non risponde."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Devia se non raggiungibile"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numero se non raggiungibile"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Deviazione al numero <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disattivato"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Il tuo operatore non supporta la disattivazione dell\'inoltro chiamate quando il telefono non è raggiungibile."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Impostazioni chiamate"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Errore durante aggiornam. impostaz. chiamate"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Lettura impostazioni..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Aggiornamento impostazioni..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Annullamento impostazioni..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Risposta imprevista dalla rete."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Errore di rete o della SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"L\'impostazione relativa ai numeri di selezione fissa dell\'applicazione sul tuo telefono è attiva. Di conseguenza, alcune funzioni legate alle chiamate non funzionano."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Attiva il segnale cellulare per visualizzare queste impostazioni."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Attiva"</string>
+    <string name="disable" msgid="7274240979164762320">"Disattiva"</string>
+    <string name="change_num" msgid="239476305819844391">"Aggiorna"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Rete predefinita"</item>
+    <item msgid="7876195870037833661">"Nascondi numero"</item>
+    <item msgid="1108394741608734023">"Mostra numero"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Numero segreteria modificato."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Modifica del numero della segreteria non riuscita."\n"Contatta il tuo operatore se il problema persiste."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Modifica del numero di deviazione non riuscita."\n"Contatta il tuo operatore se il problema persiste."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Recupero e salvataggio delle impostazioni correnti dei numeri di deviazione non riusciti. "\n"Passare comunque al nuovo fornitore?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nessuna modifica effettuata."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Scegli il servizio di segreteria"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Il mio gestore"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Impostazioni reti mobili"</string>
+    <string name="label_available" msgid="1181658289009300430">"Reti disponibili"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Ricerca..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nessuna rete trovata."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Cerca reti"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Errore durante la ricerca di reti."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrazione su <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"La scheda SIM non consente la connessione a questa rete."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Impossibile connettersi a questa rete in questo momento. Riprova più tardi."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrato sulla rete."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Scegli un operatore di rete"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Cerca tutte le reti disponibili"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Scegli automaticamente"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Scegli automaticamente la rete preferita"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registrazione automatica..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Modalità rete"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Cambia la modalità di funzionamento della rete"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Modalità di rete preferita"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modalità di rete preferita: WCDMA (preferita)"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modalità di rete preferita: solo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modalità di rete preferita: solo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modalità di rete preferita: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Modalità di rete preferita: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Modalità di rete preferita: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modalità di rete preferita: solo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modalità di rete preferita: solo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Modalità di rete preferita: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Modalità di rete preferita: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Modalità di rete preferita: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Modalità di rete preferita: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Modalità di rete preferita: globale"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Modalità di rete preferita: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globale"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Solo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA senza EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatico"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automatico"</item>
+    <item msgid="7913148405605373434">"Solo WCDMA"</item>
+    <item msgid="1524224863879435516">"Solo GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferito"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dati attivati"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Attiva l\'accesso ai dati sulla rete cellulare"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming dati"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Connessione a servizi di dati in caso di roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Connessione a servizi di dati in roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Connettività dati persa: hai lasciato la rete del tuo operatore con il roaming dati disattivato."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Consentire il roaming dati? I costi potrebbero essere elevati."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opzioni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opzioni CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Utilizzo dati"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Dati utilizzati nel periodo corrente"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Periodo utilizzo dati"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Norme velocità dati"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Ulteriori informazioni"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> max superato"\n"Velocità dati ridotta a <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>% del ciclo trascorso"\n"Il periodo succ. inizia tra <xliff:g id="USED_1">%2$d</xliff:g> gg (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Velocità dati ridotta a <xliff:g id="USED">%1$d</xliff:g> Kb/s se limite utilizzo dati superato"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Informazioni sulla norme di utilizzo dati della rete cellulare del gestore"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS cell broadcast"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS cell broadcast"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS cell broadcast attivato"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS cell broadcast disattivato"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Impostazioni SMS cell broadcast"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Emergency broadcast"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Emergency broadcast attivato"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Emergency broadcast disattivato"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Amministrative"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Amministrative attivate"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Amministrative disattivate"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Manutenzione"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Manutenzione attivata"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Manutenzione disattivata"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"News generiche"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Economia e finanza"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"News sportive"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"News di intrattenimento"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Locali"</string>
+    <string name="local_enable" msgid="6370463247609136359">"News locali attivate"</string>
+    <string name="local_disable" msgid="4405691986943795798">"News locali disattivate"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionali"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"News regionali attivate"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"News regionali disattivate"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nazionali"</string>
+    <string name="national_enable" msgid="1172443648912246952">"News nazionali attivate"</string>
+    <string name="national_disable" msgid="326018148178601166">"News nazionali disattivate"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internazionali"</string>
+    <string name="international_enable" msgid="5855356769925044927">"News internazionali attivate"</string>
+    <string name="international_disable" msgid="2850648591041088931">"News internazionali disattivate"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Lingua"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Seleziona la lingua desiderata per le news"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglese"</item>
+    <item msgid="1151988412809572526">"Francese"</item>
+    <item msgid="577840534704312665">"Spagnolo"</item>
+    <item msgid="8385712091143148180">"Giapponese"</item>
+    <item msgid="1858401628368130638">"Coreano"</item>
+    <item msgid="1933212028684529632">"Cinese"</item>
+    <item msgid="1908428006803639064">"Ebraico"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Lingue"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Meteo locale"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Meteo locale attivato"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Meteo locale disattivato"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Bollettini sul traffico dell\'area"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Bollettini sul traffico dell\'area attivati"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Bollettini sul traffico dell\'area disattivati"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Orari di volo aeroporto locale"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Orari di volo aeroporto locale attivati"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Orari di volo aeroporto locale disattivati"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Ristoranti"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ristoranti attivati"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Ristoranti disattivati"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Alberghi"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Alberghi attivati"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Alberghi disattivati"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Elenco di vendita al dettaglio"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Elenco di vendita al dettaglio attivato"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Elenco di vendita al dettaglio disattivato"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Pubblicità"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Pubblicità attivate"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Pubblicità disattivate"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Quotazioni titoli"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Quotazioni titoli attivate"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Quotazioni titoli disattivate"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Opportunità di impiego"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Opportunità di impiego attivate"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Opportunità di impiego disattivate"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicina, salute e ospedale"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicina, salute e ospedale attivate"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicina, salute e ospedale disattivate"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"News di tecnologia"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"News di tecnologia attivate"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"News di tecnologia disattivate"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multicategoria"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multicategoria attivata"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multicategoria disattivata"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Usa solo reti 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Risparmia batteria"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selezione sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Cambia la modalità roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selezione sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Solo domestica"</item>
+    <item msgid="1205664026446156265">"Automatiche"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Abbonamento CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Cambia tra RUIM/SIM e NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abbonamento"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Attiva dispositivo"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Imposta servizio dati"</string>
+    <string name="fdn" msgid="7878832555095183202">"Numeri selezione fissa (FDN)"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Elenco FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Attivazione FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Numeri di selezione fissa attivi"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Numeri di selezione fissa non attivi"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Attiva FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Disattiva FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Cambia PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Disattiva FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Attiva FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gestisci numeri di selezione fissa"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Cambia PIN per accesso FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gestisci elenco numeri"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacy pacchetti vocali"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Attiva modalità privacy ottimizzata"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Modalità TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Imposta modalità TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Nuovo tentativo automatico"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Attiva la modalità Nuovo tentativo automatico"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Aggiungi contatto"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Modifica contatto"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Elimina contatto"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Digita PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nome"</string>
+    <string name="number" msgid="7905950798349903858">"Numero"</string>
+    <string name="save" msgid="4094274636321939086">"Salva"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Aggiungi numero selezione fissa"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Aggiunta numero selezione fissa..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Numero di selezione fissa aggiunto."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Modifica numero selezione fissa"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Aggiornamento numero selezione fissa..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Numero di selezione fissa aggiornato."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Elimina numero selezione fissa"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Eliminazione numero selezione fissa..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Numero di selezione fissa eliminato."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN non aggiornato perché il PIN inserito non è corretto."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN non è stato aggiornato perché il numero non può superare 20 cifre."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN non aggiornato. Il codice PIN2 non era corretto o il numero di telefono è stato rifiutato."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Lettura da SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nessun contatto presente nella SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Seleziona contatti da importare"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Per importare i contatti dalla scheda SIM, prima disattiva la modalità aereo."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Attiva/disattiva PIN di SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Cambia PIN SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN della SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN attuale"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nuovo PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Conferma nuovo PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Il vecchio PIN digitato è errato. Riprova."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"I PIN digitati non corrispondono. Riprova."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Il PIN deve essere di 4-8 numeri."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Disattiva PIN SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Attiva PIN di SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Attendere..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN della SIM attivato."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN della SIM disattivato."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Il PIN digitato è errato."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN della SIM modificato."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Password errata. La SIM è bloccata. Inserisci il codice PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 attuale"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nuovo PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Conferma nuovo PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Il PUK2 digitato è errato. Riprova."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Il vecchio PIN2 digitato è errato. Riprova."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"I PIN2 digitati non corrispondono. Riprova."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Il PIN2 deve essere di 4-8 numeri."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Il PUK2 deve essere di 8 numeri."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 modificato."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Digita il codice PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Password errata. Modifica il PIN2 e riprova."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Password errata. La SIM è bloccata. Inserisci il codice PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Fine"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Audioconferenza <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Numero segreteria"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Chiamata in corso"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Nuovo tentativo"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Audioconferenza"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Chiamata in arrivo"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Chiamata terminata"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"In attesa"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"In fase di chiusura"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Chiamata"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Il mio numero è <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Chiamata in corso"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chiamata senza risposta"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Chiamate senza risposta"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chiamate senza risposta"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Chiamata senza risposta da <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Chiamata in corso"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"In attesa"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Chiamata ricevuta"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nuovo msg vocale"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nuovo msg vocale (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Componi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Numero segreteria sconosciuto"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nessun servizio"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Rete selezionata (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponibile"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Riaggancia"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Richiama"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Messaggio"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Per fare una telefonata, disattiva la modalità aereo."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Non registrato sulla rete."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Rete cellulare non disponibile."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Chiamata non inviata. Nessun numero valido inserito."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Chiamata non inviata."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Inizio sequenza MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Servizio non supportato."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Impossibile passare all\'altra chiamata."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Impossibile separare le chiamate."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Impossibile trasferire la chiamata."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Audioconferenze non disponibili"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Impossibile rifiutare la chiamata."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Impossibile riprendere le chiamate."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Chiamata Internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chiamata di emergenza"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Attivazione segnale cellulare..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Area non coperta dal servizio. Nuovo tentativo..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Chiamata non inviata. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non è un numero di emergenza."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Chiamata non inviata. Componi un numero di emergenza."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Usa tastiera"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"In attesa"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Chiudi"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tastierino"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"No audio"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Aggiungi"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Unisci"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Scambia"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestisci chiamate"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gestisci conferenza"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videochiam."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importa"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importa tutti"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importazione contatti SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importa da contatti"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Apparecchi acustici"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Attiva la compatibilità con apparecchi acustici"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY disattivato"</item>
+    <item msgid="3971695875449640648">"TTY completa"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Toni DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Imposta la lunghezza dei toni DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normali"</item>
+    <item msgid="2883365539347850535">"Lunghi"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Messaggio di rete"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Attiva il telefono"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"È necessario effettuare una chiamata speciale per attivare il servizio telefonico. "\n\n"Dopo avere premuto \"Attiva\", ascolta le istruzioni fornite per attivare il telefono."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Saltare l\'attivazione?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Se salti l\'attivazione, non potrai effettuare chiamate o connetterti a reti di dati mobili (ma potrai connetterti a reti Wi-Fi). Finché non attiverai il telefono, ti verrà chiesto di attivarlo ogni volta che lo accendi."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ignora"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Attiva"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Il telefono è attivo."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema con l\'attivazione"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Segui le istruzioni vocali fino al segnale di attivazione completata."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Vivavoce"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Attendi la programmazione del telefono."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmazione non riuscita"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Il telefono è attivo. L\'avvio del servizio potrebbe richiedere fino a 15 minuti."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Il telefono non è stato attivato. "\n"Potrebbe essere necessario trovare una zona con copertura migliore (vicino a una finestra o all\'esterno). "\n\n"Riprova o contatta l\'assistenza clienti per conoscere altre soluzioni."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"TROPPI ERRORI SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Indietro"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Riprova"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Avanti"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Modalità di richiamata di emergenza attivata"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modalità di richiamata di emergenza"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Connessione dati disabilitata"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Nessuna connessione dati per <xliff:g id="COUNT">%s</xliff:g> minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Nessuna connessione dati per <xliff:g id="COUNT">%s</xliff:g> minuti"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT">%s</xliff:g> minuto. In questa modalità non è possibile utilizzare alcuna applicazione che faccia uso di una connessione dati. Uscire adesso?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT">%s</xliff:g> minuti. In questa modalità non è possibile utilizzare alcuna applicazione che faccia uso di una connessione dati. Uscire adesso?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"L\'azione selezionata non è disponibile in modalità di richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT">%s</xliff:g> minuto. Uscire adesso?"</item>
+    <item quantity="other" msgid="6115622137771382224">"L\'azione selezionata non è disponibile in modalità di richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT">%s</xliff:g> minuti. Uscire adesso?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"L\'azione selezionata non è disponibile in modalità di chiamata di emergenza."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Uscita dalla modalità di richiamata di emergenza"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sì"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Ignora"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Servizio"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configurazione"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Non impostato&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Altre impostazioni chiamate"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Chiamata tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto contatto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"Privato"</string>
+    <string name="selectContact" msgid="781975788478987237">"seleziona contatto"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Impostazioni chiamate Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Account di chiamata Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Account"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Ricevi chiamate in arrivo"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Riduce la durata della batteria"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Usa chiamata Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Usa chiamata Internet (solo Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Per tutte le chiamate quando è disponibile la rete dati"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Solo per chiamate Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Chiedi per ogni chiamata"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Per tutte le chiamate"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Effettua chiamata"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Usa account per chiamate Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Utilizza sempre per effettuare chiamate Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Puoi cambiare l\'account di chiamata Internet da utilizzare per impostazione predefinita dallo schermo Telefono &gt; Impostazioni &gt; Impostazioni chiamate Internet &gt; Account."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Chiamata con telefono cellulare"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Chiamata Internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nessun account per chiamate Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Non ci sono account di chiamata Internet su questo telefono. Aggiungerne uno adesso?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Aggiungi"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Aggiungi account"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Rimuovi account"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Account SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Salvataggio dell\'account..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Rimozione dell\'account..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Salva"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Ignora"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Chiudi il profilo"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Chiudi"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Account principale. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Controllo stato..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrazione..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Tentativo ancora in corso..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ricezione chiamate non attiva."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Registrazione account interrotta per mancanza di una connessione a Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Registrazione account interrotta per mancanza di una connessione Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registrazione account non riuscita."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Ricezione chiamate attiva."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registrazione account non riuscita: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); più tardi verrà eseguito un nuovo tentativo"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registrazione account non riuscita: password o nome utente errato."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Registrazione account non riuscita: verifica il nome del server."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Questo account è attualmente utilizzato dall\'applicazione <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Dettagli account SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Dettagli account SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nome utente"</string>
+    <string name="password_title" msgid="3323555249068171531">"Password"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nome visualizzato"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Indirizzo proxy in uscita"</string>
+    <string name="port_title" msgid="5952939408078626657">"Numero porta"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipo trasporto"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Invia keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Account principale"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilizzato per chiamate in uscita"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Impostazioni facoltative"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nome utente per autenticazione"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nome utente utilizzato per l\'autenticazione"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Non impostato&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Uguale al nome utente&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Facoltativo&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tocca per mostrare tutto"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Tocca per nascondere tutto"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> è obbligatorio e non può essere lasciato vuoto."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Il numero della porta deve essere compreso tra 1000 e 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nessuna connessione Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nessuna connessione Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Prima di effettuare una chiamata via Internet, controlla la tua connessione a Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Devi essere collegato a una rete Wi-Fi per effettuare chiamate via Internet (utilizza le impostazioni Wireless e reti)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Chiamate Internet non supportate"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatico"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Invia sempre"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Chiamate vocali non supportate"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Non posso parlare ora. Che succede?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ti richiamo subito."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ti chiamo dopo."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Non posso parlare ora. Mi chiami dopo?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Scrivi risposta personale..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Risposte rapide"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Modifica risposte rapide"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Risposta rapida"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Reimposta app predefinita"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Messaggio inviato a <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"uno"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"due"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tre"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"quattro"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinque"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sei"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sette"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"otto"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nove"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"asterisco"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"sterlina"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"componi"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Vivavoce attivo."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Chiamata disattivata."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Rispondi"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Invia SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Rifiuta"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrazione"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrazione"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Suono"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Suono predefinito (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Suoneria telefono"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrazione quando squilla"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Toni tastierino numerico"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Completam. autom. tastierino"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Suoneria e vibrazione"</string>
+</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
new file mode 100644
index 0000000..514a3b6
--- /dev/null
+++ b/res/values-iw/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"נתוני נייד"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"טלפון"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"חייגן חירום"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"טלפון"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"רשימת FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"לא ידוע"</string>
+    <string name="private_num" msgid="6713286113000232309">"מספר פרטי"</string>
+    <string name="payphone" msgid="1931775086311769314">"טלפון ציבורי"</string>
+    <string name="onHold" msgid="9035493194749959955">"בהמתנה"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"הקו לא פנוי"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"רשת לא פנויה"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"אין תגובה, החיבור הסתיים"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"אין אפשרות להשיג את השרת"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"אין אפשרות להשיג את המספר"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"שם משתמש או סיסמה שגויים"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"שיחה מחוץ לרשת"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"שגיאת שרת. נסה שוב מאוחר יותר."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"אין אות"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"חריגה ממגבלת ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"רדיו כבוי"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"אין SIM או שגיאת SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"מחוץ לאזור שירות"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"שיחות יוצאות מוגבלות על ידי FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"לא ניתן לבצע שיחות יוצאות כאשר חסימת שיחות מופעלת."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"כל השיחות מוגבלות על ידי בקרת גישה."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"שיחות חירום מוגבלות על ידי בקרת גישה."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"שיחות רגילות מוגבלות על ידי בקרת גישה."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"מספר לא חוקי"</string>
+    <string name="confCall" msgid="1904840547188336828">"שיחת ועידה"</string>
+    <string name="call_lost" msgid="317670617901479594">"השיחה אבדה."</string>
+    <string name="ok" msgid="3811371167865772377">"אישור"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"קוד MMI הופעל"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"קוד USSD פועל…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"קוד MMI מבוטל"</string>
+    <string name="cancel" msgid="5044513931633602634">"ביטול"</string>
+    <string name="enter_input" msgid="1810529547726803893">"הודעת USSD חייבת להיות באורך של <xliff:g id="MIN_LEN">%d</xliff:g> עד <xliff:g id="MAX_LEN">%d</xliff:g> תווים. נסה שוב."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"נהל שיחת ועידה"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"רמקול"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"אוזניה"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"אוזניות קוויות"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"לשלוח את הצלילים הבאים?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"שולח צלילים"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"שלח"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"כן"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"לא"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"החלף את התו הכללי ב"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"חסר מספר של דואר קולי"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"בכרטיס ה-SIM לא מאוחסן מספר של דואר קולי."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"הוסף מספר"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"בוטלה החסימה של כרטיס SIM. מבטל את חסימת הטלפון..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN לביטול נעילה של רשת SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"בטל נעילה"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"סגור"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"מבקש ביטול נעילת רשת..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"הבקשה לביטול נעילת הרשת נכשלה."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"ביטול נעילת הרשת התבצע בהצלחה."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"הגדרות שיחה של GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"הגדרות שיחה של CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"שמות של נקודות גישה"</string>
+    <string name="settings_label" msgid="3876743539816984008">"הגדרות רשת"</string>
+    <string name="voicemail" msgid="8693759337917898954">"דואר קולי"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"דואר קולי:"</string>
+    <string name="networks" msgid="8873030692174541976">"מפעילי רשת"</string>
+    <string name="call_settings" msgid="6112441768261754562">"הגדרות שיחה"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"הגדרות נוספות"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"הגדרות שיחה נוספות של GSM בלבד"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"הגדרות שיחה נוספות של CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"הגדרות שיחה נוספות של CDMA בלבד"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"הגדרות שירות רשת"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"זיהוי מתקשר"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"טוען הגדרות..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"המספר מוסתר בשיחות יוצאות"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"מספר המוצג בשיחות יוצאות"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"השתמש בהגדרות ברירת המחדל של המפעיל כדי להציג את המספר שלי בשיחות יוצאות"</string>
+    <string name="labelCW" msgid="6120513814915920200">"שיחה ממתינה"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"במהלך שיחה, שלח לי התראה על שיחות נכנסות"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"במהלך שיחה, שלח לי התראות על שיחות נכנסות"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"הגדרות של העברת שיחות"</string>
+    <string name="labelCF" msgid="2574386948026924737">"העברת שיחות"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"העבר תמיד"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"השתמש תמיד במספר זה"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"מעביר את כל השיחות"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"מעביר את כל השיחות אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"המספר לא זמין"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"מושבת"</string>
+    <string name="labelCFB" msgid="218938523102207587">"העבר כשלא פנוי"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"מספר כאשר לא פנוי"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"מושבת"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"הספק שלך אינו תומך בהשבתה של העברת שיחות כאשר הטלפון תפוס."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"העבר כשאין מענה"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"מספר לחיוג כשאין מענה"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"מושבת"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"הספק אינו תומך בהשבתה של העברת שיחות כאשר אין מענה בטלפון."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"העבר כשלא ניתן להשיג"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"המספר לחיוג כשלא ניתן להשיג"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"מושבת"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"הספק שלך לא תומך בהשבתה של העברת שיחות כאשר הטלפון כבוי."</string>
+    <string name="updating_title" msgid="6146755386174019046">"הגדרות שיחה"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"שגיאה בהגדרות שיחה"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"קורא הגדרות…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"מעדכן הגדרות..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"מאחזר הגדרות הקודמות…"</string>
+    <string name="response_error" msgid="6674110501330139405">"תגובה לא צפויה מהרשת."</string>
+    <string name="exception_error" msgid="7027667130619518211">"שגיאת רשת או שגיאה של כרטיס SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"הגדרת מספרי החיוג הקבועים של יישום הטלפון שלך מופעלת. כתוצאה מכך, חלק מהתכונות הקשורות לשיחות לא פועלות."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"הפעל את הרדיו לפני ההצגה של הגדרות אלה."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"אישור"</string>
+    <string name="enable" msgid="1059008390636773574">"הפעל"</string>
+    <string name="disable" msgid="7274240979164762320">"השבת"</string>
+    <string name="change_num" msgid="239476305819844391">"עדכן"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"רשת ברירת מחדל"</item>
+    <item msgid="7876195870037833661">"הסתר מספר"</item>
+    <item msgid="1108394741608734023">"הצג מספר"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"המספר של הדואר הקולי השתנה."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"לא ניתן לשנות את מספר הגישה לדואר הקולי."\n"אם הבעיה נמשכת, פנה לספק."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"לא ניתן לשנות את מספר ההעברה."\n"אם הבעיה נמשכת, פנה לספק."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"לא ניתן לאחזר ולשמור את הגדרות מספר ההעברה הנוכחי."\n"לעבור בכל זאת לספק החדש?"</string>
+    <string name="no_change" msgid="3186040086622435212">"לא בוצעו שינויים."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"בחר שירות של דואר קולי"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"הספק שלי"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"הגדרות רשת לנייד"</string>
+    <string name="label_available" msgid="1181658289009300430">"רשתות זמינות"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"מחפש..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"לא נמצאו רשתות."</string>
+    <string name="search_networks" msgid="1601136049300882441">"חפש רשתות"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"שגיאה במהלך חיפוש רשתות."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"נרשם ב-<xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"כרטיס ה-SIM לא מאפשר חיבור לרשת זו."</string>
+    <string name="connect_later" msgid="2308119155752343975">"לא ניתן להתחבר לרשת זו כעת. נסה שוב מאוחר יותר."</string>
+    <string name="registration_done" msgid="495135664535876612">"רשום ברשת."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"בחר ספק רשת"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"חפש את כל הרשתות הזמינות"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"בחר אוטומטית"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"בחר רשת מועדפת באופן אוטומטי"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"רישום אוטומטי..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"מצב רשת"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"שנה את מצב ההפעלה של הרשת"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"מצב רשת מועדפת"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"מצב רשת מועדפת: WCDMA מועדף"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"מצב רשת מועדפת: GSM בלבד"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"מצב רשת מועדפת: WCDMA בלבד"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"מצב רשת מועדפת: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"מצב רשת מועדפת: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"מצב רשת מועדפת: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"מצב רשת מועדפת: CDMA בלבד"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"מצב רשת מועדפת: EvDo בלבד"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"מצב רשת מועדף: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"מצב רשת מועדף: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"מצב רשת מועדף: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"מצב רשת מועדף: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"מצב רשת מועדף: גלובלי"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"מצב רשת מועדף: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"גלובלי"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo בלבד"</item>
+    <item msgid="1508557726283094448">"CDMA ללא EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo אוטומטי"</item>
+    <item msgid="5958053792390386668">"GSM/‏WCDMA אוטומטי"</item>
+    <item msgid="7913148405605373434">"WCDMA בלבד"</item>
+    <item msgid="1524224863879435516">"GSM בלבד"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA מועדף"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"נתונים מופעלים"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"אפשר גישת נתונים ברשת לנייד"</string>
+    <string name="roaming" msgid="8871412572928323707">"נדידת נתונים"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"התחבר לשירותי נתונים בעת נדידה"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"התחבר לשירותי נתונים בעת נדידה"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"איבדת את קישוריות הנתונים כיוון שעזבת את הרשת הביתית כשהנדידה כבויה."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"לאפשר נדידת נתונים? אתה עלול לצבור חיובי נדידה משמעותיים!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"אפשרויות GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"אפשרויות CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"שימוש בנתונים"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"נתונים שנעשה בהם שימוש בתקופה הנוכחית"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"תקופת השימוש בנתונים"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"מדיניות קצב נתונים"</string>
+    <string name="throttle_help" msgid="243651091785169900">"למידע נוסף"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) מתוך התקופה המרבית של <xliff:g id="USED_2">%3$s</xliff:g>"\n"התקופה הבאה מתחילה בעוד <xliff:g id="USED_3">%4$d</xliff:g> ימים (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??)  מתוך התקופה המרבית של<xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> חריגה מהמקסימום"\n"קצב הנתונים ירד ל-‏‎<xliff:g id="USED_1">%2$d</xliff:g> Kb לשנייה"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>?? מהמחזור חלפו"\n"התקופה הבאה מתחילה בעוד <xliff:g id="USED_1">%2$d</xliff:g> ימים (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"קצב הנתונים יורד ל-‏‎<xliff:g id="USED">%1$d</xliff:g> Kb לשנייה במקרה של חריגה ממגבלת השימוש בנתונים"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"למידע נוסף על מדיניות השימוש בנתונים ברשת הסלולרית של הספק שלך"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS בשידור סלולרי"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS בשידור סלולרי"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS בשידור סלולרי מופעל"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS בשידור סלולרי מושבת"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"הגדרות SMS בשידור סלולרי"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"שידור חירום"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"שידור חירום מופעל"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"שידור חירום מושבת"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"ניהולי"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"ניהולי מופעל"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"ניהולי מושבת"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"תחזוקה"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"תחזוקה מופעלת"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"תחזוקה מושבתת"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"חדשות כלליות"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"חדשות עסקיות ופיננסיות"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"חדשות הספורט"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"חדשות הבידור"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"מקומי"</string>
+    <string name="local_enable" msgid="6370463247609136359">"חדשות מקומיות מופעלות"</string>
+    <string name="local_disable" msgid="4405691986943795798">"חדשות מקומיות מושבתות"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"אזורי"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"חדשות אזוריות מופעלות"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"חדשות אזוריות מושבתות"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"מקומי"</string>
+    <string name="national_enable" msgid="1172443648912246952">"חדשות פנים מופעלות"</string>
+    <string name="national_disable" msgid="326018148178601166">"חדשות פנים מושבתות"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"בינלאומי"</string>
+    <string name="international_enable" msgid="5855356769925044927">"חדשות פנים מופעלות"</string>
+    <string name="international_disable" msgid="2850648591041088931">"חדשות בינלאומיות מושבתות"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"שפה"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"בחר את שפת החדשות"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"אנגלית"</item>
+    <item msgid="1151988412809572526">"צרפתית"</item>
+    <item msgid="577840534704312665">"ספרדית"</item>
+    <item msgid="8385712091143148180">"יפנית"</item>
+    <item msgid="1858401628368130638">"קוריאנית"</item>
+    <item msgid="1933212028684529632">"סינית"</item>
+    <item msgid="1908428006803639064">"עברית"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"שפות"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"מזג אוויר מקומי"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"מזג אוויר מקומי מופעל"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"מזג אוויר מקומי מושבת"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"דיווחי תנועה אזוריים"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"דיווחי תנועה אזוריים מופעלים"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"דיווחי תנועה אזוריים מושבתים"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"לוחות זמנים של טיסות בנמלי תעופה מקומיים"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"מופעלים לוחות הזמנים של טיסות בנמלי תעופה מקומיים"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"מושבתים לוחות הזמנים של טיסות בנמלי תעופה מקומיים"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"מסעדות"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"קטגוריית מסעדות מופעלת"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"קטגוריית מסעדות מושבתת"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"לינה"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"לינה מופעלת"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"לינה מושבתת"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"מדריך חנויות"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"מדריך חנויות מופעל"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"מדריך חנויות מושבת"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"מודעות"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"פרסומות מופעלות"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"מודעות מושבתות"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"מחירי מניות"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"מחירי מניות מופעלים"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"מחירי מניות מושבתים"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"מדור דרושים"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"מדור דרושים מופעל"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"מדור דרושים מושבת"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"רפואה, בריאות ובתי חולים"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"האפשרות \'רפואה, בריאות ובתי חולים\' מופעלת"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"האפשרות \'רפואה, בריאות ובתי חולים\' מושבתת"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"חדשות הטכנולוגיה"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"קטגוריית חדשות טכנולוגיה מופעלת"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"חדשות טכנולוגיה מושבתות"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"ריבוי קטגוריות"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"ריבוי קטגוריות מופעל"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"ריבוי קטגוריות מושבת"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"השתמש רק ברשתות ‎2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"חוסך בצריכת הסוללה"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"בחירת מערכת"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"שנה את מצב נדידת CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"בחירת מערכת"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"בית בלבד"</item>
+    <item msgid="1205664026446156265">"אוטומטי"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"הרשמה ל-CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"החלף בין RUIM/SIM ל-NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"הרשמה"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"הפעל מכשיר"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"הגדר שירות נתונים"</string>
+    <string name="fdn" msgid="7878832555095183202">"מספרי חיוג קבועים"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"רשימת FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"הפעלת FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"מספרי חיוג קבועים מופעלים"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"מספרי חיוג קבועים מושבתים"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"הפוך FDN לפעיל"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"השבת FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"שנה PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"השבת FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"הפוך FDN לפעיל"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"נהל מספרי חיוג קבועים"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"שנה את ה-PIN לקבלת גישת FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"נהל רשימת מספרי טלפון"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"פרטיות קול"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"הפוך מצב פרטיות משופרת לפעיל"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"מצב TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"הגדר מצב TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"ניסיון חוזר אוטומטי"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"אפשר מצב \'ניסיון חוזר\'."</string>
+    <string name="menu_add" msgid="1882023737425114762">"הוסף איש קשר"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"ערוך איש קשר"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"מחק איש קשר"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"הקלד PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"שם"</string>
+    <string name="number" msgid="7905950798349903858">"מספר"</string>
+    <string name="save" msgid="4094274636321939086">"שמור"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"הוסף מספר חיוג קבוע"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"מוסיף מספר חיוג קבוע..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"מספר חיוג קבוע נוסף."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"ערוך מספר חיוג קבוע"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"מעדכן מספר חיוג קבוע..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"מספר חיוג קבוע עודכן."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"מחק מספר חיוג קבוע"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"מוחק מספר חיוג קבוע..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"מספר חיוג קבוע נמחק."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"ה-FDN לא עודכן כיוון שהקלדת PIN שגוי."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"ה-FDN לא עודכן משום שהמספר חורג ממגבלת 20 הספרות."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN לא עודכן. קוד PIN2 היה שגוי או שמספר הטלפון נדחה."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"קורא מכרטיס SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"אין אנשי קשר בכרטיס ה-SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"בחר אנשי קשר ליבוא"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"כדי לייבא אנשי קשר מכרטיס ה-SIM, כבה תחילה את מצב טיסה."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"הפוך לפעיל/השבת PIN של SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"שנה PIN של SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN של SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN ישן"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN חדש"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"אשר PIN חדש"</string>
+    <string name="badPin" msgid="8955102849303984935">"ה-PIN הישן שהקלדת שגוי. נסה שוב."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"קודי ה-PIN שהקלדת אינם תואמים. נסה שוב."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"הקלד PIN שאורכו 4 עד 8 ספרות."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"השבת PIN של SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"הפוך PIN של SIM לפעיל"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"נא המתן..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"ה-PIN של ה-SIM מופעל."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"ה-PIN של ה-SIM הושבת."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"ה-PIN שהקלדת היה שגוי."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"ה-PIN של ה-SIM שונה בהצלחה."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"הסיסמה שגויה, ה-SIM נעול! דרוש PUK2‎."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 ישן"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 חדש"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"אשר PIN2 חדש"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"ה-PUK2 שהקלדת שגוי. נסה שוב."</string>
+    <string name="badPin2" msgid="1041576234483629991">"ה-PIN2 הישן שהקלדת שגוי. נסה שוב."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"קודי ה-PIN2 שהקלדת אינם תואמים. נסה שוב."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"הקלד PIN2 שאורכו 4 עד 8 ספרות."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"הקלד PUK2 שאורכו 8 ספרות."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"ה-PIN2 שונה בהצלחה."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"הקלד קוד PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"הסיסמה שגויה. שנה את ה-PIN2 ונסה שוב."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"הסיסמה שגויה, ה-SIM נעול. נדרש PUK2‎."</string>
+    <string name="doneButton" msgid="2859593360997984240">"סיום"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"שיחת ועידה <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"המספר של הדואר הקולי"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"מחייג"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"מנסה שוב"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"שיחת ועידה"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"שיחה נכנסת"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"השיחה הסתיימה"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"בהמתנה"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"מנתק"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"בשיחה"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"המספר שלי הוא <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"מחייג"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"שיחה שלא נענתה"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"שיחות שלא נענו"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> שיחות שלא נענו"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"שיחה שלא נענתה מאת <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"שיחה פעילה"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"בהמתנה"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"שיחה נכנסת"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"דואר קולי חדש"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"דואר קולי חדש (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"חייג ‎<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>‎"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"המספר של הדואר הקולי אינו ידוע"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"אין שירות"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"הרשת שנבחרה (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) לא זמינה"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"נתק"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"התקשר חזרה"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"שלח הודעה"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"כדי להתקשר, כבה תחילה את מצב טיסה."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"לא רשום ברשת."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"הרשת לנייד אינה זמינה."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"השיחה לא נשלחה, לא הוזן מספר חוקי."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"השיחה לא נשלחה."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"מתחיל רצף MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"שירות לא נתמך."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"אין אפשרות להחליף שיחות."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"אין אפשרות להפריד את השיחה."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"אין אפשרות להעביר את השיחה."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"אין אפשרות לנהל שיחות ועידה."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"אין אפשרות לדחות את השיחה."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"אין אפשרות להוציא שיחות."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"שיחת אינטרנט"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"שיחת חירום"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"מפעיל את הרדיו…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"מחוץ לאזור שירות, מנסה שוב..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"השיחה לא נשלחה. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> אינו מספר חירום!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"השיחה לא נשלחה. חייג מספר חירום!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"השתמש במקלדת כדי לחייג"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"השהה"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"סיום"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"לוח חיוג"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"השתק"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"הוסף שיחה"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"מזג שיחות"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"החלף"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"נהל שיחות"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"נהל ועידה"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"אודיו"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"שיחת וידאו"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"ייבא"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"ייבא הכל"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"מייבא אנשי קשר מ-SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"ייבא מאנשי קשר"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"מכשירי שמיעה"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"הפעל תאימות למכשיר שמיעה"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY כבוי"</item>
+    <item msgid="3971695875449640648">"TTY מלא"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"צלילי DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"הגדר את האורך של צלילי DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"רגיל"</item>
+    <item msgid="2883365539347850535">"ארוך"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"הודעת רשת"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"הפעל את הטלפון"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"יש לבצע שיחה מיוחדת כדי להפעיל את השירות לטלפון. "\n\n"לאחר הלחיצה על \'הפעל\', הקשב להוראות להפעלת הטלפון."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"לדלג על ההפעלה?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"אם תדלג על ההפעלה, לא תוכל להתקשר או להתחבר לרשתות נתונים לנייד (אך תוכל להתחבר לרשתות Wi-Fi). עד שתפעיל את הטלפון, תתבקש להפעיל אותו בכל פעם שתדליק אותו."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"דלג"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"הפעל"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"הטלפון מופעל."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"בעיה בהפעלה"</string>
+    <string name="ota_listen" msgid="162923839877584937">"בצע את ההוראות הנאמרות עד שתשמע שההפעלה הושלמה."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"רמקול"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"מתבצע תכנות של הטלפון. אנא המתן."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"התכנות נכשל"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"הטלפון שלך מופעל כעת. ייתכן שתמתין עד 15 דקות להפעלת השירות."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"הטלפון שלך לא הופעל. "\n"ייתכן שעליך למצוא מקום שהקליטה בו טובה יותר (ליד חלון או בחוץ). "\n\n"נסה שוב או התקשר לשירות לקוחות לקבלת אפשרויות נוספות."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"כשלים מרובים של SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"הקודם"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"נסה שוב"</string>
+    <string name="ota_next" msgid="3904945374358235910">"הבא"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"נכנס למצב חירום של התקשרות חזרה"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"מצב חירום של התקשרות חזרה"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"חיבור נתונים מושבת"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"אין חיבור נתונים במשך דקה <xliff:g id="COUNT">%s</xliff:g>"</item>
+    <item quantity="other" msgid="3122217344579273583">"אין חיבור נתונים במשך <xliff:g id="COUNT">%s</xliff:g> דקות"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"הטלפון יהיה במצב התקשרות חזרה בחירום למשך דקה <xliff:g id="COUNT">%s</xliff:g>. במצב זה לא ניתן להשתמש ביישומים המשתמשים בחיבור נתונים. האם אתה רוצה לצאת כעת?"</item>
+    <item quantity="other" msgid="8617116564023933114">"הטלפון יהיה במצב התקשרות חזרה בחירום למשך <xliff:g id="COUNT">%s</xliff:g> דקות. במצב זה לא ניתן להשתמש ביישומים המשתמשים בחיבור נתונים. האם אתה רוצה לצאת כעת?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"הפעולה שנבחרה אינה זמינה במצב התקשרות חזרה בחירום. הטלפון יהיה במצב זה במשך <xliff:g id="COUNT">%s</xliff:g> דקות. האם אתה רוצה לצאת כעת?"</item>
+    <item quantity="other" msgid="6115622137771382224">"הפעולה שנבחרה אינה זמינה במצב התקשרות חזרה בחירום. הטלפון יהיה במצב זה במשך <xliff:g id="COUNT">%s</xliff:g> דקות. אתה רוצה לצאת כעת?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"הפעולה שנבחרה אינה זמינה במהלך שיחת חירום."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"יציאה ממצב התקשרות חזרה בחירום"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"כן"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"לא"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"סגור"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"שירות"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"הגדרות"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;לא הוגדר&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"הגדרות שיחה אחרות"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"תמונה של איש קשר"</string>
+    <string name="goPrivate" msgid="865837794424530980">"עבור לשיחה פרטית"</string>
+    <string name="selectContact" msgid="781975788478987237">"בחר איש קשר"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"הגדרות שיחת אינטרנט"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"חשבונות (SIP) להתקשרות באינטרנט"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"חשבונות"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"קבל שיחות נכנסות"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"מקצר את חיי הסוללה"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"השתמש בהתקשרות באינטרנט"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"השתמש בהתקשרות באינטרנט (Wi-Fi בלבד)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"לכל השיחות כאשר רשת הנתונים זמינה"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"לשיחות אינטרנט בלבד"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"שאל עבור כל שיחה"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"לכל השיחות"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"בצע שיחה"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"השתמש בחשבון להתקשרות באינטרנט:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"השתמש תמיד כדי לבצע שיחות אינטרנט"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"ניתן לשנות את חשבון השיחות באינטרנט לשימוש כברירת מחדל דרך \'טלפון\' &gt; \'הגדרות\' &gt; \'הגדרות שיחת אינטרנט\' &gt; \'חשבונות\'."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"שיחה בטלפון סלולרי"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"שיחת אינטרנט"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"אין חשבון להתקשרות באינטרנט"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"אין חשבונות שיחת אינטרנט לטלפון זה. האם אתה רוצה להוסיף חשבון כעת?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"הוסף"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"הוסף חשבון"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"הסר חשבון"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"חשבונות SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"שומר את החשבון..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"מסיר את החשבון..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"שמור"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"מחק"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"סגור את הפרופיל"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"אישור"</string>
+    <string name="close_profile" msgid="6886968271423155284">"סגור"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"חשבון ראשי. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"בודק סטטוס..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"מבצע רישום..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"עדיין מנסה..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"לא מקבל שיחות."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"רישום החשבון הופסק כיוון שאין חיבור לאינטרנט."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"רישום החשבון הופסק כיוון שאין חיבור Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"רישום החשבון נכשל."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"מקבל שיחות."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"הרשמת החשבון נכשלה: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); יתבצע ניסיון חוזר מאוחר יותר"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"רישום החשבון נכשל: שם המשתמש או הסיסמה שגויים."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"רישום החשבון נכשל: בדוק את שם השרת."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"היישום <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> משתמש כרגע בחשבון זה."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"פרטי חשבון SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"פרטי חשבון SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"שרת"</string>
+    <string name="username_title" msgid="2479375923477682328">"שם משתמש"</string>
+    <string name="password_title" msgid="3323555249068171531">"סיסמה"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"שם תצוגה"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"כתובת שרת Proxy יוצא"</string>
+    <string name="port_title" msgid="5952939408078626657">"מספר יציאה"</string>
+    <string name="transport_title" msgid="8253139511847746640">"סוג העברה"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"שלח אות חיבור"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"הגדר כחשבון ראשי"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"משמש לשיחות יוצאות"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"הגדרות אופציונליות"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"שם משתמש לאימות"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"שם משתמש המשמש לאימות"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;לא הוגדר&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;זהה לשם משתמש&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;אופציונלי&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ גע כדי להציג את הכל"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ גע כדי להסתיר את הכל"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> הוא שדה חובה ולא ניתן להשאירו ריק."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"מספר היציאה צריך להיות בין 1000 ל-65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"אין חיבור לאינטרנט"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"אין חיבור Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"כדי לבצע שיחת אינטרנט, בדוק תחילה את החיבור לאינטרנט."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"עליך להיות מחובר לרשת Wi-Fi כדי לבצע שיחות באינטרנט (השתמש בהגדרות \'אלחוטי ורשתות\')."</string>
+    <string name="no_voip" msgid="8901474054537199865">"אין תמיכה בהתקשרות באינטרנט"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"אוטומטי"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"שלח תמיד"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"חיוג קולי אינו נתמך"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"אני לא יכול לדבר עכשיו. מה קורה?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"אני מיד חוזר אליך."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"אני אתקשר אליך יותר מאוחר."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"אני לא יכול לדבר עכשיו. תתקשר אלי מאוחר יותר?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"כתוב אחת משלך..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"תגובות מהירות"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"ערוך תגובות מהירות"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"תגובה מהירה"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"אפס את היישום המוגדר כברירת מחדל"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"הודעה נשלחה אל <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"אחת"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"שתיים"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"שלוש"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"ארבע"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"חמש"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"שש"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"שבע"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"שמונה"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"תשע"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"כוכבית"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"אפס"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"סולמית"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"חייג"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"רמקול מופעל."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"שיחה מושתקת."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"ענה"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"שלח SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"דחה"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"רטט"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"רטט"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"צליל"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"צליל ברירת מחדל (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"רינגטון של טלפון"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"רטט בעת צלצול"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"צלילי מגע של לוח חיוג"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"השלמה אוטומטית בלוח חיוג"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"רינגטון ורטט"</string>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
new file mode 100644
index 0000000..ba9ea9b
--- /dev/null
+++ b/res/values-ja/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"モバイルデータ"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"電話"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"緊急通報"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"電話"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"発信番号制限リスト"</string>
+    <string name="unknown" msgid="6878797917991465859">"通知不可能"</string>
+    <string name="private_num" msgid="6713286113000232309">"非通知"</string>
+    <string name="payphone" msgid="1931775086311769314">"公衆電話発信"</string>
+    <string name="onHold" msgid="9035493194749959955">"保留中"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"話し中"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"ネットワークがビジーです"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"応答なし（タイムアウト）"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"サーバーに接続できません"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"番号に接続できません"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"ユーザー名またはパスワードが正しくありません"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"ネットワーク外からの着信"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"サーバーエラー: しばらくしてからもう一度お試しください。"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"圏外"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACMの制限を超えています"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"無線通信をOFF"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"SIMがない、またはSIMエラー"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"圏外"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"発信番号制限により発信が制限されています。"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"通話制限中は発信できません。"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"発信制限が設定されています。"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"緊急通報の発信制限が設定されています。"</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"緊急通報以外は発信制限が設定されています。"</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"無効な番号"</string>
+    <string name="confCall" msgid="1904840547188336828">"グループ通話"</string>
+    <string name="call_lost" msgid="317670617901479594">"通話が切れました。"</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMIコードの開始"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSDコードを実行中..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMIコードはキャンセルされました"</string>
+    <string name="cancel" msgid="5044513931633602634">"キャンセル"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSDメッセージの文字数は<xliff:g id="MIN_LEN">%d</xliff:g>～<xliff:g id="MAX_LEN">%d</xliff:g>です。もう一度お試しください。"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"グループ通話オプション"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"スピーカー"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"携帯端末のイヤホン"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"有線ヘッドセット"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"次の番号を送信しますか？"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"番号送信"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"送信"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"はい"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"いいえ"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"ワイルド文字を置換:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"ボイスメール番号がありません"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIMカードにボイスメールの番号がありません。"</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"番号を追加"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIMカードロックを解除しました。端末のロックを解除しています..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIMネットワークのロック解除PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"ロック解除"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"無効"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"ネットワークのロック解除をリクエスト中..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"ネットワークロックを解除できませんでした。"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"ネットワークロックを解除しました。"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM通話設定"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA通話設定"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"アクセスポイント名"</string>
+    <string name="settings_label" msgid="3876743539816984008">"ネットワーク設定"</string>
+    <string name="voicemail" msgid="8693759337917898954">"ボイスメール"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"通信事業者"</string>
+    <string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"その他の設定"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"その他のGSM専用通話設定"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"その他のCDMA通話設定"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"その他のCDMA専用通話設定"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"ネットワークサービス設定"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"発信者番号"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"設定の読み込み中…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"発信時に番号を通知しない"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"発信時に番号を通知する"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"発信者番号表示に通信事業者のデフォルト値を使用する"</string>
+    <string name="labelCW" msgid="6120513814915920200">"通話中着信"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"通話中も着信を知らせる"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"通話中も着信を知らせる"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"着信転送設定"</string>
+    <string name="labelCF" msgid="2574386948026924737">"着信転送"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"常に転送"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"常にこの番号を使用"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"電話をすべて転送する"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"電話をすべて<xliff:g id="PHONENUMBER">{0}</xliff:g>￼に転送する"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"番号が利用できません"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"無効"</string>
+    <string name="labelCFB" msgid="218938523102207587">"通話中の着信時に転送"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"通話中着信の転送番号"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"<xliff:g id="PHONENUMBER">{0}</xliff:g>に転送する"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"無効"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"ご利用の携帯通信会社は通話中の転送の無効化をサポートしていません。"</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"不在着信時に転送"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"不在着信時の転送番号"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"<xliff:g id="PHONENUMBER">{0}</xliff:g>に転送する"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"無効"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"ご利用の携帯通信会社は不在着信時の転送の無効化をサポートしていません。"</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"着信不能時に転送"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"着信不能時の転送番号"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"<xliff:g id="PHONENUMBER">{0}</xliff:g>に転送する"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"無効"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ご利用の携帯通信会社は着信不能時の転送の無効化をサポートしていません。"</string>
+    <string name="updating_title" msgid="6146755386174019046">"通話設定"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"通話設定エラー"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"設定を読み取り中..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"設定を更新中..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"設定を元に戻しています..."</string>
+    <string name="response_error" msgid="6674110501330139405">"ネットワークから予期しない応答が返されました。"</string>
+    <string name="exception_error" msgid="7027667130619518211">"ネットワークまたはSIMカードのエラーです。"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"電話アプリの発信番号制限設定がONになっているため、通話関連の機能の一部を使用できません。"</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"これらの設定を表示するには無線通信をONにしてください。"</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"有効にする"</string>
+    <string name="disable" msgid="7274240979164762320">"無効にする"</string>
+    <string name="change_num" msgid="239476305819844391">"更新"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"ネットワーク既定"</item>
+    <item msgid="7876195870037833661">"番号を非通知"</item>
+    <item msgid="1108394741608734023">"番号を通知"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"ボイスメールの番号が変更されました。"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"ボイスメール番号を変更できませんでした。"\n"この問題が続くようであれば携帯通信会社にお問い合わせください。"</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"転送番号を変更できませんでした。"\n"この問題が続くようであれば携帯通信会社にお問い合わせください。"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"現在の転送先番号設定の取得と保存ができませんでした。"\n"別の携帯通信会社に切り替えますか？"</string>
+    <string name="no_change" msgid="3186040086622435212">"変更されていません。"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"ボイスメールサービスを選択"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"携帯通信会社"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"モバイルネットワーク設定"</string>
+    <string name="label_available" msgid="1181658289009300430">"利用可能なネットワーク"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"検索中..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"ネットワークが見つかりません。"</string>
+    <string name="search_networks" msgid="1601136049300882441">"ネットワークを検索"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"ネットワークの検索中にエラーが発生しました。"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>に登録中..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"お使いのSIMカードではこのネットワークに接続できません。"</string>
+    <string name="connect_later" msgid="2308119155752343975">"現在このネットワークに接続できません。しばらくしてからもう一度お試しください。"</string>
+    <string name="registration_done" msgid="495135664535876612">"ネットワークに登録されました。"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"通信事業者を選択する"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"利用可能なすべてのネットワークを検索する"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"自動的に選択"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"最適なネットワークを自動的に選択する"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"自動登録..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"ネットワークモード"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"ネットワーク動作モードの変更"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"優先ネットワークモード"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"優先ネットワークモード: WCDMA優先"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"優先ネットワークモード: GSMのみ"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"優先ネットワークモード: WCDMAのみ"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"優先ネットワークモード: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"優先ネットワークモード: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"優先ネットワークモード: CDMA/EV-DO"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"優先ネットワークモード: CDMAのみ"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"優先ネットワークモード: EvDoのみ"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"優先ネットワークモード: CDMA/EV-DO/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"優先ネットワークモード: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"優先ネットワークモード: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"優先ネットワークモード: CDMA+LTE/EV-DO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"優先ネットワークモード: グローバル"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"優先ネットワークモード: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"グローバル"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA+LTE/EV-DO"</item>
+    <item msgid="6389676313771670660">"CDMA/EV-DO/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EV-DOのみ"</item>
+    <item msgid="1508557726283094448">"CDMA（EV-DO非準拠）"</item>
+    <item msgid="4341433122263841224">"CDMA/EV-DO自動"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA自動"</item>
+    <item msgid="7913148405605373434">"WCDMAのみ"</item>
+    <item msgid="1524224863879435516">"GSMのみ"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMAを優先"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"データ通信を有効にする"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"モバイルネットワーク経由のデータアクセスを有効にする"</string>
+    <string name="roaming" msgid="8871412572928323707">"データローミング"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"ローミング時にデータサービスに接続する"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"ローミング時にデータサービスに接続する"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"データローミングをOFFにしてホームネットワークを離れたため、データ接続が切断されました。"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"データローミングを許可すると、ローミング料金が発生する場合があります。"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTSオプション"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMAオプション"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"データ使用"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"現期間で使用したデータ"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"データ使用期間"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"転送速度ポリシー"</string>
+    <string name="throttle_help" msgid="243651091785169900">"詳細"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g>（<xliff:g id="USED_1">%2$d</xliff:g>٪）/期間最大値<xliff:g id="USED_2">%3$s</xliff:g>"\n"次の期間は<xliff:g id="USED_3">%4$d</xliff:g>日で始まります（<xliff:g id="USED_4">%5$s</xliff:g>）"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g>（<xliff:g id="USED_1">%2$d</xliff:g>٪）/期間最大値<xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"最大値<xliff:g id="USED_0">%1$s</xliff:g>を超えました"\n"転送速度は<xliff:g id="USED_1">%2$d</xliff:g>Kb/秒に低下"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"サイクルの٪<xliff:g id="USED_0">%1$d</xliff:g>を経過"\n"次の期間は<xliff:g id="USED_1">%2$d</xliff:g>日で始まります（<xliff:g id="USED_2">%3$s</xliff:g>）"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"データ利用制限を超えると、転送速度が<xliff:g id="USED">%1$d</xliff:g>Kb/秒まで低下します"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"携帯通信会社のモバイルネットワークデータ利用ポリシーの詳細"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"緊急警報SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"緊急警報SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"緊急警報SMSは有効になっています"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"緊急警報SMSは無効になっています"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"緊急警報SMS設定"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"緊急ブロードキャスト"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"緊急ブロードキャストは有効になっています"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"緊急ブロードキャストは無効になっています"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"管理"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"管理は有効になっています"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"管理は無効になっています"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"メンテナンス"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"メンテナンスは有効になっています"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"メンテナンスは無効になっています"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"一般ニュース"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"ビジネス金融ニュース"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"スポーツニュース"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"エンターテインメント情報"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"ローカル"</string>
+    <string name="local_enable" msgid="6370463247609136359">"ローカルニュースは有効になっています"</string>
+    <string name="local_disable" msgid="4405691986943795798">"ローカルニュースは無効になっています"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"地域"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"地域ニュースは有効になっています"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"地域ニュースは無効になっています"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"国内"</string>
+    <string name="national_enable" msgid="1172443648912246952">"国内ニュースは有効になっています"</string>
+    <string name="national_disable" msgid="326018148178601166">"国内ニュースは無効になっています"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"国際"</string>
+    <string name="international_enable" msgid="5855356769925044927">"国際ニュースは有効になっています"</string>
+    <string name="international_disable" msgid="2850648591041088931">"国際ニュースは無効になっています"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"言語"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"ニュースの言語の選択"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"英語"</item>
+    <item msgid="1151988412809572526">"フランス語"</item>
+    <item msgid="577840534704312665">"スペイン語"</item>
+    <item msgid="8385712091143148180">"日本語"</item>
+    <item msgid="1858401628368130638">"韓国語"</item>
+    <item msgid="1933212028684529632">"中国語"</item>
+    <item msgid="1908428006803639064">"ヘブライ語"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"言語"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"各地の天気"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"各地の天気は有効になっています"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"各地の天気は無効になっています"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"各地の交通情報"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"各地の交通情報は有効になっています"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"各地の交通情報は無効になっています"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"各地のフライトスケジュール"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"各地のフライトスケジュールは有効になっています"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"各地のフライトスケジュールは無効になっています"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"レストラン"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"レストランは有効になっています"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"レストランは無効になっています"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"ロッジング"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"ロッジングは有効になっています"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"ロッジングは無効になっています"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"お店情報"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"お店情報は有効になっています"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"お店情報は無効になっています"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"広告"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"広告は有効になっています"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"広告は無効になっています"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"株価情報"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"株価情報は有効になっています"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"株価情報は無効になっています"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"求人情報"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"求人情報は有効になっています"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"求人情報は無効になっています"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"医療、健康、病院情報"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"医療、健康、病院情報は有効です"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"医療、健康、病院情報は無効です"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"テクノロジーニュース"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"テクノロジーニュースは有効になっています"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"テクノロジーニュースは無効になっています"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"複数カテゴリ"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"複数カテゴリは有効になっています"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"複数カテゴリは無効になっています"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"2Gネットワークのみ使用"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"電池を節約する"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"システムの選択"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMAローミングモードを変更する"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"システムの選択"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"ホームのみ"</item>
+    <item msgid="1205664026446156265">"自動"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA登録"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/SIMとNVを切り替える"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"登録方式"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"端末を有効にする"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"データサービスの設定"</string>
+    <string name="fdn" msgid="7878832555095183202">"発信番号制限"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"発信番号制限リスト"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"発信番号制限の有効化"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"発信番号制限はONになっています"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"発信番号制限はOFFになっています"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"発信番号制限をONにする"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"発信番号制限をOFFにする"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2を変更"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"発信番号制限をOFFにする"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"発信番号制限をONにする"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"電話番号の指定による発信制限"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"発信番号制限のPINを変更"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"電話番号リストを管理"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"音声のプライバシー"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"拡張プライバシーモードを有効にする"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTYモード"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTYモードの設定"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"自動再試行"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"自動再試行モードを有効にする"</string>
+    <string name="menu_add" msgid="1882023737425114762">"連絡先を追加"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"連絡先を編集"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"連絡先を削除"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"PIN2を入力"</string>
+    <string name="name" msgid="7329028332786872378">"名前"</string>
+    <string name="number" msgid="7905950798349903858">"電話番号"</string>
+    <string name="save" msgid="4094274636321939086">"保存"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"発信番号制限の追加"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"発信番号制限を追加しています..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"発信番号制限を追加しました。"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"発信番号制限の編集"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"発信番号制限を更新しています..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"発信番号制限を更新しました。"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"発信番号制限の削除"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"発信番号制限を削除しています..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"発信番号制限を削除しました。"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"発信番号制限は更新されませんでした。入力したPINは正しくありません。"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"発信番号制限は更新されませんでした。20桁を超える番号は指定できません。"</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"発信番号制限は更新されませんでした。PIN2が正しくないか、電話番号が拒否されました。"</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIMカードから読み取り中..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIMカードに連絡先がありません。"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"インポートする連絡先の選択"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"連絡先をSIMカードからインポートするには、まず機内モードをOFFにしてください。"</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM PINの有効/無効"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM PINの変更"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"古いPIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"新しいPIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"新しいPINを確認"</string>
+    <string name="badPin" msgid="8955102849303984935">"入力した古いPINは正しくありません。入力し直してください。"</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"入力したPINは一致しません。入力し直してください。"</string>
+    <string name="invalidPin" msgid="5981171102258684792">"4～8桁の数字のPINを入力してください。"</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM PINを無効にする"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PINを有効にする"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"お待ちください..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM PINは有効です。"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM PINは無効です"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"入力したPINは正しくありませんでした。"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM PINを変更しました。"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"パスワードが正しくありません。SIMがロックされています。PUK2を入力してください。"</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"古いPIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"新しいPIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"新しいPIN2の確認"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"入力したPUK2は正しくありません。入力し直してください。"</string>
+    <string name="badPin2" msgid="1041576234483629991">"入力した古いPIN2は正しくありません。入力し直してください。"</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"入力したPIN2は一致しません。入力し直してください。"</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"PIN2を4～8桁の数字で入力してください。"</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"8桁の数字のPUK2を入力してください。"</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2を変更しました。"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2コードを入力"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"パスワードが正しくありません。PIN2を変更してもう一度お試しください。"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"パスワードが正しくありません。SIMはロックされています。PUK2を入力してください。"</string>
+    <string name="doneButton" msgid="2859593360997984240">"完了"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"グループ通話 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"ボイスメールの番号"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"発信中"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"再試行中"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"グループ通話"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"着信"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"通話終了"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"保留中"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"通話終了"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"着信"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"この電話の番号: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"発信中"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"不在着信"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"不在着信"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"不在着信<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>件"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>さんからの不在着信"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"通話中"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"保留中"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"通話着信"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"新しいボイスメール"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"新しいボイスメール（<xliff:g id="COUNT">%d</xliff:g>）"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>にダイヤル"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ボイスメールの番号が不明です"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"通信サービスなし"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"選択したネットワーク（<xliff:g id="OPERATOR_NAME">%s</xliff:g>）が利用できません"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"通話終了"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"コールバック"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"メッセージ"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"機内モードをOFFにしてから発信してください。"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"ご加入の通信サービスがありません"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"モバイルネットワークが利用できません。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"発信できません。有効な番号が入力されていません。"</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"発信できません。"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMIシーケンスを開始中..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"対応していないサービスです。"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"通話を切り替えられません。"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"通話を分割できません。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"電話を転送できません。"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"グループ通話を利用できません。"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"着信を拒否できません。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"通話を解放できません。"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"インターネット通話"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急通報"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"無線通信をONにしています..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"圏外 - 再試行中..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"発信できません。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>は緊急通報番号ではありません。"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"発信できません。緊急通報番号におかけください。"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"キーボードで番号を入力してください"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"保留"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"終了"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"ダイヤルキー"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"ミュート"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"通話を追加"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"グループ通話"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"切り替え"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"通話の管理"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"グループ通話の管理"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"音声"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"ビデオハングアウト"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"インポート"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"すべてインポート"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIMの連絡先をインポート中"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"連絡先からインポート"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"補聴機能"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"補聴機能の互換をON"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY OFF"</item>
+    <item msgid="3971695875449640648">"TTYフル"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMFトーン"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMFトーンの長さを設定します"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"標準"</item>
+    <item msgid="2883365539347850535">"長め"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"ネットワークメッセージ"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"携帯電話を有効にする"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"通話サービスを有効にするには特別な通話が必要です。"\n\n"[有効にする]を押してから、流れてくる音声に従って電話を有効にしてください。"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"スキップして有効にしない"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"スキップして有効にしない場合、通話やモバイルデータネットワークの接続ができません（Wi-Fiネットワークには接続できます）。携帯を有効にするまでは、電源を入れるたびに有効にするかどうかを尋ねるメッセージが表示されます。"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"スキップ"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"有効にする"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"携帯端末が有効になりました。"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"有効にする際のエラー"</string>
+    <string name="ota_listen" msgid="162923839877584937">"完了したというメッセージが流れるまで音声ガイダンスに従ってください。"</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"スピーカー"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"携帯端末のプログラムを設定しています。お待ちください。"</string>
+    <string name="ota_failure" msgid="4311299546379674378">"プログラムの設定に失敗しました"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"携帯が有効に設定されました。サービスが開始されるまで最大で15分ほどかかることがあります。"</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"携帯端末を有効にできませんでした。"\n"電波状態が悪い可能性があります。"\n\n"電波の良い場所（窓のそばや屋外）に移動してもう一度お試しいただくか、カスタマーサービスに他の方法をお問い合わせください。"</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"超過SPCによる失敗"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"戻る"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"再試行"</string>
+    <string name="ota_next" msgid="3904945374358235910">"次へ"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"緊急通報待機モードになりました"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"緊急通報待機モード"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"データ接続が無効です"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g>分間データ接続できません"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g>分間データ接続できません"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"端末はあと<xliff:g id="COUNT">%s</xliff:g>分間、緊急通報待機モードです。このモードではデータ通信を行うアプリは使用できません。今すぐこのモードを終了しますか？"</item>
+    <item quantity="other" msgid="8617116564023933114">"端末はあと<xliff:g id="COUNT">%s</xliff:g>分間、緊急通報待機モードです。このモードではデータ通信を行うアプリケーションは使用できません。今すぐこのモードを終了しますか？"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"選択した操作は緊急通報待機モードでは実行できません。端末はあと<xliff:g id="COUNT">%s</xliff:g>分間このモードです。今すぐこのモードを終了しますか？"</item>
+    <item quantity="other" msgid="6115622137771382224">"選択した操作は緊急通報待機モードでは実行できません。端末はあと<xliff:g id="COUNT">%s</xliff:g>分間このモードです。今すぐこのモードを終了しますか？"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"選択した操作は緊急通報時には実行できません。"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"緊急通報待機モードを終了しています"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"はい"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"いいえ"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"解除"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"サービス"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"セットアップ"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;未設定&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"その他の通話設定"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>で発信中"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"連絡先の写真"</string>
+    <string name="goPrivate" msgid="865837794424530980">"個別通話に切り替え"</string>
+    <string name="selectContact" msgid="781975788478987237">"連絡先を選択"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"インターネット通話の設定"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"インターネット通話（SIP）アカウント"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"アカウント"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"着信を許可"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"電池使用量が増えます"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"インターネット通話を使用"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"インターネット通話を使用（Wi-Fiのみ）"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"データネットワーク接続時はすべての通話"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"インターネット通話のみ"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"通話のたびに確認"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"すべての通話"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"発信"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"インターネット通話アカウントを使用:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"インターネット通話発信時に常に使用する"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"[携帯端末]&gt;[設定]&gt;[インターネット通話の設定]&gt;[アカウント]画面で、デフォルトで使用するインターネット通話アカウントを変更できます。"</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"携帯通信網での通話"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"インターネット通話"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"インターネット通話アカウントなし"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"この携帯端末にはインターネット通話アカウントがありません。今すぐ追加しますか？"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"追加"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"アカウントを追加"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"アカウントを削除"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIPアカウント"</string>
+    <string name="saving_account" msgid="52903398217017954">"アカウントを保存しています..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"アカウントを削除しています..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"保存"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"破棄"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"プロフィールを閉じる"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"閉じる"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"メインアカウント（<xliff:g id="REGISTRATION_STATUS">%s</xliff:g>）"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"ステータスを確認中..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"登録しています..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"試行しています..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"通話着信OFF"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"インターネットに接続されていないため、アカウント登録処理が中断されました。"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Wi-Fi接続されていないため、アカウントの登録を中断しました。"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"アカウントを登録できませんでした。"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"通話着信ON"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"アカウントを登録できませんでした（<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>）。後ほど再試行します。"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"アカウントを登録できませんでした: ユーザー名かパスワードが正しくありません。"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"アカウントを登録できませんでした: サーバー名を確認してください。"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"このアカウントは現在「<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>」アプリで使用されています。"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIPアカウントの詳細"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIPアカウントの詳細"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"サーバー"</string>
+    <string name="username_title" msgid="2479375923477682328">"ユーザー名"</string>
+    <string name="password_title" msgid="3323555249068171531">"パスワード"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"表示名"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"発信プロキシアドレス"</string>
+    <string name="port_title" msgid="5952939408078626657">"ポート番号"</string>
+    <string name="transport_title" msgid="8253139511847746640">"伝送方式"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"キープアライブを送信する"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"メインアカウントに設定"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"発信に使用する"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"オプション設定"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"認証ユーザー名"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"認証に使用するユーザー名"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;未設定&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;ユーザー名と同じ&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;オプション&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ すべて表示"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ すべて非表示"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」は必須です。空欄にはできません。"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"ポート番号は1000～65534で指定してください。"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"インターネット接続なし"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Wi-Fi接続なし"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"インターネット通話を行うにはまずインターネットへの接続を確認してください。"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"インターネット通話にはWi-Fiネットワークへの接続が必要です（[ワイヤレスとネットワークの設定]を使用）。"</string>
+    <string name="no_voip" msgid="8901474054537199865">"インターネット通話には対応していません"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"自動"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"常に送信"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"音声通話はサポートされていません"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ただいま電話に出られません。ご用件をお知らせください。"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"ただいま電話に出られません。すぐに折り返しご連絡いたします。"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"ただいま電話に出られません。後ほど折り返しご連絡いたします。"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ただいま電話に出られません。後ほどご連絡をお願いいたします。"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"カスタム返信を作成..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"クイック返信"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"クイック返信の編集"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"クイック返信"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"デフォルトのアプリをリセット"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<xliff:g id="PHONE_NUMBER">%s</xliff:g>にメッセージを送信しました。"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"1"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"2"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"3"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"4"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"5"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"6"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"7"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"8"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"9"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"アスタリスク"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"0"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"ポンド"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"発信"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"バックスペース"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"スピーカーが有効です。"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"通話がミュートされています。"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"電話に出る"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMSを送信"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"着信拒否"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"バイブレーション"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"バイブレーション"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"通知音"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"デフォルトの通知音（<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>）"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"着信音"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"着信時のバイブレーション"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"ダイヤルパッドのタッチ操作音"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"ダイヤルのオートコンプリート"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"着信音とバイブレーション"</string>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
new file mode 100644
index 0000000..2a3ea98
--- /dev/null
+++ b/res/values-ko/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"모바일 데이터"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"휴대전화"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"긴급 통화"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"휴대전화"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN 목록"</string>
+    <string name="unknown" msgid="6878797917991465859">"알 수 없음"</string>
+    <string name="private_num" msgid="6713286113000232309">"비공개 번호"</string>
+    <string name="payphone" msgid="1931775086311769314">"공중전화"</string>
+    <string name="onHold" msgid="9035493194749959955">"대기 중"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"통화 중입니다."</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"네트워크 사용량이 많습니다."</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"응답 없음, 시간 초과"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"서버에 연결할 수 없음"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"연결할 수 없는 전화 번호"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"사용자 이름 또는 비밀번호가 잘못되었습니다"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"네트워크 외부에서 온 전화입니다."</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"서버 오류입니다. 잠시 후에 다시 시도해 보세요."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"신호 없음"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM 제한 초과"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"무선 연결 끊김"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"SIM이 없거나 SIM에 오류가 있습니다."</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"서비스 지역을 벗어났습니다."</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"발신전화가 FDN으로 제한됩니다."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"착발신 제한이 설정되어 있는 동안에는 전화를 걸 수 없습니다."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"모든 전화가 액세스 제어에 의해 제한되어 있습니다."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"긴급 전화가 액세스 제어에 의해 제한되어 있습니다."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"일반 전화가 액세스 제어에 의해 제한되어 있습니다."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"잘못된 번호입니다."</string>
+    <string name="confCall" msgid="1904840547188336828">"다자간 통화"</string>
+    <string name="call_lost" msgid="317670617901479594">"통화가 끊겼습니다."</string>
+    <string name="ok" msgid="3811371167865772377">"확인"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI 코드 시작됨"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD 코드 실행 중..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI 코드 취소됨"</string>
+    <string name="cancel" msgid="5044513931633602634">"취소"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD 메시지는 <xliff:g id="MIN_LEN">%d</xliff:g>~<xliff:g id="MAX_LEN">%d</xliff:g>자 사이여야 합니다. 다시 시도하세요."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"다자간 통화 관리"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"스피커"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"휴대전화"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"유선 헤드셋"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"블루투스"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"다음 톤을 보내시겠습니까?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"신호음 보내기"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"전송"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"예"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"아니요"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"와일드 문자를 다음으로 바꿈:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"음성사서함 번호 없음"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 카드에 저장된 음성사서함 번호가 없습니다."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"번호 추가"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM 카드의 잠금이 해제되었습니다. 휴대전화의 잠금해제 중..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM 네트워크 잠금해제 PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"잠금해제"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"취소"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"네트워크 잠금해제 요청 중..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"네트워크 잠금해제 요청이 실패했습니다."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"네트워크의 잠금을 해제했습니다."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM 통화 설정"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 통화 설정"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"APN"</string>
+    <string name="settings_label" msgid="3876743539816984008">"네트워크 설정"</string>
+    <string name="voicemail" msgid="8693759337917898954">"음성사서함"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"네트워크 운영자"</string>
+    <string name="call_settings" msgid="6112441768261754562">"통화 설정"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"추가 설정"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"GSM 전용 통화 설정 추가"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"추가 CDMA 통화 설정"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"CDMA 전용 통화 설정 추가"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"네트워크 서비스 설정"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"발신자 ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"설정 로드 중..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"발신자 표시 제한"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"발신전화의 번호 표시"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"기본 사업자 설정을 사용하여 발신전화에 내 번호 표시"</string>
+    <string name="labelCW" msgid="6120513814915920200">"통화중 대기"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"통화 중 수신전화 알림"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"통화 중 수신전화 알림"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"착신전환 설정"</string>
+    <string name="labelCF" msgid="2574386948026924737">"착신전환"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"항상 착신전환"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"항상 이 번호 사용"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"모든 통화 착신전환"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"모든 통화를 <xliff:g id="PHONENUMBER">{0}</xliff:g>(으)로 착신전환 중"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"없는 전화번호입니다."</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"사용 중지됨"</string>
+    <string name="labelCFB" msgid="218938523102207587">"통화 중일 경우"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"통화 중인 경우 착신전환할 번호"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"<xliff:g id="PHONENUMBER">{0}</xliff:g>(으)로 착신전환 중"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"사용 중지됨"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"휴대전화가 사용 중일 때 착신전환 사용 중지를 이동통신사에서 지원하지 않습니다."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"받지 않은 경우"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"전화를 받지 않은 경우 착신전환할 번호"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"<xliff:g id="PHONENUMBER">{0}</xliff:g>(으)로 착신전환 중"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"사용 중지됨"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"휴대전화가 응답하지 않을 때 착신전환 사용 중지를 이동통신사에서 지원하지 않습니다."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"받을 수 없는 경우"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"전화를 받을 수 없는 경우 착신전환할 번호"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"<xliff:g id="PHONENUMBER">{0}</xliff:g>(으)로 착신전환 중"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"사용 중지됨"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"이동통신사에서 전화를 받을 수 없을 때 착신전환 사용 중지를 지원하지 않습니다."</string>
+    <string name="updating_title" msgid="6146755386174019046">"통화 설정"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"통화 설정 오류"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"설정을 읽는 중..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"설정 업데이트 중..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"원래 설정으로 되돌리는 중..."</string>
+    <string name="response_error" msgid="6674110501330139405">"네트워크에서 예기치 않은 응답이 전송되었습니다."</string>
+    <string name="exception_error" msgid="7027667130619518211">"네트워크 또는 SIM 카드 오류입니다."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"휴대전화 앱의 발신 제한 번호 설정을 사용하기 때문에 일부 통화 관련 기능이 작동되지 않습니다."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"이러한 설정을 보려면 무선을 사용해야 합니다."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"확인"</string>
+    <string name="enable" msgid="1059008390636773574">"사용"</string>
+    <string name="disable" msgid="7274240979164762320">"사용 중지"</string>
+    <string name="change_num" msgid="239476305819844391">"업데이트"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"네트워크 기본값"</item>
+    <item msgid="7876195870037833661">"발신자 표시 제한"</item>
+    <item msgid="1108394741608734023">"발신자 표시"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"음성사서함 번호가 변경되었습니다."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"음성사서함 번호를 변경하지 못했습니다."\n"문제가 계속되면 이동통신사에 문의하세요."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"착신전환할 번호를 변경하지 못했습니다."\n"문제가 계속되면 이동통신사에 문의하세요."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"현재 착신전환 번호 설정을 검색하고 저장하지 못했습니다."\n"그래도 새로운 통신사로 전환하시겠습니까?"</string>
+    <string name="no_change" msgid="3186040086622435212">"변경사항이 없습니다."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"음성사서함 서비스 선택"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"내 이동통신사"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"모바일 네트워크 설정"</string>
+    <string name="label_available" msgid="1181658289009300430">"사용 가능한 네트워크"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"검색 중..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"네트워크를 찾을 수 없습니다."</string>
+    <string name="search_networks" msgid="1601136049300882441">"네트워크 검색"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"네트워크를 검색하는 동안 오류가 발생했습니다."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>에 등록 중..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM 카드에서 이 네트워크에 연결할 수 없습니다."</string>
+    <string name="connect_later" msgid="2308119155752343975">"현재 네트워크에 연결할 수 없습니다. 나중에 다시 시도해 주세요."</string>
+    <string name="registration_done" msgid="495135664535876612">"네트워크에 등록되었습니다."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"네트워크 운영자 선택"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"사용 가능한 모든 네트워크 검색"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"자동으로 선택"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"기본 설정 네트워크를 자동으로 선택"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"자동 등록..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"네트워크 모드"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"네트워크 작동 모드 변경"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"기본 설정된 네트워크 모드"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"기본 네트워크 모드: WCDMA 선호"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"기본 네트워크 모드: GSM 전용"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"기본 네트워크 모드: WCDMA 전용"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"기본 네트워크 모드: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"기본 설정된 네트워크 모드: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"기본 설정된 네트워크 모드: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"기본 네트워크 모드: CDMA 전용"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"기본 네트워크 모드: EvDo 전용"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"기본 네트워크 모드: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"기본 네트워크 모드: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"기본 네트워크 모드: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"기본 네트워크 모드: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"기본 네트워크 모드: 글로벌"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"기본 네트워크 모드: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"글로벌"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA+LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo 전용"</item>
+    <item msgid="1508557726283094448">"CDMA(EvDo 없음)"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo 자동"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA 자동"</item>
+    <item msgid="7913148405605373434">"WCDMA 전용"</item>
+    <item msgid="1524224863879435516">"GSM 전용"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA로 기본 설정"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"데이터 사용"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"모바일 네트워크에서 데이터 액세스 사용"</string>
+    <string name="roaming" msgid="8871412572928323707">"데이터 로밍"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"로밍 시 데이터 서비스에 연결"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"로밍 시 데이터 서비스에 연결"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"데이터 로밍을 사용 중지한 상태에서 홈 네트워크를 벗어났으므로 데이터 연결이 끊어졌습니다."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"데이터 로밍을 허용하시겠습니까? 높은 로밍 요금이 부과될 수 있습니다."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 옵션"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA 옵션"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"데이터 사용"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"현재 데이터 사용량"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"데이터 사용 기간"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"데이터 속도 정책"</string>
+    <string name="throttle_help" msgid="243651091785169900">"자세히 알아보기"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"최대 기간 <xliff:g id="USED_2">%3$s</xliff:g> 중 <xliff:g id="USED_0">%1$s</xliff:g>(<xliff:g id="USED_1">%2$d</xliff:g>٪)"\n"다음 기간은 <xliff:g id="USED_3">%4$d</xliff:g>일 후에 시작(<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"최대 기간 <xliff:g id="USED_2">%3$s</xliff:g> 중 <xliff:g id="USED_0">%1$s</xliff:g>(<xliff:g id="USED_1">%2$d</xliff:g>٪)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"최대치 <xliff:g id="USED_0">%1$s</xliff:g> 초과"\n"데이터 속도가 <xliff:g id="USED_1">%2$d</xliff:g>Kb/s로 감소"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"주기의 <xliff:g id="USED_0">%1$d</xliff:g>٪ 경과"\n"다음 기간은 <xliff:g id="USED_1">%2$d</xliff:g>일 후에 시작(<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"데이터 사용량 제한을 초과하면 데이터 속도는 <xliff:g id="USED">%1$d</xliff:g>Kb/s로 줄어듭니다."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"이동통신사의 모바일 네트워크 데이터 사용 정책에 대한 자세한 정보"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"셀 브로드캐스트 SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"셀 브로드캐스트 SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"셀 브로드캐스트 SMS 사용"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"셀 브로드캐스트 SMS 사용 중지"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"셀 브로드캐스트 SMS 설정"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"긴급 방송"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"긴급 방송 사용"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"긴급 방송 사용 중지"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"관리 기능"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"관리 기능 사용"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"관리 기능 사용 중지"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"유지보수"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"유지보수 사용"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"유지보수 사용 중지"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"일반 뉴스"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"경제 뉴스"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"스포츠 뉴스"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"연예 뉴스"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"지역"</string>
+    <string name="local_enable" msgid="6370463247609136359">"지역 뉴스 사용"</string>
+    <string name="local_disable" msgid="4405691986943795798">"지역 뉴스 사용 중지"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"지역 정보"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"지역 뉴스 사용"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"지역 뉴스 사용 중지"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"국내 정보"</string>
+    <string name="national_enable" msgid="1172443648912246952">"국내 뉴스 사용"</string>
+    <string name="national_disable" msgid="326018148178601166">"국내 뉴스 사용 중지"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"국제 뉴스"</string>
+    <string name="international_enable" msgid="5855356769925044927">"국제 뉴스 사용"</string>
+    <string name="international_disable" msgid="2850648591041088931">"국제 뉴스 사용 중지"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"언어"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"새 언어 선택"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"영어"</item>
+    <item msgid="1151988412809572526">"프랑스어"</item>
+    <item msgid="577840534704312665">"스페인어"</item>
+    <item msgid="8385712091143148180">"일본어"</item>
+    <item msgid="1858401628368130638">"한국어"</item>
+    <item msgid="1933212028684529632">"중국어"</item>
+    <item msgid="1908428006803639064">"히브리어"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"언어"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"지역 날씨 정보"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"지역 날씨 정보 사용"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"지역 날씨 정보 사용 중지"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"지역 교통정보"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"지역 교통정보 사용"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"지역 교통정보 사용 중지"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"현지 항공기 일정"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"현지 항공기 일정 사용"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"현지 항공기 일정 사용 중지"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"식당 정보"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"식당 정보 사용"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"식당 정보 사용 중지"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"숙박 정보"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"숙박 정보 사용"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"숙박 정보 사용 중지"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"소매점 디렉토리"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"소매점 디렉토리 사용"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"소매점 디렉토리 사용 중지"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"광고"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"광고 사용"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"광고 사용 중지"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"주가지수"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"주가지수 사용"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"주가지수 사용 중지"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"채용 정보"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"채용 정보 사용"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"채용 정보 사용 중지"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"의료, 건강 및 병원 정보"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"의료, 건강 및 병원 정보 사용"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"의료, 건강 및 병원 정보 사용 중지"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"기술 뉴스"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"기술 뉴스 사용"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"기술 뉴스 사용 중지"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"다중 카테고리"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"다중 카테고리 사용"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"다중 카테고리 사용 중지"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"2G 네트워크만 사용"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"배터리 절약"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"시스템 선택"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMA 로밍 모드 변경"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"시스템 선택"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"집 전용"</item>
+    <item msgid="1205664026446156265">"자동"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA 가입"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/SIM과 NV 간 변경"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"가입"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"기기 활성화"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"데이터 서비스 설정"</string>
+    <string name="fdn" msgid="7878832555095183202">"발신 허용 번호"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN 목록"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN 활성화"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"발신 허용 번호 사용"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"발신 허용 번호 사용 중지됨"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"FDN 사용"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"FDN 사용 중지"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2 변경"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN 사용 중지"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN 사용"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"발신 허용 번호 관리"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"FDN 액세스를 위해 PIN 변경"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"전화번호 목록 관리"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"음성 개인정보 보호"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"향상된 개인정보 보호 모드 사용"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY 모드"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY 모드 설정"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"자동으로 다시 시도"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"자동 다시 시도 모드 사용"</string>
+    <string name="menu_add" msgid="1882023737425114762">"연락처 추가"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"연락처 수정"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"연락처 삭제"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"PIN2 유형"</string>
+    <string name="name" msgid="7329028332786872378">"이름"</string>
+    <string name="number" msgid="7905950798349903858">"번호"</string>
+    <string name="save" msgid="4094274636321939086">"저장"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"발신 허용 번호 추가"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"발신 허용 번호를 추가하는 중..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"발신 허용 번호가 추가되었습니다."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"발신 허용 번호 편집"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"발신 허용 번호 업데이트 중..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"발신 허용 번호가 업데이트되었습니다."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"발신 허용 번호 삭제"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"발신 허용 번호를 삭제하는 중..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"발신 허용 번호가 삭제되었습니다."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"잘못된 PIN을 입력하여 FDN 업데이트 안됨"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"숫자가 20자리를 초과할 수 없으므로 FDN을 업데이트하지 못했습니다."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN이 업데이트되지 않았습니다. PIN2가 잘못되었거나 전화번호가 거부되었습니다."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIM 카드에서 읽는 중..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM 카드에 주소록이 없습니다."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"가져올 주소록 선택"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"SIM 카드에서 주소록을 가져오려면 먼저 비행기 모드를 사용 중지하세요."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM PIN 사용/사용 중지"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM PIN 변경"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"이전 PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"새 PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"새 PIN 확인"</string>
+    <string name="badPin" msgid="8955102849303984935">"입력한 이전 PIN이 올바르지 않습니다. 다시 시도해 주세요."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"입력한 PIN이 일치하지 않습니다. 다시 시도해 주세요."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"4~ 8자리 숫자로 된 PIN을 입력하세요."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM PIN 사용 중지"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PIN 사용"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"잠시 기다려 주세요..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM PIN 사용"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM PIN 사용 안함"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"입력한 PIN이 올바르지 않습니다."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM PIN이 변경되었습니다."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"비밀번호 틀림. SIM 잠겨 있음! PUK2 요청됨."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"이전 PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"새 PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"새 PIN2 확인"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"입력한 PUK2가 올바르지 않습니다. 다시 시도해 주세요."</string>
+    <string name="badPin2" msgid="1041576234483629991">"입력한 이전 PIN2가 올바르지 않습니다. 다시 시도해 주세요."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"입력한 PIN2가 일치하지 않습니다. 다시 시도해 주세요."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"4-8자리 수로 구성된 PIN2를 입력합니다."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"8자리 숫자로 된 PUK2를 입력하세요."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2가 변경되었습니다."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2 코드 입력"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"비밀번호가 잘못되었습니다. PIN2를 변경한 후 다시 시도하세요."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"비밀번호 틀림. SIM 잠겨 있음. PUK2 요청한 상태임."</string>
+    <string name="doneButton" msgid="2859593360997984240">"완료"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"다자간 통화 <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"음성사서함 번호"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"전화 거는 중"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"다시 시도 중"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"다자간 통화"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"수신전화"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"통화 종료됨"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"대기 중"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"전화 끊는 중"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"통화 상태"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"내 전화번호는 <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>입니다."</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"전화 거는 중"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"부재중 전화"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"부재중 통화"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"부재중 통화 <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>통"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>의 부재중 전화"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"현재 통화"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"대기 중"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"수신 전화"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"새 음성사서함"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"새 음성사서함(<xliff:g id="COUNT">%d</xliff:g>개)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>(으)로 전화걸기"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"알 수 없는 음성사서함 번호"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"서비스 불가"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"선택한 네트워크(<xliff:g id="OPERATOR_NAME">%s</xliff:g>)를 사용할 수 없음"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"전화 끊기"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"통화하기"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"문자 메시지"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"전화를 걸려면 먼저 비행기 모드를 해제하세요."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"네트워크에서 등록되지 않았습니다."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"모바일 네트워크를 사용할 수 없습니다."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"잘못된 번호를 입력했으므로 전화를 걸지 못했습니다."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"전화를 걸지 못했습니다."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI 시퀀스 시작 중..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"지원되지 않는 서비스입니다."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"통화를 전환할 수 없습니다."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"통화를 분리할 수 없습니다."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"통화를 전달할 수 없습니다."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"다자간 통화를 할 수 없습니다."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"통화를 거부할 수 없습니다."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"통화를 끊을 수 없습니다."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"인터넷 전화"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"긴급 전화"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"무선을 켜는 중..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"서비스 지역을 벗어났습니다. 다시 시도하는 중..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>은(는) 긴급 번호가 아니므로 전화를 걸지 못했습니다."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"전화를 걸지 못했습니다. 비상 전화번호로 전화를 걸어 보세요."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"키보드를 사용하여 전화걸기"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"대기"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"종료"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"다이얼패드"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"음소거"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"통화 추가"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"통화 병합"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"전환"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"통화 관리"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"다자간 통화 관리"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"오디오"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"화상 통화"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"가져오기"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"모두 가져오기"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM 주소록 가져오는 중"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"주소록에서 가져오기"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"보청기"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"보청기 호환 사용"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY 사용 안함"</item>
+    <item msgid="3971695875449640648">"TTY 전체"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF 신호음"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF 신호음 길이 설정"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"보통"</item>
+    <item msgid="2883365539347850535">"길게"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"네트워크 메시지"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"전화 활성화"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"전화 서비스를 활성화하려면 특수 통화를 해야 합니다. "\n\n"\'활성화\'를 누른 다음 지시사항을 듣고 전화를 활성화하세요."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"활성화를 건너뛰시겠습니까?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"활성화를 건너뛰면 Wi-Fi 네트워크에는 연결할 수 있지만 전화를 걸거나 모바일 데이터 네트워크에 연결할 수 없습니다. 휴대전화를 활성화할 때까지 휴대전화를 켤 때마다 활성화하라는 메시지가 표시됩니다."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"건너뛰기"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"활성화"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"전화가 활성화되었습니다."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"활성화 문제"</string>
+    <string name="ota_listen" msgid="162923839877584937">"활성화가 완료되었다는 메시지를 들을 때까지 음성 안내를 따르세요."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"스피커"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"전화가 프로그래밍되는 동안 기다려 주세요."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"프로그래밍 실패"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"전화가 이제 활성화되었습니다. 서비스가 시작하는 데 최대 15분이 걸릴 수 있습니다."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"전화가 활성화되지 않았습니다. "\n"신호가 잘 잡히는 지역(창 근처나 바깥)을 찾아야 할 수도 있습니다. "\n\n"다시 시도하거나 고객지원팀에 전화해서 다른 옵션에 대해 문의하세요."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"너무 많은 SPC 실패"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"뒤로"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"다시 시도"</string>
+    <string name="ota_next" msgid="3904945374358235910">"다음"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"긴급 콜백 모드 시작"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"긴급 콜백 모드"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"데이터 연결이 끊김"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g>분 동안 데이터 연결 없음"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g>분 동안 데이터 연결 없음"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"휴대전화가 <xliff:g id="COUNT">%s</xliff:g>분간 긴급 콜백 모드를 유지합니다. 그 동안 데이터 연결이 필요한 앱을 사용할 수 없습니다. 종료하시겠습니까?"</item>
+    <item quantity="other" msgid="8617116564023933114">"휴대전화가 <xliff:g id="COUNT">%s</xliff:g>분간 긴급 콜백 모드를 유지합니다. 그 동안 데이터 연결이 필요한 애플리케이션을 사용할 수 없습니다. 종료하시겠습니까?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"긴급 콜백 모드에서는 선택한 작업을 사용할 수 없습니다. 휴대전화가 <xliff:g id="COUNT">%s</xliff:g>분간 현재 모드를 유지합니다. 종료하시겠습니까?"</item>
+    <item quantity="other" msgid="6115622137771382224">"긴급 콜백 모드에서는 선택한 작업을 사용할 수 없습니다. 휴대전화가 <xliff:g id="COUNT">%s</xliff:g>분간 현재 모드를 유지합니다. 종료하시겠습니까?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"긴급 통화 중에는 선택한 작업을 사용할 수 없습니다."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"긴급 콜백 모드 종료하는 중"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"예"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"아니요"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"해제"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"서비스"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"설정"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;설정 안됨&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"기타 통화 설정"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"연락처 사진"</string>
+    <string name="goPrivate" msgid="865837794424530980">"비공개로 실행"</string>
+    <string name="selectContact" msgid="781975788478987237">"연락처 선택"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"인터넷 통화 설정"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"인터넷 전화(SIP) 계정"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"계정"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"수신전화 받기"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"배터리가 빨리 방전될 수 있습니다."</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"인터넷 전화 사용"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"인터넷 통화 사용(Wi-Fi 전용)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"데이터 네트워크 사용 가능 시 모든 통화에 사용"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"인터넷 통화 전용"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"통화할 때마다 묻기"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"모든 통화에 사용"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"발신 전화 유형"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"인터넷 전화 계정 사용:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"인터넷 전화를 걸 때 항상 사용"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"\'휴대전화 &gt; 설정 &gt; 인터넷 통화 설정 &gt; 계정 화면\'에서 기본으로 사용할 인터넷 통화 계정을 변경할 수 있습니다."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"휴대전화 통화"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"인터넷 전화"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"인터넷 전화 계정 없음"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"휴대전화에 인터넷 통화 계정이 없습니다. 지금 추가하시겠습니까?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"추가"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"계정 추가"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"계정 삭제"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP 계정"</string>
+    <string name="saving_account" msgid="52903398217017954">"계정 저장 중..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"계정 삭제 중..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"저장"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"취소"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"프로필 닫기"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"확인"</string>
+    <string name="close_profile" msgid="6886968271423155284">"닫기"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"기본 계정. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"상태 확인 중..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"등록 중..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"계속 시도 중..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"전화를 수신하지 않습니다."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"인터넷에 연결되어 있지 않기 때문에 계정 등록이 중지되었습니다."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Wi-Fi에 연결되어 있지 않기 때문에 계정 등록이 중지되었습니다."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"계정을 등록하지 못했습니다."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"전화를 수신합니다."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"계정을 등록하지 못했습니다(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). 나중에 다시 시도합니다."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"계정을 등록하지 못했습니다. 사용자 이름 또는 비밀번호가 잘못되었습니다."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"계정을 등록하지 못했습니다. 서버 이름을 확인하세요."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g> 앱에서 현재 이 계정을 사용 중입니다."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP 계정 세부정보"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP 계정 세부정보"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"서버"</string>
+    <string name="username_title" msgid="2479375923477682328">"사용자 이름"</string>
+    <string name="password_title" msgid="3323555249068171531">"비밀번호"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"표시 이름"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"발신 프록시 주소"</string>
+    <string name="port_title" msgid="5952939408078626657">"포트 번호"</string>
+    <string name="transport_title" msgid="8253139511847746640">"전송 유형"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"연결 유지 메시지 보내기"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"기본 계정으로 설정"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"발신 전화에 사용됨"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"설정(선택사항)"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"인증 사용자 이름"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"인증에 사용된 사용자 이름"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;설정 안 됨&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;사용자 이름과 동일&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;선택사항&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ 모두 표시하려면 터치"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ 모두 숨기려면 터치"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>은(는) 필수이므로 비워 둘 수 없습니다."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"포트 번호는 1000에서 65534 이내여야 합니다."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"인터넷에 연결되지 않음"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Wi-Fi 연결 없음"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"인터넷 전화를 걸려면 먼저 인터넷 연결을 확인하세요."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"인터넷 전화를 사용하려면 Wi-Fi 네트워크에 연결되어 있어야 합니다(\'무선 및 네트워크\' 설정 사용)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"인터넷 전화가 지원되지 않습니다."</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"자동"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"항상 보내기"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"음성통화 지원되지 않음"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"통화 불가. 용무를 남겨주세요."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"바로 다시 전화드리겠습니다."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"나중에 전화드리겠습니다."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"통화 불가. 나중에 전화주세요."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"나만의 응답 작성…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"빠른 응답"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"빠른 응답 수정"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"빠른 응답"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"기본 앱 재설정"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<xliff:g id="PHONE_NUMBER">%s</xliff:g>(으)로 메시지를 보냈습니다."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"1"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"2"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"3"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"4"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"5"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"6"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"7"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"8"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"9"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"별"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"0"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"파운드"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"전화걸기"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"백스페이스"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"스피커폰이 사용 설정되었습니다."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"통화가 음소거되었습니다."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"답변"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS 보내기"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"거부"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"진동"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"진동"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"알림음"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"기본 알림음(<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"전화 벨소리"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"전화 수신 시 진동"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"다이얼패드 터치음"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"다이얼패드 자동완성"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"벨소리 및 진동"</string>
+</resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
new file mode 100644
index 0000000..9eb531d
--- /dev/null
+++ b/res/values-land/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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>
+    <dimen name="emergency_dialer_digits_height">66dip</dimen>
+
+    <!-- Height of the "call banner" overlay on bottom of the call_card -->
+    <dimen name="call_banner_height">@dimen/in_call_end_button_height</dimen>
+</resources>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
new file mode 100644
index 0000000..0626a15
--- /dev/null
+++ b/res/values-land/styles.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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>
+    <style name="PrimaryCallInfoPrimaryCallBanner">
+        <item name="android:layout_alignParentBottom">true</item>
+    </style>
+    <style name="PrimaryCallInfoSecondaryInfoContainer">
+        <item name="android:layout_above">@id/primary_call_banner</item>
+    </style>
+
+    <style name="SecondaryCallInfoSecondaryCallName">
+        <item name="android:layout_gravity">bottom|left</item>
+    </style>
+    <style name="SecondaryCallInfoSecondaryCallStatus">
+        <item name="android:layout_gravity">bottom|right</item>
+    </style>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
new file mode 100644
index 0000000..8ef071a
--- /dev/null
+++ b/res/values-lt/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Duomenys mobiliesiems"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefonas"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Pagalbos numerio rinkiklis"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefonas"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN sąrašas"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nežinomas"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privatus numeris"</string>
+    <string name="payphone" msgid="1931775086311769314">"Mokamas telefonas"</string>
+    <string name="onHold" msgid="9035493194749959955">"Sulaikyta"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linija užimta"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Tinklas užimtas"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nėra atsako, baigėsi laikas"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Serveris nepasiekiamas"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numeris nepasiekiamas"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Neteisingas naudotojo vardas arba slaptažodis"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Skambinta ne iš šio tinklo"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Serverio klaida. Vėliau bandykite dar kartą."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Nėra signalo"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Pasiekta ACM riba"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radijas išjungtas"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Nėra SIM kortelės arba įvyko SIM kortelės klaida"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Sritis, kurioje neteikiamos paslaugos"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Išeinančius skambučius apriboja FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Negalite skambinti, kai įjungtas skambučių draudimas."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Visi skambučiai apriboti prieigos valdymu."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Pagalbos skambučius apriboja prieigos valdymas."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Įprastus skambučius riboja prieigos valdymas."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Neteisingas numeris"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferencinis skambutis"</string>
+    <string name="call_lost" msgid="317670617901479594">"Skambutis prarastas."</string>
+    <string name="ok" msgid="3811371167865772377">"Gerai"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Paleistas MMI kodas"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Paleistas USSD kodas..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Atšauktas MMI kodas"</string>
+    <string name="cancel" msgid="5044513931633602634">"Atšaukti"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD pranešimą gali sudaryti nuo <xliff:g id="MIN_LEN">%d</xliff:g> iki <xliff:g id="MAX_LEN">%d</xliff:g> simbol. Bandykite dar kartą."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Valdyti konferencinį skambutį"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Garsiakalbis"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Telefono ausinė"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Laidinės ausinės"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Siųsti šiuo tonus?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Siunčiami tonai"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Siųsti"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Taip"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Pakaitos simbolį pakeisti"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Trūksta balso pašto numerio"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kortelėje nėra išsaugoto balso pašto numerio."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Pridėti numerį"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Jūsų SIM kortelė buvo atblokuota. Atrakinamas telefonas..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM tinklo atrakinimo PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Atblokuoti"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Atsisakyti"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Pateikiama užklausa atrakinti tinklą..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Nesėkminga tinklo atrakinimo užklausa."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Tinklas sėkmingai atrakintas."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM skambinimo nustatymai"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA skambučio nustatymai"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Prieigos taškų pavadinimai"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Tinklo nustatymai"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Balso paštas"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
+    <string name="networks" msgid="8873030692174541976">"Tinklo operatoriai"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Skambinimo nustatymai"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Papildomi nustatymai"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Papildomi tik GSM skambinimo nustatymai"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Papildomi CDMA skambučio nustatymai"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Papildomi tik CDMA nustatymai"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Tinklo paslaugos nustatymai"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Skambintojo ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Įkeliami nustatymai…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Numeris paslėptas išeinančiuose skambučiuose"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numeris pateikiamas išeinančiuose skambučiuose"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Naudoti numatytuosius nustatymus, kad išeinančiuose skambučiuose būtų pateikiamas mano numeris"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Laukiantis skambutis"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Skambučio metu praneškite man apie įeinančius skambučius"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Skambučio metu praneškite man apie įeinančius skambučius"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Skambučio peradresavimo nustatymai"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Skambučio peradresavimas"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Visada persiųsti"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Visada naudoti šį numerį"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Peradresuojami visi skambučiai"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Visi skambučiai peradresuojami į <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numeris negalimas"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Išjungta"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Persiųsti, kai užimta"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numeris, kai užimta"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Peradresuojama į <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Išjungta"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operatorius nepalaiko skambučių peradresavimo išjungimo, kai telefonas užimtas."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Peradresuoti, kai neatsiliepiama"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numeris kai neatsiliepiama"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Peradresuojama į <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Išjungta"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operatorius nepalaiko skambučių peradresavimo išjungimo, kai neatsiliepiama."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Peradresuoti, kai nepasiekiama"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numeris, kai nepasiekiama"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Peradresuojama į <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Išjungta"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatorius nepalaiko skambučių peradresavimo išjungimo, kai telefonas nepasiekiamas."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Skambinimo nustatymai"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Skambinimo nustatymų klaida"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Skaitomi nustatymai..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Atnaujinami nustatymai..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Grąžinami nustatymai…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Netikėtas atsakas iš tinklo."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Tinklo ar SIM kortelės klaida."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Įjungtas jūsų telefono programos fiksuotojo rinkimo numerių nustatymas. Todėl neveikia kai kurios su skambinimu susijusios funkcijos."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Prieš žiūrėdami šiuos nustatymus, įjunkite radiją."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Gerai"</string>
+    <string name="enable" msgid="1059008390636773574">"Įgalinti"</string>
+    <string name="disable" msgid="7274240979164762320">"Išjungti"</string>
+    <string name="change_num" msgid="239476305819844391">"Naujinimas"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Numatytieji tinklo nustatymai"</item>
+    <item msgid="7876195870037833661">"Slėpti numerį"</item>
+    <item msgid="1108394741608734023">"Rodyti numerį"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Pasikeitė balso pašto numeris."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Balso pašto numerio pakeisti nepavyko."\n"Jei ši problema kartosis, kreipkitės į operatorių."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Persiuntimo numerio pakeisti nepavyko."\n"Jei ši problema kartosis, kreipkitės į operatorių."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nepavyko pateikti ir išsaugoti dabartinio peradresavimo numerio nustatymų."\n"Vis tiek perjungti naują teikėją?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Neatlikta jokių pakeitimų."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Pasirinkti balso pašto paslaugą"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mano operatorius"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobilaus tinklo nustatymai"</string>
+    <string name="label_available" msgid="1181658289009300430">"Galimi tinklai"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Ieškoma…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nerasta tinklų."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Ieškoti tinklų"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Klaida ieškant tinklų."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registruojama <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM kortelė neleidžia užmegzti ryšio su šiuo tinklu."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Dabar prie šio tinklo prisijungti nepavyksta. Bandykite dar kartą vėliau."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registruota tinkle."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Pasirinkite tinklo operatorių"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Ieškoti galimų tinklų"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Pasirinkti automatiškai"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatiškai pasirinkti pageidaujamą tinklą"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatinė registracija..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Tinklo režimas"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Pakeisti tinklo veikimo režimą"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Pageidaujamas tinklo režimas"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Pageidaujamas tinklo režimas: pageidautina WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Pageidaujamas tinklo režimas: tik GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Pageidaujamas tinklo režimas: tik WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Pageidaujamas tinklo režimas: CDMA / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Pageidaujamas tinklo režimas: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Pageidaujamas tinklo režimas: CDMA / „EvDo“"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Pageidaujamas tinklo režimas: tik CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Pageidaujamas tinklo režimas: tik „EvDo“"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Pageidaujamas tinklo režimas: CDMA / „EvDo“ / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Pageidaujamas tinklo režimas: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Pageidaujamas tinklo režimas: GSM / WCDMA / LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Pageidaujamas tinklo režimas: CDMA ir LTE / EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Pageidaujamas tinklo režimas: pasaulinis"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Pageidaujamas tinklo režimas: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Pasaulinis"</item>
+    <item msgid="127064712132619032">"GSM / WCDMA / LTE"</item>
+    <item msgid="1126767511633425977">"CDMA ir LTE / „EvDo“"</item>
+    <item msgid="6389676313771670660">"CDMA / „EvDo“ / GSM / WCDMA"</item>
+    <item msgid="545430093607698090">"Tik „EvDo“"</item>
+    <item msgid="1508557726283094448">"CDMA be „EvDo“"</item>
+    <item msgid="4341433122263841224">"CDMA / „EvDo“ automatinis"</item>
+    <item msgid="5958053792390386668">"GSM / WCDMA automatinis"</item>
+    <item msgid="7913148405605373434">"Tik WCDMA"</item>
+    <item msgid="1524224863879435516">"Tik GSM"</item>
+    <item msgid="3817924849415716259">"Pageidaujama GSM / WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Duomenys įgalinti"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Įgalinti duomenų prieigą mobiliajame tinkle"</string>
+    <string name="roaming" msgid="8871412572928323707">"Tarptinklinis duomenų ryšys"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Veikiant tarptinkliniam ryšiui, prisijungti prie duomenų paslaugų"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Veikiant tarptinkliniam ryšiui, prisijungti prie duomenų paslaugų"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Ryšys su duomenimis nutrūko, nes iš pagrindinio tinklo išėjote neįjungę tarptinklinio ryšio."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Leisti tarptinklinį duomenų ryšį? Galite būti apmokestinti nemažais tarptinklinio ryšio mokesčiais!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM / UMTS parinktys"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA parinktys"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Duomenų naudojimas"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Duomenys, naudojami dabartiniame laikotarpyje"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Duomenų naudojimo laikotarpis"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Duomenų perdavimo spartos politika"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Sužinokite daugiau"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) iš <xliff:g id="USED_2">%3$s</xliff:g> laikotarpio maksimumo"\n"Kitas laikotarpis prasidės po <xliff:g id="USED_3">%4$d</xliff:g> dienų (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) iš <xliff:g id="USED_2">%3$s</xliff:g> laikotarpio maksimumo"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Viršytas <xliff:g id="USED_0">%1$s</xliff:g> maksimumas"\n"Duomenų perdavimo sparta sumažinta iki <xliff:g id="USED_1">%2$d</xliff:g> Kb / sek."</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Praėjo <xliff:g id="USED_0">%1$d</xliff:g>٪ ciklo"\n"Kitas laikotarpis prasidės po<xliff:g id="USED_1">%2$d</xliff:g> dienų (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Duomenų perdavimo sparta sumažinta iki <xliff:g id="USED">%1$d</xliff:g> kB / sek., jei pasiekiama duomenų naudojimo riba"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Daugiau informacijos apie operatoriaus mobiliojo ryšio duomenų naudojimo politiką"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS perdavimas į mobilųjį telefoną"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS perdavimas į mobilųjį telefoną"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Įgalintas SMS perdavimas į mobilųjį telefoną"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS perdavimas į mobilųjį telefoną išjungtas"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"SMS perdavimo į mobilųjį nustatymai"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Pagalbos perdavimas"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Įgalintas perdavimas pagalbos numeriu"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Perdavimas pagalbos numeriu išjungtas"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administracinis"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administracinis įgalintas"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administracinis išjungtas"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Priežiūra"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Priežiūra įgalinta"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Priežiūra išjungta"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Bendros naujienos"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Verslo ir finansų naujienos"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sporto naujienos"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Pramoginės naujienos"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Vietinis"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Įgalintos vietinės naujienos"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Išjungtos vietinės naujienos"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regioninis"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Įgalintos regiono naujienos"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Išjungtos regioninės naujienos"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Valstybės"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Įgalintos valstybės naujienos"</string>
+    <string name="national_disable" msgid="326018148178601166">"Išjungtos valstybės žinios"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Tarptautinis"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Įgalintos tarptautinės naujienos"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Išjungtos tarptautinės naujienos"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Kalba"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Pasirinkti naujienų kalbą"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Anglų"</item>
+    <item msgid="1151988412809572526">"Prancūzų"</item>
+    <item msgid="577840534704312665">"Ispanų"</item>
+    <item msgid="8385712091143148180">"Japonų"</item>
+    <item msgid="1858401628368130638">"Korėjų"</item>
+    <item msgid="1933212028684529632">"Kinų k."</item>
+    <item msgid="1908428006803639064">"Hebrajų"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Kalbos"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Vietiniai orai"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Įgalinti vietiniai orai"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Vietiniai orai išjungti"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Ataskaitos apie srities srautą"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Įgalintos srities srauto ataskaitos"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Srities srauto ataskaitos išjungtos"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Vietinio oro uosto skrydžių tvarkaraščiai"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Įgalinti vietinio oro uosto skrydžių tvarkaraščiai"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Išjungti vietinio oro uosto skrydžių tvarkaraščiai"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restoranai"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Įgalinti restoranai"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restoranai išjungti"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Laikinos saugios vietos"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Įgalintos laikinos saugios vietos"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Laikinos saugios vietos išjungtos"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Mažmeninės prekybos katalogas"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Mažmeninės prekybos katalogas įgalintas"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Mažmeninės prekybos katalogas išjungtas"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Skelbimai"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Skelbimai įgalinti"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Skelbimai išjungti"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Akcijų kainos"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Akcijų kainos įgalintos"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Išjungtos akcijų kainos"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Darbo galimybės"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Įgalintos darbo galimybės"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Išjungtos darbo galimybės"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicina, sveikata ir ligoninė"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"„Medicina, sveikata ir ligoninė“ įgalinta"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"„Medicina, sveikata ir ligoninė“ neleidžiama"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologijų naujienos"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Įgalintos technologijų naujienos"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Išjungtos technologijų naujienos"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Kelios kategorijos"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Įgalintos kelios kategorijos"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Išjungtos kelios kategorijos"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Naudoti tik 2G tinklus"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Taupo akumuliatorių"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sistemos pasirinkimas"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Pakeisti tarptinklinio CDMA ryšio režimą"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sistemos pasirinkimas"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Tik pagrindinis"</item>
+    <item msgid="1205664026446156265">"Automatinis"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA prenumerata"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Keisti RUIM / SIM ir NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"prenumerata"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM / SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Suaktyvinti įrenginį"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Nustatyti duomenų paslaugą"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fiksuoto rinkimo numeriai"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN sąrašas"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN aktyvinimas"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Įgalinti fiksuoto rinkimo numeriai"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Fiksuoto rinkimo numeriai išjungti"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Įgalinti FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Išjungti FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Pakeisti PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Išjungti FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Įgalinti FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Valdyti fiksuoto rinkimo numerius"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Pakeisti PIN kodą FDN prieigai"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Valdyti telefono numerių sąrašą"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Balso privatumas"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Įgalinti patobulintą privatumo režimą"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY režimas"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Nustatyti TTY režimą"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatinis bandymas iš naujo"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Įgalinti automatinio kartotinio bandymo režimą"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Pridėti adresatą"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Redaguoti adresatą"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Ištrinti adresatą"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Įveskite PIN2 kodą"</string>
+    <string name="name" msgid="7329028332786872378">"Pavadinimas"</string>
+    <string name="number" msgid="7905950798349903858">"Numeris"</string>
+    <string name="save" msgid="4094274636321939086">"Išsaugoti"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Pridėti fiksuoto rinkimo numerį"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Pridedamas fiksuoto rinkimo numeris..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Pridėtas fiksuoto rinkimo numeris."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Redaguoti fiksuoto rinkimo numerį"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Atnaujinamas fiksuoto rinkimo numeris..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Fiksuoto rinkimo numeris atnaujintas."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Ištrinti fiksuoto rinkimo numerį"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Trinamas fiksuoto rinkimo numeris..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Ištrintas fiksuoto rinkimo numeris."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN neatnaujintas, nes įvedėte neteisingą PIN kodą."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN neatnaujintas, nes numerį gali sudaryti ne daugiau kaip 20 skaitmenų."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN nebuvo atnaujintas. Įvestas PIN2 kodas buvo netinkamas arba telefono numeris buvo atmestas."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Skaitoma iš SIM kortelės..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM kortelėje adresatų nėra."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Pasirinkti importuojamus adresatus"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Jei norite importuoti kontaktus iš SIM kortelės, pirmiausia išjunkite lėktuvo režimą."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Įgalinti / išjungti SIM kortelės PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Pakeisti SIM kortelės PIN kodą"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM kortelės PIN kodas:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Senas PIN kodas"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Naujas PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Patvirtinti naują PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Įvestas senasis PIN kodas yra neteisingas. Bandykite dar kartą."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Įvesti PIN kodai nesutampa. Bandykite dar kartą."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Įveskite PIN kodą, sudarytą iš 4–8 skaičių."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Išjunti SIM kortelės PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Įgalinti SIM kortelės PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Palaukite..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM kortelės PIN kodas įgalintas"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM kortelės PIN kodas neleidžiamas."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Įvestas PIN kodas neteisingas."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM kortelės PIN kodas pakeistas sėkmingai."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Slaptažodis neteisingas, SIM kortelė užrakinta! Reikia PUK2 kodo."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Senas PIN2 kodas"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Naujas PIN2 kodas"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Patvirtinti naują PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Įvestas PUK2 kodas yra neteisingas. Bandykite dar kartą."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Įvestas senasis PIN2 kodas neteisingas. Bandykite dar kartą."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Įvesti PIN2 kodai nesutampa. Bandykite dar kartą."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Įveskite PIN2 kodą, sudarytą iš 4–8 skaičių."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Įveskite 8 skaičių PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 kodas pakeistas sėkmingai."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Įveskite PUK2 kodą"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Neteisingas slaptažodis. Pakeiskite PIN2 kodą ir bandykite dar kartą."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Slaptažodis neteisingas, todėl SIM kortelė užrakinta. Būtina įvesti PUK2 kodą."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Atlikta"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferencinis skambutis <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Balso pašto numeris"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Renkamas numeris"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Bandoma dar kartą"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferencinis skambutis"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Gaunamas skambutis"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Skambutis baigtas"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Sulaikyta"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Baigiamas pokalbis"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Skambinant"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mano numeris: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Renkamas numeris"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Praleistas skambutis"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Praleisti skambučiai"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> praleisti (-ų) skambučiai (-ų)"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"praleistas skambutis nuo <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Vykstantis pokalbis"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Sulaikyta"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Skambina"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Naujas balso pašto pranešimas"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Naujas balso pašto pranešimas (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Rinkti <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nežinomas balso pašto numeris"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nėra paslaugos"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Pasirinktas tinklas (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) negalimas"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Padėti ragelį"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Perskambinti"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Pranešimas"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Jei norite skambinti, išjunkite lėktuvo režimą."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Neregistruota tinkle."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilusis tinklas negalimas."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Skambutis neišsiųstas; neįvestas teisingas numeris."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Skambutis neišsiųstas."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Paleidžiama MMI seka..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nepalaikoma paslauga."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Neįmanoma perjungti skambučių."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Neįmanoma atskirti skambučio."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Neįmanoma perkelti skambučio."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Neįmanoma atlikti konferencinių skambučių."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Neįmanoma atmesti skambučio."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Neleisti atšaukti skambučių."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Skambutis internetu"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Skambutis pagalbos numeriu"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Įjungiamas radijas…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Sritis, kurioje paslauga neteikiama, bandoma iš naujo..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Nepaskambinta. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nėra pagalbos numeris!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Nepaskambinta. Surinkite pagalbos numerį!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Naudokite klaviatūrą ir rinkite numerius"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Sulaikyti"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Pabaiga"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Numerio rinkimo klaviatūra"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Nutildyti"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Pridėti skambutį"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Sujungti skambučius"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Apkeisti"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Valdyti skambučius"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Valdyti konferenciją"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Garso įr."</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Vaizdo sk."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importuoti"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importuoti viską"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importuojami SIM kortelės adresatai"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importuoti iš adresatų"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Klausos aparatai"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Įjungti klausos aparato suderinamumą"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY išjungta"</item>
+    <item msgid="3971695875449640648">"TTY pilnas"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DMTF tonai"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Nustatyti DTMF tonų ilgį"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Įprastas"</item>
+    <item msgid="2883365539347850535">"Ilgas"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Tinklo pranešimas"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktyvinkite savo telefoną"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Kad suaktyvintumėte telefono paslaugą, reikia atlikti specialų skambutį. "\n\n"Paspaudę „Aktyvinti“ klausykite pateikiamų telefono aktyvinimo instrukcijų."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Praleisti aktyvinimą?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Jei praleisite aktyvinimą, negalėsite skambinti ar prisijungti prie mobilių duomenų tinklų (nors ir galite prisijungti prie „Wi-Fi“ tinklų). Iki tol, kol suaktyvinsite telefoną, aktyvinkite jį kaskart jį įjungdami."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Praleisti"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktyvinti"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonas suaktyvintas."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Aktyvinimo problema"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Vadovaukitės girdimomis instrukcijomis, kol išgirsite, kad aktyvinimas baigtas."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Garsiakalbis"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Palaukite, kol bus užprogramuotas telefonas."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Užprogramuoti nepavyko"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Dabar jūsų telefonas suaktyvintas. Gali praeiti iki 15 min., kol paslauga bus paleista."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonas nebuvo suaktyvintas. "\n"Galbūt reikia rasti vietą, kurioje ryšys veikia geriau (prie lango arba lauke). "\n\n"Bandykite dar kartą arba skambinkite klientų aptarnavimo tarnybai ir išsiaiškinkite, ką dar galima padaryti."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"PER DAUG SCP TRIKČIŲ"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Atgal"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Bandyti dar kartą"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Kitas"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Įvestas atgalinio skambinimo pagalbos numeriu režimas"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Atgalinio skambinimo pagalbos numeriu režimas"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Duomenų ryšys išjungtas"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Jokio duomenų ryšio <xliff:g id="COUNT">%s</xliff:g> min."</item>
+    <item quantity="other" msgid="3122217344579273583">"Jokio duomenų ryšio <xliff:g id="COUNT">%s</xliff:g> min."</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"<xliff:g id="COUNT">%s</xliff:g> min. telefonas veiks atgalinio skambinimo pagalbos numeriu režimu. Telefonui veikiant šiuo režimu, negalėsite naudoti jokių ryšio su duomenimis programų. Ar norite šį režimą išjungti dabar?"</item>
+    <item quantity="other" msgid="8617116564023933114">"<xliff:g id="COUNT">%s</xliff:g> min. telefonas veiks atgalinio skambinimo pagalbos numeriu režimu. Telefonui veikiant šiuo režimu, negalėsite naudoti jokių ryšio su duomenimis programų. Ar norite šį režimą išjungti dabar?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Skambinant pagalbos telefonu pasirinkto veiksmo atlikti nepavyks. Šiuo režimu telefonas veiks <xliff:g id="COUNT">%s</xliff:g> min. Ar norite šį režimą išjungti dabar?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Skambinant atgalinio pagalbos numerio režimu pasirinkto veiksmo atlikti nepavyks. Šiuo režimu telefonas veiks <xliff:g id="COUNT">%s</xliff:g> min. Ar norite šį režimą išjungti dabar?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Skambinant pagalbos numeriu pasirinkto veiksmo atlikti nepavyks."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Išeinama iš atgalinio skambinimo pagalbos numeriu režimo"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Taip"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Atsisakyti"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Paslauga"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Sąranka"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenustatyta&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Kiti skambučio nustatymai"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontakto nuotrauka"</string>
+    <string name="goPrivate" msgid="865837794424530980">"naudoti privatų režimą"</string>
+    <string name="selectContact" msgid="781975788478987237">"pasirinkti kontaktą"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Skambučio internetu nustatymai"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Skambinimo internetu (SIP) paskyros"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Paskyros"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Gauti gaunamus skambučius"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Sutrumpėja akumuliatoriaus naudojimo laikas"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Naudoti skambinimą internetu"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Naudoti skambinimą internetu (tik „Wi-Fi“)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Visiems skambučiams, kai pasiekiamas duomenų tinklas"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Tik skambučiams internetu"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Klausti dėl kiekvieno skambučio"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Visiems skambučiams"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Skambinti"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Naudoti skambinimo internetu paskyrą:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Visada naudoti skambinant internetu"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Numatytą naudoti skambinimo internetu paskyrą galite pakeisti čia: „Telefonas“ &gt; „Nustatymai“ &gt; „Skambučio internetu nustatymai“ &gt; „Paskyrų“ ekranas."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Skambutis mobiliuoju telefonu"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Skambutis internetu"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nėra skambinimo internetu paskyros"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Šiame telefone nenustatyta nė viena skambinimo internetu paskyra. Ar norite pridėti ją dabar?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Pridėti"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Pridėti paskyrą"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Pašalinti paskyrą"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP paskyros"</string>
+    <string name="saving_account" msgid="52903398217017954">"Išsaugoma paskyra..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Pašalinama paskyra..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Išsaugoti"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Atmesti"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Uždaryti profilį"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Gerai"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Uždaryti"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Pagrindinė paskyra. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Tikrinama būsena..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registruojama..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Vis dar bandoma..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Skambučiai negaunami."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Paskyros registracija sustabdyta, nes neprisijungta prie interneto."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Paskyros registracija sustabdyta, nes neprisijungta prie „Wi-Fi“."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Paskyros užregistruoti nepavyko."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Gaunami skambučiai."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Paskyros registracija nepavyko: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); bus bandoma vėliau"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Paskyros užregistruoti nepavyko: netinkamas naudotojo vardas arba slaptažodis."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Paskyros užregistruoti nepavyko. Patikrinkite serverio pavadinimą."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Šią paskyrą dabar naudoja programa „<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>“."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Išsami SIP paskyros informacija"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Išsami SIP paskyros informacija"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Serveris"</string>
+    <string name="username_title" msgid="2479375923477682328">"Naudotojo vardas"</string>
+    <string name="password_title" msgid="3323555249068171531">"Slaptažodis"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Pateikti vardą"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Išsiuntimo tarpinio serverio adresas"</string>
+    <string name="port_title" msgid="5952939408078626657">"Prievado numeris"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transportavimo tipas"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Siųsti „palaikyti“"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Nustatyti kaip pagrindinę paskyrą"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Naudojama siunčiamiems skambučiams"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Pasirenkami nustatymai"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Tapatumo nustatymo naudotojo vardas"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Tapatumui nustatyti naudotas naudotojo vardas"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nenustatyta&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Kaip naudotojo vardas&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Pasirenkama&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▽ Jei norite viską parodyti, palieskite"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Jei norite viską paslėpti, palieskite"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Lauke „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ reikšmę nurodyti būtina – jis negali likti tuščias."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Prievado numeris turi būti nuo 1000 iki 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nėra interneto ryšio"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nėra „Wi-Fi“ ryšio"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Jei norite skambinti internetu, pirmiausia patikrinkite interneto ryšį."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Jei norite skambinti internetu, turite būti prisijungę prie „Wi-Fi“ ryšio tinklo (naudokite nustatymus „Belaidis ir tinklas“)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Skambinimas internetu nepalaikomas"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatinis"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Visada siųsti"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Skambinimas balsu nepalaikomas"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Dabar negaliu kalbėti. Kas nutiko?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Netrukus perskambinsiu."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Paskambinsiu vėliau."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Dabar negaliu kalb. Pask. vėliau."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Sukurkite patys..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Greiti atsakai"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Redaguoti greitus atsakus"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Greitas atsakas"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Nustat. iš naujo numat. prog."</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Pranešimas išsiųstas numeriu <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"vienas"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"du"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"trys"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"keturi"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"penki"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"šeši"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"septyni"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"aštuoni"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"devyni"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"žvaigždutė"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nulis"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"svaras"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"rinkti numerį"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"naikinimo klavišas"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Garsiakalbis įgalintas."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Skambutis nutildytas."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Atsakyti"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Siųsti SMS pranešimą"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Atmesti"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibruoti"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibruoti"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Garsas"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Numatytasis garsas (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefono skambėjimo tonas"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibruoti, kai skambina"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Numerio rinkimo lietimo tonas"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Skambinimo skydelio automatinis užbaig."</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Skambėjimo tonas ir vibracija"</string>
+</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
new file mode 100644
index 0000000..bdd7c27
--- /dev/null
+++ b/res/values-lv/strings.xml
@@ -0,0 +1,633 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilo ierīču dati"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Tālrunis"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Ārkārtas numuru sastādītājs"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Tālrunis"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FNSN saraksts"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nezināms"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privāts numurs"</string>
+    <string name="payphone" msgid="1931775086311769314">"Taksofons"</string>
+    <string name="onHold" msgid="9035493194749959955">"Aizturēts"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Līnija ir aizņemta"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Tīkls ir aizņemts"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nav atbildes; noildze"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Serveris nav sasniedzams"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numurs nav sasniedzams"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nepareizs lietotājvārds vai parole"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Zvans tika veikts ārpus tīkla."</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Servera kļūda. Vēlāk mēģiniet vēlreiz."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Nav signāla"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM ierobežojums ir pārsniegts."</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio ir izslēgts."</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Nav SIM, vai SIM kļūda"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Ārpus apkalpošanas apgabala"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"FNSN ierobežo izejošos zvanus."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Izejošos zvanus nevar veikt, ja ir ieslēgts zvanu aizliegums."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Piekļuves vadība ierobežo visus zvanus."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Piekļuves vadība ierobežo ārkārtas zvanus."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Piekļuves vadība ierobežo parastos zvanus."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Numurs nav derīgs."</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferences zvans"</string>
+    <string name="call_lost" msgid="317670617901479594">"Zvans ir zaudēts."</string>
+    <string name="ok" msgid="3811371167865772377">"Labi"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI kods ir startēts."</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD kods darbojas…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI kods ir atcelts"</string>
+    <string name="cancel" msgid="5044513931633602634">"Atcelt"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD ziņojumam ir jābūt <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> rakstzīmes garam. Lūdzu, mēģiniet vēlreiz."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Pārvaldīt konferences zvanu"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Skaļrunis"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Austiņas"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Austiņas ar vadu"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Vai sūtīt tālāk norādītos signālus?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Sūtīšanas signāli"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Sūtīt"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Jā"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nē"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Aizstāt aizstājējzīmi ar:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Trūkst balss pasta numura"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartē neviens balss pasta numurs nav saglabāts."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Pievienot numuru"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM karte ir atbloķēta. Notiek tālruņa atbloķēšana..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM tīkla atbloķēšanas PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Atbloķēt"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Noraidīt"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Notiek tīkla atbloķēšanas pieprasīšana..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Tīkla atbloķēšanas pieprasījums nav veiksmīgs."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Tīkla atbloķēšana bija veiksmīga."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM zvanu iestatījumi"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA zvanu iestatījumi"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Piekļuves punktu nosaukumi"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Tīkla iestatījumi"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Balss pasts"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
+    <string name="networks" msgid="8873030692174541976">"Tīkla operatori"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Zvanu iestatījumi"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Papildu iestatījumi"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Tikai GSM zvanu papildu iestatījumi"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"CDMA zvanu papildu iestatījumi"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Tikai CDMA zvanu papildu iestatījumi"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Tīkla pakalpojuma iestatījumi"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Zvanītāja ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Notiek iestatījumu ielāde..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Izejošajos zvanos numurs tiek slēpts"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Izejošajos zvanos redzamais numurs"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Izmantot noklusējuma operatora iestatījumus, lai rādītu manu numuru izejošajos zvanos"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Zvana gaidīšana"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Zvana laikā informēt mani par ienākošajiem zvaniem"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Zvana laikā informēt mani par ienākošajiem zvaniem"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Zvanu pāradresācijas iestatījumi"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Zvanu pāradresācija"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Vienmēr pāradresēt"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Vienmēr izmantot šo numuru"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Tiek pāradresēti visi zvani"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Visu zvanu pāradresēšana uz: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numurs nav pieejams"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Atspējots"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Pāradresēt, ja aizņemts"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numurs, ja ir aizņemts"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Pāradresēšana uz: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Atspējots"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Jūsu operators neatbalsta zvanu pāradresācijas atspējošanu, ja tālrunis ir aizņemts."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Pāradresēt, ja nav atbildes"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numurs, ja nav atbildes"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Pāradresēšana uz: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Atspējots"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Jūsu operators neatbalsta zvanu pāradresācijas atspējošanu, ja tālrunis neatbild."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Pāradresēt, ja nevar sasniegt"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numurs, ja nav sasniedzams"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Pāradresēšana uz: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Atspējots"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Jūsu mobilo sakaru operators neatbalsta zvanu pāradresācijas atspējošanu, ja tālrunis nav sasniedzams."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Zvanu iestatījumi"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Zvanu iestatījumu kļūda"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Notiek iestatījumu lasīšana..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Notiek iestatījumu atjaunināšana..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Notiek iestatījumu atsaukšana..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Neparedzēta atbilde no tīkla."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Tīkla vai SIM kartes kļūda."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Jūsu tālrunī ir ieslēgta fiksēto numuru sastādīšanas lietotne. Tādēļ dažas zvanu funkcijas nav pieejamas."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Pirms šo iestatījumu skatīšanas ieslēdziet radio."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Labi"</string>
+    <string name="enable" msgid="1059008390636773574">"Iespējot"</string>
+    <string name="disable" msgid="7274240979164762320">"Atspējot"</string>
+    <string name="change_num" msgid="239476305819844391">"Atjaunināt"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Tīkla noklusējums"</item>
+    <item msgid="7876195870037833661">"Slēpt numuru"</item>
+    <item msgid="1108394741608734023">"Rādīt numuru"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Balss pasta numurs ir mainīts."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nevarēja mainīt balss pasta numuru."\n"Ja problēmu neizdodas novērst, sazinieties ar savu mobilo sakaru operatoru."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nevarēja mainīt pāradresācijas numuru."\n"Ja problēmu neizdodas novērst, sazinieties ar savu mobilo sakaru operatoru."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nevarēja izgūt un saglabāt pašreizējos pāradresācijas numura iestatījumus."\n"Vai tomēr pārslēgties uz jauno pakalpojumu sniedzēju?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Izmaiņas netika veiktas."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Izvēlieties balss pasta pakalpojumu"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mans mobilo sakaru operators"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobilā tīkla iestatījumi"</string>
+    <string name="label_available" msgid="1181658289009300430">"Pieejamie tīkli"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Notiek meklēšana…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Neviens tīkls nav atrasts."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Meklēt tīklus"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Tīklu meklēšanas laikā radās kļūda."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Notiek reģistrēšana šādā tīklā: <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM karte neļauj izveidot savienojumu ar šo tīklu."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Pašlaik nevar izveidot savienojumu ar šo tīklu. Vēlāk mēģiniet vēlreiz."</string>
+    <string name="registration_done" msgid="495135664535876612">"Reģistrēts tīklā."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Izvēlēties tīkla operatoru"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Meklēt visus pieejamos tīklus"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Izvēlēties automātiski"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automātiski izvēlēties vajadzīgo tīklu"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automātiska reģistrācija..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Tīkla režīms"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Mainiet tīkla darbības režīmu"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Vēlamais tīkla režīms"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Ieteicamais tīkla režīms: WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Ieteicamais tīkla režīms: tikai GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Ieteicamais tīkla režīms: tikai WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Ieteicamais tīkla režīms: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Ieteicamais tīkla režīms: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Ieteicamais tīkla režīms: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Ieteicamais tīkla režīms: tikai CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Ieteicamais tīkla režīms: tikai EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Vēlamais tīkla režīms: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Vēlamais tīkla režīms: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Vēlamais tīkla režīms: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Vēlamais tīkla režīms: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Vēlamais tīkla režīms: Globāls"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Vēlamais tīkla režīms: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Vispārējs"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Tikai EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automātiski"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automātiski"</item>
+    <item msgid="7913148405605373434">"Tikai WCDMA"</item>
+    <item msgid="1524224863879435516">"Tikai GSM"</item>
+    <item msgid="3817924849415716259">"Ieteicams GSM/WCDMA režīms"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dati ir iespējoti."</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Iespējot datu piekļuvi mobilajā tīklā"</string>
+    <string name="roaming" msgid="8871412572928323707">"Datu viesabonēšana"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Viesabonēšanas laikā izveidot savienojumu ar datu pakalpojumiem"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Viesabonēšanas laikā izveidot savienojumu ar datu pakalpojumiem"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Datu savienojamība ir zaudēta, jo mājas tīkls ar datu viesabonēšanu ir izslēgts."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Vai atļaut datu viesabonēšanu? Var rasties ievērojamas viesabonēšanas izmaksas."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS opcijas"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA opcijas"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Datu lietojums"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Pašreizējā periodā izmantotie dati"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Datu izmantošanas periods"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Datu ātruma politika"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Uzziniet vairāk"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) no <xliff:g id="USED_2">%3$s</xliff:g> perioda maksimuma"\n"Nākamais periods sākas pēc <xliff:g id="USED_3">%4$d</xliff:g> dienas(-ām) (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) no <xliff:g id="USED_2">%3$s</xliff:g> perioda maksimuma"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimums ir pārsniegts"\n"Datu ātrums ir samazināts līdz <xliff:g id="USED_1">%2$d</xliff:g> Kb/s."</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datu ātrums tiek samazināts līdz <xliff:g id="USED">%1$d</xliff:g> Kb/s, ja ir pārsniegts datu lietojuma ierobežojums."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Papildinformācija par mobilo sakaru operatora mobilā tīkla datu lietošanas politiku"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Šūnu apraides īsziņa"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Šūnu apraides īsziņa"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Šūnu apraides īsziņas ir iespējotas."</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Šūnu apraides īsziņas ir atspējotas."</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Šūnu apraides īsziņas iestatījumi"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Ārkārtas apraide"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Ārkārtas apraide ir iespējota."</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Ārkārtas apraide ir atspējota."</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratīvās ziņas"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administratīvās ziņas ir iespējotas."</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administratīvās ziņas ir atspējotas."</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Uzturēšana"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Uzturēšana ir iespējota."</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Uzturēšana ir atspējota."</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Vispārīgas ziņas"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Uzņēmējdarbības un finanšu ziņas"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sporta ziņas"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Izklaides ziņas"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Vietējās"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Vietējās ziņas ir iespējotas."</string>
+    <string name="local_disable" msgid="4405691986943795798">"Vietējās ziņas ir atspējotas."</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Reģionālās"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Reģionālās ziņas ir iespējotas."</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Reģionālās ziņas ir atspējotas."</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Valsts"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Valsts ziņas ir iespējotas."</string>
+    <string name="national_disable" msgid="326018148178601166">"Valsts ziņas ir atspējotas."</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Starptautiskās"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Starptautiskās ziņas ir iespējotas."</string>
+    <string name="international_disable" msgid="2850648591041088931">"Starptautiskās ziņas ir atspējotas."</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Valoda"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Atlasiet ziņu valodu"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"angļu"</item>
+    <item msgid="1151988412809572526">"franču"</item>
+    <item msgid="577840534704312665">"spāņu"</item>
+    <item msgid="8385712091143148180">"japāņu"</item>
+    <item msgid="1858401628368130638">"korejiešu"</item>
+    <item msgid="1933212028684529632">"ķīniešu"</item>
+    <item msgid="1908428006803639064">"ivrits"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Valodas"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Vietējā laika prognoze"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Vietējā laika prognoze ir iespējota."</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Vietējā laika prognoze ir atspējota."</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Apgabala satiksmes informācijas pārskati"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Apgabala satiksmes informācijas pārskati ir iespējoti."</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Apgabala satiksmes informācijas pārskati ir atspējoti."</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Vietējās lidostas lidojumu grafiki"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Vietējās lidostas lidojumu grafiki ir iespējoti."</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Vietējās lidostas lidojumu grafiki ir atspējoti."</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restorāni"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restorāni ir iespējoti."</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restorāni ir atspējoti."</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Naktsmītnes"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Naktsmītnes ir iespējotas."</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Naktsmītnes ir atspējotas."</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Mazumtirdzniecības katalogs"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Mazumtirdzniecības katalogs ir iespējots."</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Mazumtirdzniecības katalogs ir atspējots."</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklāmas"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklāmas ir iespējotas."</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklāmas ir atspējotas."</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Akciju kotējumi"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Akciju kotējumi ir iespējoti."</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Akciju kotējumi ir atspējoti."</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Nodarbinātības iespējas"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Nodarbinātības iespējas ir iespējotas."</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Nodarbinātības iespējas ir atspējotas."</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicīna, veselība un slimnīcas"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Opcija Medicīna, veselība un slimnīcas ir iespējota."</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Opcija Medicīna, veselība un slimnīcas ir atspējota."</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tehnoloģiju ziņas"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tehnoloģiju ziņas ir iespējotas."</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tehnoloģiju ziņas ir atspējotas."</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Vairākas kategorijas"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Vairāku kategoriju režīms ir iespējots."</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Vairāku kategoriju režīms ir atspējots."</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Izmantot tikai 2G tīklus"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Ietaupa akumulatora jaudu"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sistēmas atlasīšana"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Mainīt CDMA viesabonēšanas režīmu"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sistēmas atlasīšana"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Tikai mājās"</item>
+    <item msgid="1205664026446156265">"Automātiski"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA abonements"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Mainīt no RUIM/SIM uz NV un otrādi"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonements"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Ierīces aktivizēšana"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Datu pakalpojuma iestatīšana"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fiksētie numuru sastādīšanas numuri"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FNSN saraksts"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FNSN aktivizācija"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Fiksētie numuru sastādīšanas numuri ir iespējoti."</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Fiksētie numuru sastādīšanas numuri ir atspējoti."</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Iespējot FNSN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Atspējot FNSN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Mainīt PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Atspējot FNSN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Iespējot FNSN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Pārvaldiet fiksētos numuru sastādīšanas numurus"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Mainīt PIN kodu FNSN piekļuvei"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Pārvaldīt tālruņa numuru sarakstu"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Balss konfidencialitāte"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Iespējot uzlabotās konfidencialitātes režīmu"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Teletaipa režīms"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Iestatīt teletaipa režīmu"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automātisks atkārtots mēģinājums"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Iespējot automātiskā atkārtotā mēģinājuma režīmu"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Pievienot kontaktpersonu"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Rediģēt kontaktpersonu"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Dzēst kontaktpersonu"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Ievadiet PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Vārds"</string>
+    <string name="number" msgid="7905950798349903858">"Numurs"</string>
+    <string name="save" msgid="4094274636321939086">"Saglabāt"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Fiksētā numura sastādīšanas numura pievienošana"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Notiek fiksēta numuru sastādīšanas numura pievienošana…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Fiksētais numuru sastādīšanas numurs ir pievienots."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Fiksētā numuru sastādīšanas numura rediģēšana"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Notiek fiksētā numuru sastādīšanas numura atjaunināšana…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Fiksētais numuru sastādīšanas numurs ir atjaunināts."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Fiksētā numura sastādīšanas numura dzēšana"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Notiek fiksētā numuru sastādīšanas numura dzēšana…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Fiksētais numuru sastādīšanas numurs ir atspējots."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN nav atjaunināts, jo tika ievadīts nepareizs PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN netika atjaunināts, jo numurā nedrīkst būt vairāk par 20 cipariem."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN netika atjaunināts. Ievadītais PIN2 nebija pareizs, vai tālruņa numurs tika noraidīts."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Notiek lasīšana no SIM kartes..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM kartē nav nevienas kontaktpersonas."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Importējamo kontaktpersonu atlasīšana"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Lai importētu kontaktinformāciju no SIM kartes, vispirms izslēdziet lidojuma režīmu."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Iespējot/atspējot SIM PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM PIN mainīšana"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Iepriekšējais PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Jauns PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Apstiprināt jauno PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Ievadītais iepriekšējais PIN nav pareizs. Mēģiniet vēlreiz."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Ievadītie PIN neatbilst. Mēģiniet vēlreiz."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Ierakstiet PIN, kas sastāv no 4 līdz 8 cipariem."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM PIN atspējošana"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PIN iespējošana"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Lūdzu, uzgaidiet…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM kartes PIN ir iespējots."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM kartes PIN ir atspējots."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Ievadītais PIN nav pareizs."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM kartes PIN ir veiksmīgi mainīts."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Parole nav pareiza, SIM ir bloķēts. Ir jāievada PUK2 kods."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Iepriekšējais PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Jauns PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Apstiprināt jauno PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Ievadītais PUK2 nav pareizs. Mēģiniet vēlreiz."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Ievadītais iepriekšējais PIN2 nav pareizs. Mēģiniet vēlreiz."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Ievadītie PIN2 neatbilst. Mēģiniet vēlreiz."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Ierakstiet PIN2, kas sastāv no 4 līdz 8 cipariem."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Ierakstiet PUK2, kas sastāv no 8 cipariem."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 ir mainīts veiksmīgi."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Ierakstiet PUK2 kodu"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Parole nav pareiza. Mainiet PIN2 un mēģiniet vēlreiz."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Parole nav pareiza, SIM karte ir bloķēta. Ir jāievada PUK2 kods."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gatavs"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferences zvans <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Balss pasta numurs"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Notiek numura sastādīšana"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Notiek atkārtota mēģināšana"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferences zvans"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Ienākošais zvans"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Zvans ir pabeigts"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Aizturēts"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Notiek klausules nolikšana"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Notiek saruna"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mans tālruņa numurs: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Notiek numura sastādīšana"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Neatbildēts zvans"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Neatbildētie zvani"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> neatbildēts(-i) zvans(-i)"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Neatbildēts zvans no: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Pašreizējā saruna"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Aizturēts"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Ienākošs zvans"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Jauns balss pasts"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Jauns balss pasts (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Sastādiet šādu numuru: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Balss pasta numurs nav zināms."</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nav pakalpojuma"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Atlasītais tīkls (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nav pieejams"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Pārtraukt"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Atzvanīt"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Ziņojums"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Lai veiktu zvanu, vispirms izslēdziet lidojuma režīmu."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Tīklā nav reģistrēts."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilais tīkls nav pieejams."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Zvans nav nosūtīts; derīgs numurs nav ievadīts."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Zvans nav nosūtīts."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Notiek MMI secības startēšana…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Neatbalstīts pakalpojums."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Nevar pārslēgt zvanus."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Nevar atdalīt zvanu."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Nevar pārsūtīt zvanu."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nevar veikt konferences zvanus."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Nevar noraidīt zvanu."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Nevar atvienot zvanu(-us)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Interneta zvans"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ārkārtas zvans"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Notiek radio ieslēgšana..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Ārpus apkalpošanas apgabala, tiek mēģināts vēlreiz..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Zvans netika nosūtīts. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nav ārkārtas izsaukuma numurs."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Zvans nav nosūtīts. Ievadiet ārkārtas izsaukuma numuru."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Izmantojiet tastatūru, lai sastādītu numuru."</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Aizturēt"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Beigt"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Numuru sastādīšanas tastatūra"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Izslēgt skaņu"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Pievienot zvanu"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Sapludināt zvanus"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Mainīt"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Pārvaldīt zvanus"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Pārvaldīt konferenci"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videozvans"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importēt"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importēt visu"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Notiek SIM kontaktpersonu importēšana"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importēt no kontaktpersonām"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Dzirdes aparāti"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Ieslēgt saderību ar dzirdes aparātiem"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Teletaips ir izslēgts"</item>
+    <item msgid="3971695875449640648">"Viss teletaips"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF toņi"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Iestatiet DTMF signālu ilgumu"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normāls"</item>
+    <item msgid="2883365539347850535">"Ilgs"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Tīkla ziņojums"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Tālruņa aktivizēšana"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Lai aktivizētu tālruņa pakalpojumu, ir jāveic īpašs zvans. "\n\n"Nospiediet uz Aktivizēt un pēc tam klausieties tālruņa aktivizēšanas norādījumus."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Vai izlaist aktivizāciju?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ja tiks izlaista aktivizācija, nevarēs veikt zvanus vai izveidot savienojumu ar mobilajiem datu tīkliem (taču varēs izveidot savienojumu ar Wi-Fi tīkliem). Ikreiz ieslēdzot tālruni, tiks prasīts to aktivizēt (līdz brīdim, kad tas tiks aktivizēts)."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Izlaist"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivizēt"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Tālrunis ir aktivizēts."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problēma aktivizācijas laikā"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Izpildiet izteiktos norādījumus, līdz dzirdat, ka aktivizācija ir pabeigta."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Skaļrunis"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Uzgaidiet, līdz tālruņa programmēšana ir pabeigta."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmēšana neizdevās."</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Tālrunis tagad ir aktivizēts. Iespējams, būs nepieciešamas 15 minūtes, lai pakalpojums sāktu darboties."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Tālrunis netika aktivizēts."\n"Iespējams, ir jāatrod vieta ar labāku tīkla pārklājumu (pie loga vai ārpus telpām)."\n\n"Mēģiniet vēlreiz vai zvaniet uz klientu apkalpošanas dienestu, lai uzzinātu par citām iespējām."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"SPC PAPILDKĻŪMES"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Atpakaļ"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Mēģināt vēlreiz"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Tālāk"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Ievadītais ārkārtas atzvana režīms"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Ārkārtas atzvana režīms"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Datu savienojums ir atspējots."</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Nav datu savienojuma <xliff:g id="COUNT">%s</xliff:g> minūti"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g> minūti(-es) nav datu savienojuma."</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Tālrunis ārkārtas atzvana režīmā atradīsies <xliff:g id="COUNT">%s</xliff:g> minūti. Lietojot šo režīmu, nevar izmantot nevienu lietotni, kurai nepieciešams datu savienojums. Vai vēlaties iziet tūlīt?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Tālrunis ārkārtas atzvana režīmā atradīsies <xliff:g id="COUNT">%s</xliff:g> minūti(-es). Lietojot šo režīmu, nevar izmantot nevienu lietojumprogrammu, kurai nepieciešams datu savienojums. Vai vēlaties iziet tūlīt?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Atlasītā darbība nav pieejama, izmantojot ārkārtas atzvana režīmu. Tālrunis šajā režīmā atradīsies <xliff:g id="COUNT">%s</xliff:g> minūti. Vai vēlaties iziet tūlīt?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Atlasītā darbība nav pieejama, izmantojot ārkārtas atzvana režīmu. Tālrunis šajā režīmā atradīsies <xliff:g id="COUNT">%s</xliff:g> minūti(-es). Vai vēlaties iziet tūlīt?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Atlasītā darbība nav pieejama, veicot ārkārtas izsaukumu."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Notiek iziešana no ārkārtas atzvana režīma"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Jā"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nē"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Noraidīt"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Pakalpojums"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Iestatīšana"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nav iestatīts&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Citi zvanu iestatījumi"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Zvans, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontaktpersonas fotoattēls"</string>
+    <string name="goPrivate" msgid="865837794424530980">"pārslēgt uz privāto režīmu"</string>
+    <string name="selectContact" msgid="781975788478987237">"atlasīt kontaktpersonu"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Interneta zvanu iestatījumi"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Interneta zvanu (SIP) konti"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Konti"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Saņemt ienākošos zvanus"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Samazina akumulatora darbības mūža ilgumu"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Interneta zvanu izmantošana"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Izmantot interneta zvanus (tikai Wi-Fi tīklā)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Visiem zvaniem, ja ir pieejams datu tīkls"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Tikai interneta zvaniem"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Jautāt katram zvanam"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Visiem zvaniem"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Veikt zvanu"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Izmantot interneta zvanu kontu:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Vienmēr izmantot interneta zvanu veikšanai"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Varat mainīt pēc noklusējuma izmantoto interneta zvanu kontu, atverot ekrānu Tālrunis &gt; Iestatījumi &gt; Interneta zvanu iestatījumi &gt; Konti."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobilā tālruņa zvans"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Interneta zvans"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nav interneta zvanu konta"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Šajā tālrunī nav neviena interneta zvanu konta. Vai vēlaties pievienot kontu tūlīt?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Pievienot"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Pievienot kontu"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Noņemt kontu"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP konti"</string>
+    <string name="saving_account" msgid="52903398217017954">"Notiek konta saglabāšana..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Notiek konta noņemšana..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Saglabāt"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Atmest"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Profila aizvēršana"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Labi"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Aizvērt"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primārais konts. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Notiek statusa pārbaude..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Notiek reģistrācija..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Joprojām mēģina..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Zvani netiek saņemti"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Konta reģistrācija tika apturēta, jo nav interneta savienojuma."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Konta reģistrācija ir apturēta, jo nav Wi-Fi savienojuma."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Konta reģistrācija neizdevās."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Zvani tiek saņemti."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Konta reģistrācija neizdevās: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; vēlāk tā tiks veikta atkārtoti."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Konta reģistrācija neizdevās: nepareizs lietotājvārds vai parole."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Konta reģistrācija neizdevās: pārbaudiet servera nosaukumu."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Šis konts pašlaik tiek izmantots lietotnē <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Dati par SIP kontu"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Dati par SIP kontu"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Serveris"</string>
+    <string name="username_title" msgid="2479375923477682328">"Lietotājvārds"</string>
+    <string name="password_title" msgid="3323555249068171531">"Parole"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Attēlojamais vārds"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Izejošā starpniekservera adrese"</string>
+    <string name="port_title" msgid="5952939408078626657">"Porta numurs"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transporta veids"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Saites darbības pārbaudes ziņojuma sūtīšana"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Iestatīt kā primāro kontu"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Tiek izmantots izejošajiem zvaniem"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Neobligāti iestatījumi"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Autentifikācijai izmantotais lietotājvārds"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Autentifikācijai izmantotais lietotājvārds"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nav iestatītas&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Tāds pats kā lietotājvārds&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Neobligāti&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Pieskarieties, lai rādītu visu"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Pieskarieties, lai paslēptu visu"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Lauks <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ir jāaizpilda obligāti; tas nedrīkst būt tukšs."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Porta numuram ir jābūt skaitlim no 1000 līdz 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nav interneta savienojuma"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nav Wi-Fi savienojuma"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Lai veiktu interneta zvanu, vispirms pārbaudiet interneta savienojumu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Lai veiktu interneta zvanus, ir jābūt izveidotam savienojumam ar Wi-Fi tīklu (izmantojiet iestatījumus sadaļā Bezvadu savienojumi un tīkli)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Interneta zvani netiek atbalstīti"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automātiski"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Vienmēr sūtīt"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Balss zvani netiek atbalstīti"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Nevaru runāt. Kas gadījās?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tūlīt atzvanīšu."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Piezvanīšu vēlāk."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nevaru runāt. Vai piezvanīsi vēlāk?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Rakstīt savu…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Ātrās atbildes"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Ātro atbilžu rediģēšana"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Ātrā atbilde"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Atiestatīt noklus. lietotni"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Ziņojums nosūt. uz šādu tālr. nr.: <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"viens"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"divi"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"trīs"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"četri"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"pieci"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seši"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"septiņi"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"astoņi"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"deviņi"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"zvaigznīte"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nulle"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"cipara simbols"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"sastādīt numuru"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"atpakaļatkāpe"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Skaļrunis ir iespējots."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Zvana skaņa ir izslēgta."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Atbildēt"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Sūtīt īsziņu"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Noraidīt"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrozvans"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrozvans"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Signāls"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Noklusējuma signāls (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Tālruņa zvana signāls"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrēt zvanot"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Num. sast. tastatūras piesk. signāli"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Numuru sast. tast. autom. pabeigšana"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvana signāls un vibrācija"</string>
+</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
new file mode 100644
index 0000000..1108f37
--- /dev/null
+++ b/res/values-ms/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Data Mudah Alih"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Pendail Kecemasan"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Senarai FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Tidak diketahui"</string>
+    <string name="private_num" msgid="6713286113000232309">"Nombor peribadi"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefon awam"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ditunda"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Talian sibuk"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Rangkaian sibuk"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Tiada respons, tamat masa"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Pelayan tidak boleh dicapai"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nombor tidak dapat dihubungi"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nama pengguna atau kata laluan tidak betul"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Dipanggil dari luar rangkaian"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Ralat pelayan. Cuba lagi kemudian"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Tiada isyarat"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Melebihi had ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio dimatikan"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Tiada SIM atau ralat SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Di luar kawasan perkhidmatan"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Panggilan keluar dihadkan oleh FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Anda tidak boleh membuat panggilan keluar semasa sekatan panggilan dihidupkan."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Semua panggilan dihadkan oleh kawalan akses."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Panggilan kecemasan dihadkan oleh kawalan akses."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Panggilan biasa dihadkan oleh kawalan akses."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Nombor tidak sah"</string>
+    <string name="confCall" msgid="1904840547188336828">"Panggilan sidang"</string>
+    <string name="call_lost" msgid="317670617901479594">"Panggilan telah terputus."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Kod MMI dimulakan"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Kod USSD dijalankan..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kod MMI dibatalkan"</string>
+    <string name="cancel" msgid="5044513931633602634">"Batal"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Mesej USSD mestilah antara <xliff:g id="MIN_LEN">%d</xliff:g> dan <xliff:g id="MAX_LEN">%d</xliff:g> aksara. Sila cuba lagi."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Urus panggilan sidang"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Pembesar suara"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Alat dengar telefon mudah alih"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Set kepala berwayar"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Hantar nada berikut?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Menghantar nada"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Hantar"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ya"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Tidak"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Gantikan aksara bebas dengan"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nombor mel suara tiada"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Tidak ada nombor mel suara disimpan pada kad SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Tambah nombor"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Kad SIM anda telah dinyahsekat. Telefon anda dibuka kunci..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN buka kunci rangkaian SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Buka kunci"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Ketepikan"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Meminta dibukakan kunci rangkaian..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Permintaan dibukakan kunci rangkaian tidak berjaya."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Berjaya membuka kunci rangkaian."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Tetapan panggilan GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Tetapan panggilan CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nama Titik Capaian"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Tetapan rangkaian"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Mel suara"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Pengendali rangkaian"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Tetapan panggilan"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Tetapan tambahan"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Tetapan panggilan tambahan GSM sahaja"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Tetapan panggilan tambahan CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Tetapan panggilan tambahan CDMA sahaja"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Tetapan perkhidmatan rangkaian"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID Pemanggil"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Memuatkan tetapan…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nombor disembunyikan dalam panggilan keluar"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nombor yang ditunjukkan dalam panggilan keluar"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Gunakan tetapan lalai pengendali untuk memaparkan nombor saya dalam panggilan keluar"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Panggilan menunggu"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Semasa dalam panggilan, beritahu saya jika ada panggilan masuk"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Semasa dalam panggilan, beritahu saya jika ada panggilan masuk"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Tetapan pemajuan panggilan"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Pemajuan panggilan"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Sentiasa majukan"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Sentiasa gunakan nombor ini"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Memajukan semua panggilan"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Memajukan semua panggilan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nombor tidak tersedia"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Dilumpuhkan"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Majukan apabila sibuk"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nombor semasa sibuk"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Memajukan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Dilumpuhkan"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Pembawa anda tidak menyokong pelumpuhan pemajuan panggilan semasa telefon anda sibuk."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Majukan apabila tidak dijawab"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nombor apabila tidak dijawab"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Memajukan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Dilumpuhkan"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Pengendali anda tidak menyokong pelumpuhan pemajuan panggilan semasa telefon anda tidak menjawab."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Majukan apabila tidak dapat dihubungi"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nombor apabila tidak dapat dihubungi"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Memajukan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dilumpuhkan"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Pembawa anda tidak menyokong pelumpuhan pemajuan panggilan semasa telefon anda tidak boleh dihubungi."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Tetapan panggilan"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Ralat tetapan panggilan"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Membaca tetapan..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Mengemas kini tetapan..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Mengembalikan tetapan kepada sebelumnya..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Respons tidak dijangka daripada rangkaian."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Ralat Rangkaian atau kad SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Tetapan Nombor Pendailan Tetap apl Telefon anda dihidupkan. Hasilnya, beberapa ciri berkaitan panggilan tidak berfungsi."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Hidupkan radio sebelum melihat tetapan ini."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Dayakan"</string>
+    <string name="disable" msgid="7274240979164762320">"Lumpuhkan"</string>
+    <string name="change_num" msgid="239476305819844391">"Kemas kini"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Lalai rangkaian"</item>
+    <item msgid="7876195870037833661">"Sembunyikan nombor"</item>
+    <item msgid="1108394741608734023">"Tunjukkan nombor"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Nombor mel suara ditukar."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Tidak dapat menukar nombor mel suara."\n"Hubungi pembawa anda jika masalah ini berterusan."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Tidak boleh menukar nombor pemajuan."\n"Hubungi pembawa anda jika masalah ini berterusan."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Tidak boleh mengambil dan menyimpan tetapan nombor pemajuan semasa. "\n" Tukar kepada pembekal yang baru juga?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Tiada perubahan dibuat."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Pilih perkhidmatan mel suara"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Pembawa saya"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Tetapan rangkaian mudah alih"</string>
+    <string name="label_available" msgid="1181658289009300430">"Rangkaian sedia ada"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Mencari..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Tiada rangkaian ditemui."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Cari dalam rangkaian"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Ralat ketika mencari rangkaian."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Mendaftar di <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Kad SIM anda tidak membenarkan sambungan ke rangkaian ini."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Tidak dapat menyambung kepada rangkaian ini sekarang. Cuba lagi nanti."</string>
+    <string name="registration_done" msgid="495135664535876612">"Didaftarkan pada rangkaian."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Pilih pengendali rangkaian"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Cari semua rangkaian tersedia"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Pilih secara automatik"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Pilih rangkaian keutamaan secara automatik"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Pendaftaran automatik..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Mod Rangkaian"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Tukar mod pengendalian rangkaian"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Mod rangkaian diutamakan"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mod rangkaian pilihan: WCDMA diutamakan"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mod rangkaian pilihan: GSM sahaja"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mod rangkaian pilihan: WCDMA sahaja"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mod rangkaian pilihan: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mod rangkaian diutamakan: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mod rangkaian diutamakan: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mod rangkaian pilihan: CDMA sahaja"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mod rangkaian pilihan: EvDo sahaja"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Mod rangkaian pilihan: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Mod rangkaian pilihan: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Mod rangkaian pilihan: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Mod rangkaian pilihan: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Mod rangkaian pilihan: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Mod rangkaian pilihan: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo sahaja"</item>
+    <item msgid="1508557726283094448">"CDMA tanpa EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo auto"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA auto"</item>
+    <item msgid="7913148405605373434">"WCDMA sahaja"</item>
+    <item msgid="1524224863879435516">"GSM sahaja"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA diutamakan"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data didayakan"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Dayakan akses data melalui rangkaian Mudah Alih"</string>
+    <string name="roaming" msgid="8871412572928323707">"Perayauan data"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Sambung ke perkhidmatan data apabila melakukan perayauan"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Bersambung ke perkhidmatan data semasa melakukan perayauan"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Anda telah kehilangan kesambungan data kerana anda meninggalkan rangkaian rumah anda dengan data perayauan dimatikan."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Benarkan perayauan data? Anda boleh dikenakan caj perayauan yang tinggi!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Pilihan GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Pilihan CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Penggunaan data"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data yang digunakan dalam tempoh semasa"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Tempoh penggunaan data"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Dasar kadar data"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Ketahui lebih lanjut"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) daripada <xliff:g id="USED_2">%3$s</xliff:g> tempoh maksimum"\n"Tempoh berikutnya bermula dalam <xliff:g id="USED_3">%4$d</xliff:g> hari (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) daripada <xliff:g id="USED_2">%3$s</xliff:g> tempoh maksimum"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Melebihi maksimum <xliff:g id="USED_0">%1$s</xliff:g>"\n"Kadar data dikurangkan kepada <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ daripada kitaran telah berlalu"\n"Tempoh berikutnya bermula dalam <xliff:g id="USED_1">%2$d</xliff:g> hari (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Kadar data dikurangkan kepada <xliff:g id="USED">%1$d</xliff:g> Kb/s jika melebihi had penggunaan data"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Lagi maklumat mengenai dasar penggunaan data rangkaian mudah alih pembawa anda"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS Siaran Sel"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Siaran Sel"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS Siaran Sel didayakan"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS Siaran Sel dilumpuhkan"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Tetapan SMS Siaran Sel"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Siaran Kecemasan"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Siaran Kecemasan didayakan"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Siaran Kecemasan dilumpuhkan"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Pentadbiran"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Pentadbiran didayakan"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Pentadbiran dilumpuhkan"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Penyenggaraan"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Penyenggaraan didayakan"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Penyenggaraan dilumpuhkan"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Berita Umum"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Berita Perniagaan dan Kewangan"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Berita Sukan"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Berita Hiburan"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Tempatan"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Berita tempatan didayakan"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Berita tempatan dilumpuhkan"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Serantau"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Berita serantau didayakan"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Berita serantau dilumpuhkan"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nasional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Berita nasional didayakan"</string>
+    <string name="national_disable" msgid="326018148178601166">"Berita nasional dilumpuhkan"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Antarabangsa"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Berita antarabangsa didayakan"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Berita antarabangsa dilumpuhkan"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Bahasa"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Pilih bahasa berita"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Bahasa Inggeris"</item>
+    <item msgid="1151988412809572526">"Bahasa Perancis"</item>
+    <item msgid="577840534704312665">"Bahasa Sepanyol"</item>
+    <item msgid="8385712091143148180">"Bahasa Jepun"</item>
+    <item msgid="1858401628368130638">"Bahasa Korea"</item>
+    <item msgid="1933212028684529632">"Bahasa Cina"</item>
+    <item msgid="1908428006803639064">"Bahasa Ibrani"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Bahasa"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Cuaca Tempatan"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Cuaca Tempatan didayakan"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Cuaca Tempatan dilumpuhkan"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Laporan Lalu Lintas Kawasan"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Laporan Lalu Lintas Kawasan didayakan"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Laporan Lalu Lintas Kawasan dilumpuhkan"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Jadual Penerbangan Lapangan Terbang Tempatan"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Jadual Penerbangan Lapangan Terbang Tempatan didayakan"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Jadual Penerbangan Lapangan Terbang Tempatan dilumpuhkan"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restoran"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restoran didayakan"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restoran dilumpuhkan"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Penginapan"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Penginapan didayakan"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Penginapan dilumpuhkan"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Direktori Runcit"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Direktori Runcit didayakan"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Direktori Runcit dilumpuhkan"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Iklan"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Iklan didayakan"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Iklan dilumpuhkan"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Sebut Harga Saham"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Sebut Harga Saham didayakan"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Sebut Harga Saham dilumpuhkan"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Peluang Pekerjaan"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Peluang Pekerjaan didayakan"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Peluang Pekerjaan dilumpuhkan"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Perubatan, Kesihatan dan Hospital"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Perubatan, Kesihatan dan Hospital didayakan"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Perubatan, Kesihatan dan Hospital dilumpuhkan"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Berita Teknologi"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Berita Teknologi didayakan"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Berita Teknologi dilumpuhkan"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Berbilang kategori"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Berbilang kategori didayakan"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Berbilang kategori dilumpuhkan"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Gunakan rangkaian 2G sahaja"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Menjimatkan bateri"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Pilihan sistem"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Tukar mod perayauan CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Pilihan sistem"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Rumah sahaja"</item>
+    <item msgid="1205664026446156265">"Automatik"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Langganan CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Tukar antara RUIM/SIM dan NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"langganan"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktifkan peranti"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Penyediaan perkhidmatan data"</string>
+    <string name="fdn" msgid="7878832555095183202">"Nombor Dailan Tetap"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Senarai FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Pengaktifan FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Nombor Dailan Tetap didayakan"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Nombor Dailan Tetap dilumpuhkan"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Dayakan FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Lumpuhkan FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Tukar PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Lumpuhkan FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Dayakan FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Urus Nombor Dailan Tetap"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Tukar PIN untuk akses FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Urus senarai nombor telefon"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privasi suara"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Dayakan mod privasi dipertingkat"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Mod TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Tetapkan mod TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Autocuba Semula"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Dayakan mod Autocuba Semula"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Tambah kenalan"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Edit kenalan"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Padamkan kenalan"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Jenis PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nama"</string>
+    <string name="number" msgid="7905950798349903858">"Nombor"</string>
+    <string name="save" msgid="4094274636321939086">"Simpan"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Tambah nombor dailan tetap"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Menambahkan nombor dailan tetap..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Nombor dailan tetap ditambah."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Edit nombor dailan tetap"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Mengemaskinikan nombor dailan tetap..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Nombor dailan tetap dikemaskinikan"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Padam nombor dailan tetap"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Memadamkan nombor dailan tetap..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Nombor dailan tetap dipadamkan."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN tidak dikemaskini kerana anda telah menaip PIN yang salah."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN tidak dikemas kini kerana nombor tidak boleh melebihi 20 digit."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN tidak dikemaskini. PIN2 salah atau nombor telefon telah ditolak."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Membaca dari kad SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Tiada kenalan pada kad SIM anda."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Pilih kenalan untuk diimport"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Untuk mengimport kenalan dari kad SIM, mula-mula matikan mod Pesawat."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Dayakan/lumpuhkan PIN SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Tukar PIN SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN lama"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN Baru"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Sahkan PIN baru"</string>
+    <string name="badPin" msgid="8955102849303984935">"PIN lama yang anda taipkan tidak betul. Cuba lagi."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN yang anda taip tidak sepadan. Cuba lagi."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Taipkan PIN yang mengandungi 4 hingga 8 nombor."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Lumpuhkan PIN SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Dayakan PIN SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Sila tunggu..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN SIM didayakan."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN SIM dilumpuhkan."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN yang anda taipkan adalah salah."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN SIM berjaya ditukar."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Kata laluan salah, SIM dikunci! PUK2 diminta."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 lama"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 baru"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Sahkan PIN2 baru"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 yang anda taipkan salah. Cuba lagi."</string>
+    <string name="badPin2" msgid="1041576234483629991">"PIN2 lama yang anda taipkan tidak betul. Cuba lagi."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2 yang anda taip tidak sepadan. Cuba lagi."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Taipkan PIN2 yang mengandungi 4 hingga 8 nombor."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Taipkan PUK2 yang mengandungi 8 nombor."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 berjaya ditukar."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Taipkan kod PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Kata laluan tidak betul. Tukar PIN2 dan cuba lagi."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Kata laluan salah, SIM dikunci. PUK2 diminta."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Selesai"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Panggilan sidang <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nombor mel suara"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Mendail"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Mencuba semula"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Panggilan sidang"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Panggilan masuk"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Panggilan tamat"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ditunda"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Menamatkan panggilan"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Dalam panggilan"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Nombor saya ialah <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Mendail"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Panggilan tidak dijawab"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Panggilan tidak dijawab"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan tidak dijawab"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Panggilan tidak dijawab daripada <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Panggilan sedang berjalan"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Ditunda"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Panggilan masuk"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Mel suara baru"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Mel suara baru (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dail <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nombor mel suara tidak dikenali"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Tiada perkhidmatan"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Rangkaian pilihan (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) tidak tersedia"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Letakkan gagang"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Panggil balik"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesej"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Untuk membuat panggilan, matikan mod Pesawat terlebih dahulu."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Tidak didaftarkan pada rangkaian."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Rangkaian mudah alih tidak tersedia."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Panggilan tidak dihantar, tiada nombor yang sah dimasukkan."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Panggilan tidak dihantar."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Memulakan jujukan MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Perkhidmatan tidak disokong."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Tidak boleh bertukar panggilan."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Tidak boleh memisahkan panggilan."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Tidak boleh memindahkan panggilan."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Tidak boleh membuat panggilan sidang."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Tidak dapat menolak panggilan."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Tidak dapat melepaskan panggilan."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Panggilan internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan kecemasan"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Di luar kawasan perkhidmatan, mencuba lagi..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Panggilan tidak dihantar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nombor kecemasan!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Panggilan tidak dihantar. Dail nombor kecemasan!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Gunakan papan kekunci untuk mendail"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Tunda"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Tamat"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Pad dail"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Redam"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Tambah panggilan"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Gabung panggilan"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Silih"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Urus panggilan"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Urus persidangan"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Pgln video"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Import"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Import semua"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Mengimport Kenalan SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import daripada kenalan"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Alat pendengaran"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Hidupkan keserasian alat pendengaran"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY Dimatikan"</item>
+    <item msgid="3971695875449640648">"TTY Penuh"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Nada DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Tetapkan panjang nada DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Biasa"</item>
+    <item msgid="2883365539347850535">"Panjang"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mesej rangkaian"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktifkan telefon anda"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Panggilan khas perlu dibuat untuk mengaktifkan perkhidmatan telefon anda. "\n\n"Selepas menekan “Aktifkan”, dengar arahan yang diberi untuk mengaktifkan telefon anda."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Langkau pengaktifan?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Jika anda melangkau pengaktifan, anda tidak boleh membuat panggilan atau bersambung ke rangkaian data mudah alih (walaupun anda boleh bersambung ke rangkaian Wi-Fi). Sehingga anda mengaktifkan telefon anda, anda akan diminta untuk mengaktifkannya setiap kali anda menghidupkannya."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Langkau"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktifkan"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon diaktifkan."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Masalah dengan pengaktifan"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Ikuti arahan yang diucapkan sehingga anda mendengar bahawa pengaktifan selesai."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Pembesar suara"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Tunggu sementara telefon anda diprogramkan."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Pemprograman tidak berjaya"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefon anda kini sudah diaktifkan. Tempoh sehingga 15 minit mungkin diperlukan untuk perkhidmatan dimulakan."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefon anda tidak diaktifkan. "\n"Anda mungkin perlu mencari kawasan yang mempunyai liputan yang lebih baik (berhampiran tingkap atau di luar). "\n\n"Cuba lagi atau hubungi khidmat pelanggan untuk mendapatkan lagi pilihan."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"KEGAGALAN SPC BERLEBIHAN"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Kembali"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Cuba lagi"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Seterusnya"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Telah Memasuki Mod Panggil Balik Kecemasan"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mod Paggil Balik Kecemasan"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Sambungan data dilumpuhkan"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Tiada sambungan data selama <xliff:g id="COUNT">%s</xliff:g> minit"</item>
+    <item quantity="other" msgid="3122217344579273583">"Tiada sambungan data selama <xliff:g id="COUNT">%s</xliff:g> minit"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon akan berada dalam mod Panggilan Balik Kecemasan untuk <xliff:g id="COUNT">%s</xliff:g> minit. Semasa dalam mod ini tiada sebarang aplikasi yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon akan berada dalam mod Panggilan Balik Kecemasan untuk <xliff:g id="COUNT">%s</xliff:g> minit. Semasa dalam mod ini tiada sebarang aplikasi yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Tindakan yang dipilih tidak tersedia dalam mod Panggilan Balik Kecemasan. Telefon akan berada dalam mod ini untuk <xliff:g id="COUNT">%s</xliff:g> minit. Adakah anda mahu keluar sekarang?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Tindakan yang dipilih tidak tersedia dalam mod Panggilan Balik Kecemasan. Telefon akan berada dalam mod ini untuk <xliff:g id="COUNT">%s</xliff:g> minit. Adakah anda mahu keluar sekarang?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Tindakan yang dipilih tidak tersedia semasa berada dalam panggilan kecemasan."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Keluar Daripada mod Panggil Balik Kecemasan"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ya"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Tidak"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Ketepikan"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Perkhidmatan"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Persediaan"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Tidak ditetapkan&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Tetapan panggilan lain"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto kenalan"</string>
+    <string name="goPrivate" msgid="865837794424530980">"jadi tertutup"</string>
+    <string name="selectContact" msgid="781975788478987237">"pilih kenalan"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Tetapan panggilan Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Akaun panggilan Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Akaun"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Menerima panggilan masuk"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Mengurangkan hayat bateri"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Guna panggilan Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Guna panggilan Internet (Wi-Fi sahaja)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Untuk semua panggilan semasa rangkaian data tersedia"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Hanya untuk panggilan Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Tanya untuk setiap panggilan"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Untuk semua panggilan"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Membuat panggilan"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Gunakan akaun panggilan Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Sentiasa gunakan untuk membuat panggilan Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Anda boleh menukar akaun panggilan Internet mana untuk digunakan secara lalai daripada skrin Telefon &gt; Tetapan &gt; tetapan panggilan Internet &gt; Akaun."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Panggilan telefon bimbit"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Panggilan internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Tiada akaun panggilan Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Tidak ada akaun panggilan internet pada telefon ini. Adakah anda mahu menambah satu sekarang?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Tambah"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Tambah akaun"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Alih keluar akaun"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Akaun SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Menyimpan akaun..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Mengalih keluar akaun..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Simpan"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Buang"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Tutup profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Tutup"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Akaun utama. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Menyemak status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Mendaftar..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Masih mencuba..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Tidak menerima panggilan."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Pendaftaran akaun terhenti kerana tiada sambungan Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Pendaftaran akaun terhenti kerana tiada sambungan Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Pendaftaran akaun tidak berjaya."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Menerima panggilan"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Pendaftaran akaun tidak berjaya: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); akan mencuba kemudian"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Pendaftaran akaun tidak berjaya: Nama pengguna atau kata laluan salah."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Pendaftaran akaun tidak berjaya: Periksa nama pelayan."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Akaun ini sedang digunakan buat masa ini oleh aplikasi <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Butiran akaun SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Butiran akaun SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Pelayan"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nama pengguna"</string>
+    <string name="password_title" msgid="3323555249068171531">"Kata laluan"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nama paparan"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Alamat proksi keluar"</string>
+    <string name="port_title" msgid="5952939408078626657">"Nombor port"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Jenis pengangkutan"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Hantar pengekal"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Tetapkan sebagai akaun utama"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Digunakan untuk panggilan keluar"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Tetapan pilihan"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nama pengguna pengesahan"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nama pengguna yang digunakan untuk pengesahan"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Tidak ditetapkan&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Sama dengan nama pengguna&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Pilihan&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Sentuh untuk menunjukkan semua"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Sentuh untuk sembunyikan semua"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diperlukan dan tidak boleh dibiarkan kosong."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Nombor port harus berada dalam lingkungan 1000 dan 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Tiada sambungan Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Tiada sambungan Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Untuk membuat panggilan Internet, semak sambungan Internet anda terlebih dahulu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Anda perlu disambungkan kepada rangkaian Wi-Fi untuk membuat panggilan Internet (guna tetapan Wayarles &amp; Rangkaian)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Panggilan Internet tidak disokong"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatik"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Sentiasa hantar"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Panggilan suara tidak disokong"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Tak boleh berckp skrg. Apa cerita?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Saya akn segera hubungi awak nanti."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Saya akan hubungi awak kemudian."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Tdk blh berckp skg. Tel saya nanti?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Tulis sendiri…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respons pantas"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edit respons pantas"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Respons pantas"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Tetapkan semula apl lalai"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mesej dihantar ke <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"satu"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dua"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tiga"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"empat"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"lima"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"enam"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"tujuh"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"lapan"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"sembilan"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"bintang"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"sifar"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"paun"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"dail"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Telefon pembesar suara didayakan."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Panggilan diredam."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Jawapan"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Hantar SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Tolak"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Getar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Getar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Bunyi"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Bunyi lalai (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Nada dering telefon"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Bergetar apabila berdering"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Nada sentuh pad dail"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autolengkap pad pendail"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Bergetar"</string>
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
new file mode 100644
index 0000000..1ce561f
--- /dev/null
+++ b/res/values-nb/strings.xml
@@ -0,0 +1,637 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Nødnummer"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Faste nummer"</string>
+    <string name="unknown" msgid="6878797917991465859">"Ukjent"</string>
+    <string name="private_num" msgid="6713286113000232309">"Hemmelig nummer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefonkiosk"</string>
+    <string name="onHold" msgid="9035493194749959955">"Parkert"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Opptatt"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Nettverket er opptatt"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Ingen respons, tidsavbrudd"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Tjeneren kan ikke nås"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nummeret kan ikke nås"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Feil brukernavn eller passord"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Anrop utenfor nettverk"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Tjenerfeil. Prøv igjen senere."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Mangler signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-grense nådd"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radioen er av"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Ikke noe SIM-kort eller SIM-kortfeil"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Utenfor dekningsområde"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Utgående samtaler er begrenset til faste nummer."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Du kan ikke foreta utgående anrop når samtalesperre er på."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alle samtaler er begrenset av tilgangskontroll."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Nødsamtaler er begrenset av tilgangskontroll."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Vanlige samtaler er begrenset av tilgangskontroll."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ugyldig tall"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telefonmøte"</string>
+    <string name="call_lost" msgid="317670617901479594">"Samtalen er mistet."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-kode påbegynt"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kode kjører…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-kode avbrutt"</string>
+    <string name="cancel" msgid="5044513931633602634">"Avbrutt"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-meldingen må ha <xliff:g id="MIN_LEN">%d</xliff:g> til <xliff:g id="MAX_LEN">%d</xliff:g> tegn. Prøv på nytt."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer konferansesamtale"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Høyttaler"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Telefonens øreplugg"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Hodetelefon med kabel"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Send disse tonene?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Sendetoner"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Send"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nei"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Erstatt jokertegn med"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Mangler nummer til telefonsvarer"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Det er ikke lagret noe telefonsvarernummer på SIM-kortet."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Legg til nummer"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM-kortet er blitt avblokkert. Telefonen låses opp…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN-kode for å fjerne operatørlås"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Lås opp"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Skjul"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Spør om fjerning av operatørlås…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Fikk ikke fjerne operatørlås."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Operatørlåsen er fjernet."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Innstillinger for GSM-samtaler"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Innstillinger for CDMA-samtaler"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Navn på aksesspunkt"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Nettverksinnstillinger"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Telefonsvarer"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Svarer:"</string>
+    <string name="networks" msgid="8873030692174541976">"Nettoperatører"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Samtaleinnstillinger"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Flere innstillinger"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Flere GSM-spesifikke innstillinger"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Flere CDMA-innstillinger"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Flere CDMA-spesifikke innstillinger"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Nettverkstjenester"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Nummervisning"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Laster inn innstillinger …"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Skjul nummer ved utgående samtaler"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Vis nummer ved utgående samtaler"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"La operatøren bestemme om nummeret vises ved utgående samtaler"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Samtale venter"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Under samtaler, varsle om innkommende anrop"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Under samtaler, ikke varsle om innkommende anrop"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Innstillinger for viderekobling"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Viderekobling"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Alltid viderekoble"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Alltid bruk dette nummeret"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Viderekoble alle anrop"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Viderekobler alle anrop til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nummeret er ikke tilgjengelig"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Deaktivert"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Viderekoble når opptatt"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nummer ved opptattsignal"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Viderekobler til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Deaktivert"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operatøren støtter ikke deaktivering av viderekobling når telefonen er opptatt."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Viderekoble når det ikke svares"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nummer for når det ikke svares"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Viderekobler til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Deaktivert"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operatøren støtter ikke deaktivering av viderekobling når anropet ikke besvares."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Viderekoble ved manglende dekning"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nummer ved manglende dekning"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Viderekobler til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktivert"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatøren støtter ikke deaktivering av viderekobling når telefonen er utenfor dekning."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Samtaleinnstillinger"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Feil ved samtaleinnstillinger"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Leser innstillinger…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Oppdaterer innstillinger…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Tilbakestiller innstillinger ..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Uventet svar fra nettverket."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Nettverks- eller SIM-kort-feil."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Telefonappens innstilling for Faste numre er aktivert. Derfor fungerer ikke enkelte av ringefunksjonene."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Slå på radioen før du ser på disse innstillingene."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktiver"</string>
+    <string name="disable" msgid="7274240979164762320">"Deaktiver"</string>
+    <string name="change_num" msgid="239476305819844391">"Oppdater"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Nettverksstandard"</item>
+    <item msgid="7876195870037833661">"Skjul nummer"</item>
+    <item msgid="1108394741608734023">"Vis nummer"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Telefonsvarernummeret ble endret."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Kan ikke endre mobilsvarnummeret."\n"Kontakt operatøren din hvis dette problemet vedvarer."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Kunne ikke endre viderekoblingsnummeret."\n"Kontakt operatøren hvis dette problemet vedvarer."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Kunne ikke hente og lagre gjeldende innstillinger for viderekoblingsnummer."\n"Vil du likevel bytte til den nye leverandøren?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Ingen endringer ble utført."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Velg talemeldingsleverandør"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Min teleoperatør"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Innstillinger for mobilnettverk"</string>
+    <string name="label_available" msgid="1181658289009300430">"Tilgjengelige nettverk"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Søker…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Fant ingen nettverk."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Søk etter nettverk"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Det oppsto en feil under søking etter nettverk."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Kobler til <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM-kortet tillater ingen tilkobling til dette nettverket."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Kan ikke koble til dette nettverket akkurat nå. Prøv på nytt senere."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrert i nettverket."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Velg en nettverksoperatør"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Søk etter alle tilgjengelige nettverk"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Velg automatisk"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Velg foretrukket nettverk automatisk"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering"</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Nettverksmodus"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Bytt nettverksmodus"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Foretrukket nettverksmodus"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Foretrukket nettverksmodus: WCDMA foretrekkes"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Foretrukket nettverksmodus: kun GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Foretrukket nettverksmodus: kun WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Foretrukket nettverksmodus: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Foretrukket nettverksmodus: CMDA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Foretrukket nettverksmodus: CMDA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Foretrukket nettverksmodus: kun CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Foretrukket nettverksmodus: kun EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Foretrukket nettverksmodus: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Foretrukket nettverksmodus: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Foretrukket nettverksmodus: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Foretrukket nettverksmodus: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Foretrukket nettverksmodus: Overordnet"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Foretrukket nettverksmodus: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Overordnet"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Bare EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA uten EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatisk"</item>
+    <item msgid="5958053792390386668">"GSM / WCDMA automatisk"</item>
+    <item msgid="7913148405605373434">"Bare WCDMA"</item>
+    <item msgid="1524224863879435516">"Bare GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA foretrukket"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data aktivert"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktiver datatilgang i mobilnettverk"</string>
+    <string name="roaming" msgid="8871412572928323707">"Dataroaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Koble til datatjenester ved roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Koble til datatjenester ved roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Du har mistet datatilkoblingen fordi du forlot hjemmenettet med roaming avslått."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Tillat dataroaming? Dette kan koste mye penger!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS-innstillinger"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-innstillinger"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Databruk"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data som er brukt i inneværende periode"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Databrukperiode"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Retningslinjer for datahastighet"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Les mer"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> har overskredet maksimumsgrensen"\n"Datahastigheten er redusert til <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datahastigheten reduseres til <xliff:g id="USED">%1$d</xliff:g> Kb/s hvis databruken overskrider grenseverdien"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Les mer om mobiloperatørens retningslinjer for bruk av nettverksdata"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Kringkastings-SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Kringkastings-SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Kringkastings-SMS aktivert"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Kringkastings-SMS deaktivert"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Innstillinger for kringkastings-SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Nødkringkasting"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Nødkringkasting aktivert"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Nødkringkasting deaktivert"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativia"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativia aktivert"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administartivia aktivert"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Vedlikehold"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Vedlikehold aktivert"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Vedlikehold deaktivert"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Generelle nyheter"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Bedrifts- og finansnyheter"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportsnyheter"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Underholdningsnyheter"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokalnyheter aktivert"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokalnyheter deaktivert"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionalnyheter aktivert"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionalnyheter deaktivert"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nasjonal"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nasjonale nyheter aktivert"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nasjonale nyheter deaktivert"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Verden"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Verdensnyheter aktivert"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Verdensnyheter deaktivert"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Språk"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Velg nyhetsspråk"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engelsk"</item>
+    <item msgid="1151988412809572526">"Fransk"</item>
+    <item msgid="577840534704312665">"Spansk"</item>
+    <item msgid="8385712091143148180">"Japansk"</item>
+    <item msgid="1858401628368130638">"Koreansk"</item>
+    <item msgid="1933212028684529632">"Kinesisk"</item>
+    <item msgid="1908428006803639064">"Hebraisk"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Språk"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalt vær"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalt vær aktivert"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalt vær deaktivert"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Lokale trafikkmeldinger"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Lokale trafikkmeldinger aktivert"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Lokale trafikkmeldinger deaktivert"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Lokale flytider"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Lokale flytider aktivert"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Lokale flytider deaktivert"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restauranter"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restauranter aktivert"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restauranter deaktivert"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Losji"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Losji aktivert"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Losji deaktivert"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Varehandel"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Varehandel aktivert"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Varehandel deaktivert"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklame"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklame aktivert"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklame deaktivert"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aksjekurser"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aksjekurser aktivert"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aksjekurser deaktivert"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Jobbmuligheter"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Jobbmuligheter aktivert"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Jobbmuligheter deaktivert"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Helse og sykehus"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Helse og sykehus aktivert"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Helse og sykehus deaktivert"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Teknologinyheter"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Teknologinyheter aktivert"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Teknologinyheter deaktivert"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multikategori"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multikategori aktivert"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multikategori deaktivert"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Bruk kun 2G-nettverk"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Sparer batteri"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Systemvalg"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Velg streifingsmodus for CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Systemvalg"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Kun hjemmenett"</item>
+    <item msgid="1205664026446156265">"Automatisk"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-abonnement"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Bytt mellom RUIM/SIM og NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonnement"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktiver enhet"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Konfigurer datatjeneste"</string>
+    <string name="fdn" msgid="7878832555095183202">"Faste nummer"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Liste over faste nummer"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivering av faste nummer"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Kun faste nummer kan ringes"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Faste nummer er deaktivert"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Aktiver faste nummer"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Slå av faste nummer"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Endre PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Slå av faste nummer"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Aktiver faste nummer"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Vedlikehold liste over faste nummer"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Endre PIN-kode for å styre faste nummer"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Endre liste over telefonnummer"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Personvern for Google Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Aktiver forbedret personvern"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-modus"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Velg TTY-modus"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatisk nytt forsøk"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktiver Automatisk nytt forsøk"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Legg til kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Rediger kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Fjern kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Skriv inn PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Navn"</string>
+    <string name="number" msgid="7905950798349903858">"Num,er"</string>
+    <string name="save" msgid="4094274636321939086">"Lagre"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Legg til programmert telefonnummer"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Legger til programmert telefonnummer ..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Programmert telefonnummer er lagt til."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Rediger programmert telefonnummer"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Oppdaterer programmert telefonnummer ..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Programmert telefonnummer er oppdatert."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Slett programmert telefonnummer"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Sletter programmert telefonnummer ..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Programmert telefonnummer er slettet."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN er ikke oppdatert fordi du skrev inn feil PIN-kode."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN ble ikke oppdatert fordi tallet ikke kan overstige 20 sifre."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Fast nummer ble ikke oppdatert. PIN2 var feil, eller telefonnummeret ble avvist."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Leser fra SIM-kort…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Ingen kontakter på SIM-kortet."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Velg kontakter som skal importeres"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Du må slå av flymodus før du kan importere kontakter fra SIM-kortet."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Slå av/på PIN-kode for SIM-kort"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Endre PIN-kode for SIM-kort"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM-kortets PIN-kode:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Gammel PIN-kode"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Ny PIN-kode"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Bekreft ny PIN-kode"</string>
+    <string name="badPin" msgid="8955102849303984935">"Den gamle personlige koden du skrev inn, er feil. Prøv på nytt."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"De personlige kodene du skrev inn, stemmer ikke overens. Prøv på nytt."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Skriv inn en PIN-kode som er fra 4 til 8 siffer."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Slå av PIN-kode for SIM-kort"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Slå på PIN-kode for SIM-kort"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Vent litt…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Personlig kode for SIM-kort aktivert."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Personlig kode for SIM-kort deaktivert."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Den personlige koden du skrev inn, er feil."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Personlig kode for SIM-kort er endret."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Galt passord, SIM-kortet er låst! Skriv inn PUK2-koden."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2-kode"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Gammel PIN2-kode"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Ny PIN2-kode"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Bekreft ny PIN2-kode"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2-koden du skrev inn, er feil. Prøv på nytt."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Den gamle personlige koden (PIN2) du skrev inn, er feil. Prøv på nytt."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2-kodene du skrev inn, stemmer ikke overens. Prøv på nytt."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Skriv inn en PIN2-kode som er mellom 4 og 8 siffer."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Skriv inn en PUK2-kode som er 8 siffer."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Personlig kode (PIN2) er endret"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Skriv inn PUk2-kode"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Passordet er feil. Endre PIN2 og prøv på nytt."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Feil passord – SIM-kortet er låst. Bruk PUK2 for å låse opp."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Ferdig"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telefonmøte <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nummer til telefonsvarer"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Ringer"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Prøver på nytt"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonmøte"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Innkommende anrop"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Samtale avsluttet"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Parkert"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Legger på"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Samtale pågår"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Nummeret mitt er <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Slår nummeret"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Tapt anrop"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Tapte anrop"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> tapte anrop"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Tapt anrop fra <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Pågående samtale"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Parkert"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Innkommende samtale"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nye beskjeder på telefonsvarer"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nye beskjeder på telefonsvarer (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Ring <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Mangler nummer til telefonsvarer"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Ingen tjeneste"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Valgt nettverk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ikke tilgjengelig"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Legg på"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Ring tilbake"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Melding"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"For å ringe, slå av flymodus først."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ikke registrert på nettverket."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilnettverket er ikke tilgjengelig."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Samtalen ble ikke opprettet, mangler eller ugyldig nummer."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Samtalen ble ikke opprettet."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Begynner MMI-sekvens…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Ustøttet tjeneste."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Kan ikke bytte samtale."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Kan ikke skille samtale."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Kan ikke overføre samtale."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Kan ikke opprette telefonmøte."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Kan ikke avvise anrop."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Kan ikke legge på."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internett-anrop"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødanrop"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Slår på radio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Utenfor dekningsområde, prøver igjen…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Anrop ikke utført. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et nødnummer!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Anrop ikke foretatt. Ring et nødnummer!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Bruk tastaturet for å ringe"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Avslutt"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Talltastatur"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Lyd av"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Tilføy anrop"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Slå sammen samtaler"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Bytt"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Administrer samtaler"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Administ. konferanse"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Lyd"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videosamtale"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importer"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importer alle"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importerer kontakter fra SIM-kortet"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer fra kontakter"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Høreapparater"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Slå på kompatibilitet med høreapparat"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY av"</item>
+    <item msgid="3971695875449640648">"TTY full"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-toner"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Velg lengde på DTMF-toner"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Vanlig"</item>
+    <item msgid="2883365539347850535">"Lang"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Nettverksmelding"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktiver telefonen din"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Det må foretas en spesifikk oppringning for at telefontjenesten skal aktiveres. "\n\n"Trykk «Aktiver», og lytt deretter til instruksjonene for å aktivere telefonen."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Hopp over aktivering?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Hvis du hopper over aktiveringen, kan du ikke foreta anrop eller koble til mobildatanettverk (du kan imidlertid koble til trådløse nettverk). Du blir bedt om å aktivere hver gang du slår på telefonen, inntil aktivering er fullført."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Hopp over"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiver"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonen er aktivert."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problemer med aktivering"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Følg taleinstruksjonene inntil du får beskjed om at aktiveringen er fullført."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Høyttaler"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Vent mens telefonen programmeres."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmeringen mislyktes"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefonen din er aktivert. Det kan ta opptil 15 minutter før tjenestene er i gang."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonen ble ikke aktivert."\n"Prøv å finne et område med bedre dekning (ved et vindu eller utendørs)."\n\n"Prøv på nytt, eller ring kundetjenesten for å få flere alternativer."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"Omfattende SPC-feil"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Tilbake"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Prøv igjen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Neste"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Startet modusen nødsamtale-tilbakeringing"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modusen nødsamtale-tilbakeringing"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Datatilkobling deaktivert"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Ingen datatilkobling i <xliff:g id="COUNT">%s</xliff:g> minutt"</item>
+    <item quantity="other" msgid="3122217344579273583">"Ingen datatilkobling i <xliff:g id="COUNT">%s</xliff:g> minutter"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefonen kommer til å være i nødsamtalemodus i <xliff:g id="COUNT">%s</xliff:g> minutt. Ingen apper som bruker en datatilkobling, kan brukes i denne modusen. Vil du avslutte nå?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefonen kommer til å være i nødsamtalesmodus i <xliff:g id="COUNT">%s</xliff:g> minutter. Ingen apper som bruker en datatilkobling, kan brukes i denne modusen. Vil du avslutte nå?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Den valgte handlingen er ikke tilgjengelig i nødsamtalemodus. Telefonen kommer til å være i denne modusen i <xliff:g id="COUNT">%s</xliff:g> minutt(er). Vil du avslutte nå?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Den valgte handlingen er ikke tilgjengelig i nødsamtalemodus. Telefonen kommer til å være i denne modusen i <xliff:g id="COUNT">%s</xliff:g> minutter. Vil du avslutte nå?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Den valgte handlingen er ikke mulig under en nødsamtale."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Avslutter modusen nødsamtale-tilbakeringing"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nei"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Lukk"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Tjeneste"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfigurering"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ikke angitt&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Andre ringeinnstillinger"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontaktbilde"</string>
+    <string name="goPrivate" msgid="865837794424530980">"aktiver privat samtale"</string>
+    <string name="selectContact" msgid="781975788478987237">"velg kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Innstillinger for Internett-anrop"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"SIP-kontoer (Internett-anrop)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Kontoer"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Motta innkommende anrop"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduserer batterilevetiden"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Bruk Internett-anrop"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Bruk konto for Internett-anrop (kun Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"For alle anrop hvor datanettverk er tilgjengelige"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Kun for Internett-anrop"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Spør ved alle anrop"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Bruk ved alle anrop"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Foreta anrop"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Bruk konto for Internett-anrop:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Standardvalg for Internett-anrop"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Du kan endre hvilken konto for Internett-anrop som skal brukes som standard, under Telefon &gt; Innstillinger &gt; Innstillinger for Internett-anrop &gt; Kontoer."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobiltelefonanrop"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internett-anrop"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Ingen konto for Internett-anrop"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Det er ingen konto for Internett-anrop på denne telefonen. Vil du legge til en nå?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Legg til"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Legg til konto"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Fjern konto"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-kontoer"</string>
+    <string name="saving_account" msgid="52903398217017954">"Lagrer konto …"</string>
+    <string name="removing_account" msgid="7183999896088628100">"Fjerner konto …"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Lagre"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Forkast"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Lukk profilen"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Lukk"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primærkonto. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Kontrollerer status ..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrerer …"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Prøver fortsatt …"</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Mottar ikke anrop."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Kontoregistreringen stoppet på grunn av manglende Internett-tilkobling."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Kontoregistreringen stoppet på grunn av manglende Wi-Fi-tilkobling."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Kontoregistrering mislyktes."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Mottar anrop."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Kontoregistrering mislyktes: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); prøver på nytt senere"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Kontoregistrering mislyktes: feil brukernavn eller passord."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Kontoregistrering mislyktes: Kontroller tjenernavnet."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Denne kontoen er for øyeblikket i bruk av appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Kontoinnstillinger for SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Kontoinnstillinger for SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Tjener"</string>
+    <string name="username_title" msgid="2479375923477682328">"Brukernavn"</string>
+    <string name="password_title" msgid="3323555249068171531">"Passord"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Visningsnavn"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adresse for utgående mellomtjener"</string>
+    <string name="port_title" msgid="5952939408078626657">"Portnummer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transporttype"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Send hold-aktiv-meldinger"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Angi som hovedkonto"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Brukt til utgående anrop"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Valgfrie innstillinger"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Brukernavn for autentisering"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Brukernavn brukes til autentisering"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Ikke angitt&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Samme som brukernavn&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Valgfritt&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"Trykk for å vise alle"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"Trykk for å skjule alle"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> er obligatorisk. Feltet kan ikke være tomt."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Portnummeret må være mellom 1000 og 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Ingen Internett-tilkobling"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Ingen Wi-Fi-tilkobling"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Kontroller Internett-tilkoblingen før du foretar et Internett-anrop."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Du må være koblet til et Wi-Fi-nettverk for å foreta Internett-anrop (gå til innstillingene Trådløst og nettverk)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internett-anrop håndteres ikke"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatisk"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Send alltid"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Taleanrop støttes ikke"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan ikke snakke nå. Hva skjer?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Jeg ringer deg straks tilbake."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Jeg ringer deg senere."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ikke nå. Ringer du meg senere?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Skriv ditt eget"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Hurtigsvar"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Rediger hurtigsvar"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Hurtigsvar"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Tilbakestill standardappen"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Melding er sendt til <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"en"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"to"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tre"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"fire"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"fem"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seks"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"syv"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"åtte"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"ni"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"stjerne"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"null"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"firkant"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"ring"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"tilbaketast"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Høyttaler er aktivert."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Samtalelyd er kuttet."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Svar"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Send tekstmelding"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Avslå"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrering"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrering"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Lyd"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefonringetone"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrering når det ringer"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tastetoner for tastatur"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autofullf. for talltast."</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibrering"</string>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
new file mode 100644
index 0000000..40532ee
--- /dev/null
+++ b/res/values-nl/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobiele gegevens"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefoon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Kiezer noodoproep"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefoon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN-lijst"</string>
+    <string name="unknown" msgid="6878797917991465859">"Onbekend"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privénummer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Betaaltelefoon"</string>
+    <string name="onHold" msgid="9035493194749959955">"In de wacht"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Lijn is bezet"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Netwerk bezet"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Geen reactie, time-out"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server niet bereikbaar"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nummer niet bereikbaar"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Ongeldige gebruikersnaam of wachtwoord"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Gebeld van buiten het netwerk"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Fout met server. Probeer het later opnieuw."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Geen kiestoon"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-limiet overschreden"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio uit"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Geen simkaart of fout met simkaart"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Buiten servicegebied"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Uitgaande oproepen worden beperkt door FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Uitgaande oproepen zijn niet mogelijk als de functie voor oproepen blokkeren is ingeschakeld."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alle oproepen worden beperkt door toegangsbeheer."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Noodoproepen worden beperkt door toegangsbeheer."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normale oproepen worden beperkt door toegangsbeheer."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ongeldig getal"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telefonische vergadering"</string>
+    <string name="call_lost" msgid="317670617901479594">"De verbinding is verbroken."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-code gestart"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-code uitvoeren..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-code geannuleerd"</string>
+    <string name="cancel" msgid="5044513931633602634">"Annuleren"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-bericht moet tussen <xliff:g id="MIN_LEN">%d</xliff:g> en <xliff:g id="MAX_LEN">%d</xliff:g> tekens lang zijn. Probeer het opnieuw."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonische vergadering beheren"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Luidspreker"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Oortelefoon van handset"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Bedrade headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"De volgende tonen verzenden?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Nummers verzenden"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Verzenden"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nee"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Jokerteken vervangen door"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Voicemailnummer ontbreekt"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Er is geen voicemailnummer op de SIM-kaart opgeslagen."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Nummer toevoegen"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Uw SIM-kaart is gedeblokkeerd. Uw telefoon wordt ontgrendeld..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN-code voor ontgrendelen SIM-netwerk"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Ontgrendelen"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Negeren"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Verzoek om ontgrendelen netwerk..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Verzoek voor ontgrendelen netwerk mislukt."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Het netwerk is ontgrendeld."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM-oproepinstellingen"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-oproepinstellingen"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Namen toegangspunten"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Netwerkinstellingen"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mobiele providers"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Oproepinstellingen"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Aanvullende instellingen"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Aanvullende oproepinstellingen voor alleen GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Aanvullende CDMA-oproepinstellingen"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Aanvullende oproepinstellingen voor alleen CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Instellingen voor netwerkservice"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Beller-id"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Instellingen laden…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nummer verborgen bij uitgaande oproepen"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer weergegeven bij uitgaande oproepen"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Gebruik de standaard operatorinstellingen om mijn nummer bij uitgaande oproepen weer te geven"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Wisselgesprek"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Inkomende oproepen melden als ik aan het bellen ben"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Inkomende oproepen melden als ik aan het bellen ben"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Instellingen voor doorschakelen van oproepen"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Oproep doorschakelen"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Altijd doorschakelen"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Altijd dit nummer gebruiken"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Alle oproepen doorschakelen"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Alle oproepen doorschakelen naar <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Het telefoonnummer is niet beschikbaar"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Uitgeschakeld"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Doorsch. bij in gesprek"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nummer indien in gesprek"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Doorschakelen naar <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Uitgeschakeld"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Uw provider biedt geen ondersteuning voor het uitschakelen van oproepdoorschakelingen wanneer uw telefoon bezet is."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Doorsch. bij onbeantwoord"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nummer indien onbeantwoord"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Doorschakelen naar <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Uitgeschakeld"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Uw provider biedt geen ondersteuning voor het uitschakelen van oproepdoorschakelingen wanneer uw telefoon niet wordt opgenomen."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Doorsch. bij onbereikbaar"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nummer indien onbereikbaar"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Doorschakelen naar <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Uitgeschakeld"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Uw provider biedt geen ondersteuning voor het uitschakelen van oproepdoorschakelingen wanneer uw telefoon niet bereikbaar is."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Oproepinstellingen"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Fout met oproepinstellingen"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Instellingen lezen..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Instellingen bijwerken..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Instellingen terugzetten..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Onverwachte reactie van netwerk."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Netwerk- of SIM-kaartfout."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"De instelling \'Vaste nummers\' in uw app Telefoon is ingeschakeld. Hierdoor werken sommige oproepgerelateerde functies niet."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Schakel de radio in voordat u deze instellingen bekijkt."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Inschakelen"</string>
+    <string name="disable" msgid="7274240979164762320">"Uitschakelen"</string>
+    <string name="change_num" msgid="239476305819844391">"Bijwerken"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Netwerkstandaard"</item>
+    <item msgid="7876195870037833661">"Nummer verbergen"</item>
+    <item msgid="1108394741608734023">"Nummer weergeven"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Voicemailnummer gewijzigd."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Kan het voicemailnummer niet wijzigen."\n"Neem contact op met uw provider als dit probleem zich blijft voordoen."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Kan het doorschakelnummer niet wijzigen."\n"Neem contact op met uw provider als dit probleem zich blijft voordoen."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Kan huidige instellingen voor doorschakelnummer niet ophalen en opslaan."\n"Toch overschakelen naar de nieuwe provider?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Er zijn geen wijzigingen aangebracht."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Service voor voicemail selecteren"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mijn provider"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Instellingen mobiel netwerk"</string>
+    <string name="label_available" msgid="1181658289009300430">"Beschikbare netwerken"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Zoeken..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Geen netwerken gevonden."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Netwerken zoeken"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Fout tijdens zoeken naar netwerken."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registreren op <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Uw simkaart staat geen verbinding met dit netwerk toe."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Kan nu geen verbinding maken met dit netwerk. Probeer het later opnieuw."</string>
+    <string name="registration_done" msgid="495135664535876612">"Geregistreerd op netwerk."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Een mobiele provider kiezen"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Alle beschikbare netwerken zoeken"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Automatisch kiezen"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Voorkeursnetwerk automatisch selecteren"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatische registratie..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Netwerkmodus"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"De netwerkgebruiksmodus wijzigen"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Voorkeursnetwerkmodus"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Voorkeursnetwerkmodus: voorkeur voor WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Voorkeursnetwerkmodus: alleen GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Voorkeursnetwerkmodus: alleen WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Voorkeursnetwerkmodus: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Voorkeursnetwerkmodus: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Voorkeursnetwerkmodus: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Voorkeursnetwerkmodus: alleen CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Voorkeursnetwerkmodus: alleen EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Voorkeursnetwerkmodus: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Voorkeursnetwerkmodus: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Voorkeursnetwerkmodus: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Voorkeursnetwerkmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Voorkeursnetwerkmodus: Wereldwijd"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Voorkeursnetwerkmodus: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Wereldwijd"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Alleen EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA zonder EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatisch"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automatisch"</item>
+    <item msgid="7913148405605373434">"Alleen WCDMA"</item>
+    <item msgid="1524224863879435516">"Alleen GSM"</item>
+    <item msgid="3817924849415716259">"Voorkeur voor GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Gegevenstoegang aan"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Gegevenstoegang via mobiel netwerk inschakelen"</string>
+    <string name="roaming" msgid="8871412572928323707">"Gegevensroaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Verbinding maken met gegevensservices tijdens roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Verbinding maken met gegevensservices tijdens roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"De gegevensverbinding is verbroken, omdat u uw thuisnetwerk heeft verlaten terwijl gegevensroaming was uitgeschakeld."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Gegevensroaming toestaan? Er kunnen hoge roamingkosten in rekening worden gebracht."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-/UMTS-opties"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-opties"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Gegevensgebruik"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Gegevensgebruik in huidige periode"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Periode voor gegevensgebruik"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Beleid voor gegevenssnelheid"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Meer informatie"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) van periodemaximum van <xliff:g id="USED_2">%3$s</xliff:g>"\n"De volgende periode start over<xliff:g id="USED_3">%4$d</xliff:g> dagen (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) van periodemaximum van <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Maximum van <xliff:g id="USED_0">%1$s</xliff:g> overschreden"\n"Gegevenssnelheid verlaagd tot <xliff:g id="USED_1">%2$d</xliff:g> kB/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">" ٪<xliff:g id="USED_0">%1$d</xliff:g>van cyclus verstreken"\n"De volgende periode start over <xliff:g id="USED_1">%2$d</xliff:g> dagen (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Gegevenssnelheid wordt verlaagd tot <xliff:g id="USED">%1$d</xliff:g> kB/s als de limiet voor gegevensgebruik wordt overschreden"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Meer informatie over het beleid voor gegevensgebruik van uw mobiele provider"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Infodienstbericht"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Infodienstbericht"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS Infodienstbericht ingeschakeld"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Infodienstbericht uitgeschakeld"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Instellingen voor SMS infodienstberichten"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Bericht bij noodsituatie"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Bericht bij noodsituatie ingeschakeld"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Bericht bij noodsituatie uitgeschakeld"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Beheer"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Beheer ingeschakeld"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Beheer uitgeschakeld"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Onderhoud"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Onderhoud ingeschakeld"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Onderhoud uitgeschakeld"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Algemeen nieuws"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Zakelijk en financieel nieuws"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportnieuws"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Amusementsnieuws"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokaal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokaal nieuws ingeschakeld"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokaal nieuws uitgeschakeld"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionaal"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionaal nieuws ingeschakeld"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionaal nieuws uitgeschakeld"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Binnenlands"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Binnenlands nieuws ingeschakeld"</string>
+    <string name="national_disable" msgid="326018148178601166">"Binnenlands nieuws uitgeschakeld"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Buitenlands"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Buitenlands nieuws ingeschakeld"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Buitenlands nieuws uitgeschakeld"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Taal"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"De taal voor het nieuws selecteren"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engels"</item>
+    <item msgid="1151988412809572526">"Frans"</item>
+    <item msgid="577840534704312665">"Spaans"</item>
+    <item msgid="8385712091143148180">"Japans"</item>
+    <item msgid="1858401628368130638">"Koreaans"</item>
+    <item msgid="1933212028684529632">"Chinees"</item>
+    <item msgid="1908428006803639064">"Hebreeuws"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Talen"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokaal weerbericht"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokaal weerbericht ingeschakeld"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokaal weerbericht uitgeschakeld"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Verkeersberichten"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Verkeersberichten ingeschakeld"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Verkeersberichten uitgeschakeld"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Vluchttijden voor lokaal vliegveld"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Vluchttijden voor lokaal vliegveld ingeschakeld"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Vluchttijden voor lokaal vliegveld uitgeschakeld"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants ingeschakeld"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants uitgeschakeld"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Overnachtingen"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Overnachtingen ingeschakeld"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Overnachtingen uitgeschakeld"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Winkeloverzicht"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Winkeloverzicht ingeschakeld"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Winkeloverzicht uitgeschakeld"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Advertenties"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Advertenties ingeschakeld"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Advertenties uitgeschakeld"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aandelenkoersen"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aandelenkoersen ingeschakeld"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aandelenkoersen uitgeschakeld"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Vacatures"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Vacatures ingeschakeld"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Vacatures uitgeschakeld"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medisch, gezondheid en ziekenhuis"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medisch, gezondheid en ziekenhuis ingeschakeld"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medisch, gezondheid en ziekenhuis uitgeschakeld"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologienieuws"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Technologienieuws ingeschakeld"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Technologienieuws uitgeschakeld"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Meerdere categorieën"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Meerdere categorieën ingeschakeld"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Meerdere categorieën uitgeschakeld"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Alleen 2G-netwerken"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Energiespaarstand"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Systeem selecteren"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"De CDMA-roamingmodus wijzigen"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Systeem selecteren"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Alleen thuis"</item>
+    <item msgid="1205664026446156265">"Automatisch"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-abonnement"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Schakelen tussen RUIM/SIM en NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonnement"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Apparaat activeren"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Gegevensservice instellen"</string>
+    <string name="fdn" msgid="7878832555095183202">"Vaste nummers"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN-lijst"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN-activering"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Vaste nummers zijn ingeschakeld"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Vaste nummers zijn uitgeschakeld"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"FDN inschakelen"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"FDN uitschakelen"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2-code wijzigen"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN uitschakelen"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN inschakelen"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Vaste nummers beheren"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"PIN-code voor FDN-toegang wijzigen"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Lijst met telefoonnummers beheren"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Spraakprivacy"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Geavanceerde privacymodus inschakelen"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-modus"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY-modus instellen"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatisch opnieuw proberen"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Modus voor automatisch opnieuw proberen inschakelen"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Contact toevoegen"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Contact bewerken"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Contact verwijderen"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Type PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Naam"</string>
+    <string name="number" msgid="7905950798349903858">"Nummer"</string>
+    <string name="save" msgid="4094274636321939086">"Opslaan"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Vast nummer toevoegen"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Vast nummer toevoegen..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Vast nummer toegevoegd."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Vast nummer bewerken"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Vast nummer bijwerken..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Vast nummer bijgewerkt."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Vast nummer verwijderen"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Vast nummer verwijderen..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Vast nummer verwijderd."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN is niet bijgewerkt omdat u een onjuiste pincode heeft ingevoerd."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN is niet bijgewerkt omdat het nummer niet langer kan zijn dan 20 tekens."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN is niet bijgewerkt. De PIN2 was onjuist of het telefoonnummer is geweigerd."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Lezen vanaf SIM-kaart..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Geen contacten op uw SIM-kaart."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Contacten selecteren om te importeren"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Voor het importeren van contacten vanaf de simkaart moet u eerst de vliegmodus uitschakelen."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM PIN-code in-/uitschakelen"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM PIN-code wijzigen"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN-code:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Oude PIN-code"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nieuwe PIN-code"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Nieuwe PIN-code bevestigen"</string>
+    <string name="badPin" msgid="8955102849303984935">"De oude pincode die u heeft ingevoerd, is onjuist. Probeer het opnieuw."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"De pincodes die u heeft ingevoerd, komen niet overeen. Probeer het opnieuw."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Voer een PIN-code van 4 tot 8 cijfers in."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM PIN-code uitschakelen"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PIN-code inschakelen"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Een ogenblik geduld..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Pincode voor simkaart ingeschakeld"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Pincode voor simkaart uitgeschakeld."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"De pincode die u heeft ingevoerd, is onjuist."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Pincode voor simkaart gewijzigd."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Wachtwoord onjuist, SIM-kaart is vergrendeld! PUK2-code vereist."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Oude PIN2-code"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nieuwe PIN2-code"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Nieuwe PIN2-code bevestigen"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"De PUK2-code die u heeft ingevoerd, is onjuist. Probeer het opnieuw."</string>
+    <string name="badPin2" msgid="1041576234483629991">"De oude PIN2-code die u heeft ingevoerd, is onjuist. Probeer het opnieuw."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"De PIN2-codes die u heeft ingevoerd, komen niet overeen. Probeer het opnieuw."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Voer een PIN2-code van 4 tot 8 cijfers in."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Voer een PUK2-code van 8 cijfers in."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2-code gewijzigd."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2-code invoeren"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Wachtwoord onjuist, wijzig de PIN2-code en probeer het opnieuw."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Wachtwoord onjuist, simkaart is vergrendeld. PUK2-code vereist."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gereed"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telefonische vergadering <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Voicemailnummer"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Kiezen"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Opnieuw proberen"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonische vergadering"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Inkomende oproep"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Oproep beëindigd"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"In de wacht"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Ophangen"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Actieve oproep"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mijn nummer is <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Kiezen"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Gemiste oproep"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Gemiste oproepen"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> gemiste oproepen"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Gemiste oproep van <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Actieve oproep"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"In de wacht"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Inkomende oproep"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nieuwe voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nieuwe voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> bellen"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemailnummer onbekend"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Geen service"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Geselecteerd netwerk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) niet beschikbaar"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Ophangen"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Terugbellen"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Bericht"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Als u wilt bellen, moet u eerst de Vliegmodus uitschakelen."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Niet geregistreerd op netwerk."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobiel netwerk niet beschikbaar."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Oproep niet verzonden, geen geldig nummer ingevoerd."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Oproep niet verzonden."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-reeks starten..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Niet-ondersteunde service."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Kan niet overschakelen tussen oproepen."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Kan oproep niet scheiden."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Kan oproep niet doorschakelen."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Telefonische vergaderingen niet mogelijk."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Kan oproep niet weigeren."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Kan oproepen niet vrijgeven."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetoproep"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio aanzetten..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Buiten servicegebied, nieuwe poging..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Oproep niet verzonden. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is geen alarmnummer!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Oproep niet verzonden. Kies een alarmnummer!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Toetsen gebruiken om te bellen"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"In de wacht"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Beëindigen"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Toetsenblok"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Dempen"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Oproep toevoegen"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Oproepen samenvoegen"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Wisselen"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gesprekken beheren"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Conferentie beheren"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videogesp."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importeren"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Alles importeren"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM-contacten importeren"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importeren uit contacten"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Gehoorapparaten"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Compatibiliteit voor gehoorapparaat inschakelen"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY uit"</item>
+    <item msgid="3971695875449640648">"TTY vol"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-tonen"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"De lengte van DTMF-tonen instellen"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normaal"</item>
+    <item msgid="2883365539347850535">"Lang"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Netwerkbericht"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Uw telefoon activeren"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"U moet een speciale oproep uitvoeren om uw telefoonservice te activeren. "\n\n"Nadat u op \'Activeren\' heeft gedrukt, luistert u naar de instructies om uw telefoon te activeren."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Activering overslaan?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Als u de activering overslaat, kunt u niet bellen of verbinding maken met mobiele gegevensnetwerken (u kunt wel verbinding maken met wifi-netwerken). Tot u de telefoon activeert, wordt u gevraagd deze te activeren telkens wanneer u de telefoon inschakelt."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Overslaan"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activeren"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"De telefoon is geactiveerd."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Probleem met activeren"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Volg de gesproken instructies tot u hoort dat de activering is voltooid."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Luidspreker"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Wacht een ogenblik totdat uw telefoon is geprogrammeerd."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programmeren mislukt"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Uw telefoon is nu geactiveerd. Het kan maximaal vijftien minuten duren voordat de service actief is."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Uw telefoon is niet geactiveerd. "\n"Zoek een plek waar u betere dekking heeft (in de buurt van een raam of buiten). "\n\n"Probeer het opnieuw of bel de klantenservice voor meer opties."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"VEEL SPC-FOUTEN"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Terug"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Opnieuw proberen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Volgende"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Modus voor noodoproepen ingeschakeld"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modus voor noodoproepen"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Gegevensverbinding uitgeschakeld"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Er is al <xliff:g id="COUNT">%s</xliff:g> minuut geen dataverbinding"</item>
+    <item quantity="other" msgid="3122217344579273583">"Er is al <xliff:g id="COUNT">%s</xliff:g> minuten geen dataverbinding"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"De telefoon blijft <xliff:g id="COUNT">%s</xliff:g> minuut in de noodoproepmodus. In deze modus kunnen geen apps worden gebruikt waarvoor een gegevensverbinding nodig is. Wilt u nu sluiten?"</item>
+    <item quantity="other" msgid="8617116564023933114">"De telefoon blijft <xliff:g id="COUNT">%s</xliff:g> minuten in de noodoproepmodus. In deze modus kunnen geen apps worden gebruikt waarvoor een gegevensverbinding nodig is. Wilt u nu sluiten?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"De geselecteerde actie is niet beschikbaar in de noodoproepmodus. De telefoon blijft <xliff:g id="COUNT">%s</xliff:g> minuut in deze modus. Wilt u nu sluiten?"</item>
+    <item quantity="other" msgid="6115622137771382224">"De geselecteerde actie is niet beschikbaar in de noodoproepmodus. De telefoon blijft <xliff:g id="COUNT">%s</xliff:g> minuten in deze modus. Wilt u nu sluiten?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"De geselecteerde actie is niet beschikbaar tijdens noodoproepen."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Modus voor noodoproepen verlaten"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nee"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Negeren"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Service"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Instelling"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Niet ingesteld&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Andere instellingen voor bellen"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"contactfoto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"privé"</string>
+    <string name="selectContact" msgid="781975788478987237">"contact selecteren"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Instellingen voor bellen via internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Accounts voor internetoproepen (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Accounts"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Inkomende gesprekken ontvangen"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Verkort levensduur van accu"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Internetoproepen gebruiken"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Internetoproepen gebruiken (alleen wifi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Voor alle oproepen indien gegevensnetwerk beschikbaar is"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Alleen voor internetoproepen"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Vragen bij elke oproep"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Voor alle oproepen"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Bellen"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Account voor internetoproepen gebruiken:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Altijd gebruiken voor internetoproepen"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Via het scherm \'Telefoon &gt; Instellingen &gt; Instellingen voor bellen via internet &gt; Accounts\' kunt u het account wijzigen dat u standaard wilt gebruiken voor bellen via internet."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Oproep met mobiele telefoon"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetoproep"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Geen account voor internetoproepen"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Er zijn geen accounts voor bellen via internet ingesteld op deze telefoon. Wilt u nu een account toevoegen?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Toevoegen"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Account toevoegen"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Account verwijderen"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-accounts"</string>
+    <string name="saving_account" msgid="52903398217017954">"Het account opslaan..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Het account verwijderen..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Opslaan"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Annuleren"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Het profiel sluiten"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Sluiten"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primair account. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Status controleren..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registreren..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Nog steeds bezig..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Oproepen worden niet ontvangen."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Accountregistratie gestopt omdat er geen internetverbinding is."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Accountregistratie gestopt omdat er geen wifi-verbinding is."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Accountregistratie mislukt."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Oproepen worden ontvangen."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Accountregistratie mislukt: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). We proberen het later opnieuw."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Accountregistratie mislukt: gebruikersnaam of wachtwoord onjuist."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Accountregistratie mislukt: controleer de servernaam."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Dit account wordt momenteel gebruikt door de app <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP-accountdetails"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP-accountdetails"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Gebruikersnaam"</string>
+    <string name="password_title" msgid="3323555249068171531">"Wachtwoord"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Weergavenaam"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adres voor uitgaande proxy"</string>
+    <string name="port_title" msgid="5952939408078626657">"Poortnummer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transporttype"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Keepalive verzenden"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Instellen als primair account"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Gebruikt voor uitgaande oproepen"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Optionele instellingen"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Gebruikersnaam voor verificatie"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Gebruikersnaam die voor de verificatie wordt gebruikt"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Niet ingesteld&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Gelijk aan gebruikersnaam&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Optioneel&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Aanraken om alles weer te geven"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Aanraken om alles te verbergen"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is verplicht en mag niet worden leeggelaten."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Het poortnummer moet tussen 1000 en 65534 liggen."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Geen internetverbinding"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Geen wifi-verbinding"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Controleer uw internetverbinding voordat u belt via internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Voor internetoproepen moet u verbinding hebben met een wifi-netwerk (gebruik de instellingen bij \'Draadloos en netwerken\')."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Bellen via internet niet ondersteund"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatisch"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Altijd verzenden"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Spraakoproepen worden niet ondersteund"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan nu niet opnemen. Alles goed?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ik bel je zo terug."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ik bel je later."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan nu niet opnemen. Bel me later."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Eigen reactie opstellen..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Snelle reacties"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Snelle reacties bewerken"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Snelle reactie"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Standaardapp opnieuw instellen"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Bericht verzonden naar <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"één"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"twee"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"drie"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"vier"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"vijf"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"zes"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"zeven"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"acht"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"negen"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"ster"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nul"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"hekje"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"bellen"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Telefoonluidspreker is ingeschakeld."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Oproep gedempt."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Antwoord"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Sms verzenden"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Weigeren"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Trillen"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Trillen"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Geluid"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standaardgeluid (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Beltoon telefoon"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Trillen bij bellen"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"DTMF-tonen kiestoetsen"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autom. aanvul. voor toetsenblok"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Beltoon en trillen"</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
new file mode 100644
index 0000000..881478e
--- /dev/null
+++ b/res/values-pl/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobile Data"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Numery alarmowe"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Ustalone numery"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nieznany"</string>
+    <string name="private_num" msgid="6713286113000232309">"Numer prywatny"</string>
+    <string name="payphone" msgid="1931775086311769314">"Płatny telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Oczekujące"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linia jest zajęta"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Sieć zajęta"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Brak odpowiedzi, przekroczono limit czasu"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Serwer nieosiągalny"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numer nieosiągalny"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nieprawidłowa nazwa użytkownika lub hasło"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Połączenie spoza sieci"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Błąd serwera. Spróbuj ponownie później."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Brak sygnału"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Przekroczono limit ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Sieci bezprzewodowe są wyłączone"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Brak lub błąd karty SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Obszar nieobsługiwany"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Połączenia są ograniczone do listy ustalonych numerów."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Nie można wykonywać połączeń wychodzących, gdy włączona jest blokada dzwonienia."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Wszystkie połączenia są zablokowane przez funkcję kontroli dostępu."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Połączenia alarmowe są zablokowane przez funkcję kontroli dostępu."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Zwykłe połączenia są zablokowane przez funkcję kontroli dostępu."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Nieprawidłowy numer"</string>
+    <string name="confCall" msgid="1904840547188336828">"Poł. konferencyjne"</string>
+    <string name="call_lost" msgid="317670617901479594">"Połączenie zostało zerwane."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Kod MMI został rozpoczęty"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Uruchomiony kod USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kod MMI został anulowany"</string>
+    <string name="cancel" msgid="5044513931633602634">"Anuluj"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Komunikat USSD musi mieć od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znaków. Spróbuj ponownie."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Zarządzaj połączeniem konferencyjnym"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Głośnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Słuchawka telefonu"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Przewodowy zestaw słuch."</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Wysłać następujące dzwonki?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Wysyłanie sygnałów"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Wyślij"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Tak"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nie"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zastąp symbol wieloznaczny"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Brakuje numeru poczty głosowej"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na karcie SIM nie ma zapisanego numeru poczty głosowej."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj numer"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Karta SIM została odblokowana. Odblokowywanie telefonu..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Kod PIN do karty SIM odblokowujący sieć"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Odblokuj"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Zamknij"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Żądanie odblokowania sieci..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Żądanie odblokowania sieci zakończyło się niepowodzeniem."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Sieć została pomyślnie odblokowana."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Ustawienia połączenia GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Ustawienia połączenia CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Punkty dostępowe"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Ustawienia sieci"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Poczta głosowa"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Poczta głosowa:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operatorzy sieci"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Ustawienia połączeń"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ustawienia dodatkowe"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Dodatkowe ustawienia: tylko połączenia GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Dodatkowe ustawienia połączenia CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Dodatkowe ustawienia tylko połączenia CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Ustawienia usługi sieciowej"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID rozmówcy"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Wczytywanie ustawień…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Ukrycie numeru podczas rozmów wychodzących"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numer wyświetlany w połączeniach wychodzących"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Użyj domyślnych ustawień operatora, aby wyświetlać mój numer w połączeniach wychodzących"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Połączenia oczekujące"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Podczas połączenia powiadamiaj mnie o połączeniach przychodzących"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Podczas połączenia powiadamiaj mnie o połączeniach przychodzących"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Ustawienia przekazywania połączeń"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Przekierowanie połączeń"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Przekieruj wszystkie"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Zawsze używaj tego numeru"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Przekierowanie wszystkich rozmów"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Przekazywanie wszystkich połączeń do <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numer jest niedostępny"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Wyłączone"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Przekieruj, gdy zajęty"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numer, gdy zajęty"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Przekazywanie do <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Wyłączone"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Twój operator nie umożliwia wyłączenia przekazywania połączeń, gdy numer jest zajęty."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Przekieruj, gdy nieodebrane"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numer, gdy nieodebrane"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Przekazywanie do <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Wyłączone"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Twój operator nie umożliwia wyłączenia przekazywania połączeń, gdy numer nie odpowiada."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Przekieruj, gdy nieosiągalny"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numer, gdy nieosiągalny."</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Przekazywanie do <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Wyłączone"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Twój operator nie umożliwia wyłączenia przekazywania połączeń, gdy numer jest nieosiągalny."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Ustawienia połączeń"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Błąd w ustawieniach połączenia"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Czytanie ustawień..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Aktualizowanie ustawień..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Cofanie ustawień…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Nieoczekiwana odpowiedź z sieci."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Błąd sieci lub karty SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"W aplikacji Telefon włączone jest ustawienie Numery ustalone. W rezultacie niektóre funkcje związane z połączeniami nie działają."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Przed wyświetleniem tych ustawień włącz radio."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Włącz"</string>
+    <string name="disable" msgid="7274240979164762320">"Wyłącz"</string>
+    <string name="change_num" msgid="239476305819844391">"Aktualizuj"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Domyślna wartość dla sieci"</item>
+    <item msgid="7876195870037833661">"Ukryj numer"</item>
+    <item msgid="1108394741608734023">"Pokaż numer"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Numer poczty głosowej został zmieniony."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nie można zmienić numeru poczty głosowej."\n"Jeśli problem będzie się powtarzał, skontaktuj się z operatorem."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nie można zmienić numeru przekierowania."\n"Jeśli problem będzie się powtarzał, skontaktuj się z operatorem."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nie można pobrać i zapisać bieżących ustawień numeru przekazywania."\n"Czy mimo to przełączyć na nowego dostawcę?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nie dokonano żadnych zmian."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Wybierz usługę poczty głosowej"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mój operator"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Ustawienia sieci komórkowej"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostępne sieci"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Wyszukiwanie..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nie znaleziono sieci."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Wyszukaj sieci"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Podczas wyszukiwania sieci wystąpił błąd."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Rejestrowanie w <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Karta SIM nie pozwala na połączenia z tą siecią."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Nie można teraz połączyć się z tą siecią. Spróbuj ponownie później."</string>
+    <string name="registration_done" msgid="495135664535876612">"Zarejestrowano w sieci."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Wybierz operatora sieci."</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Wyszukaj wszystkie dostępne sieci"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Wybierz automatycznie"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatycznie wybierz preferowaną sieć"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatyczna rejestracja..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Tryb sieci"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Zmień tryb działania sieci"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Preferowany tryb sieci"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferowany tryb sieci: preferowany WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferowany tryb sieci: tylko GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferowany tryb sieci: tylko WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferowany tryb sieci: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferowany tryb sieci: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferowany tryb sieci: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferowany tryb sieci: tylko CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferowany tryb sieci: tylko EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferowany tryb sieci: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferowany tryb sieci: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferowany tryb sieci: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferowany tryb sieci: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferowany tryb sieci: globalny"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferowany tryb sieci: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalny"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Tylko EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo"</item>
+    <item msgid="4341433122263841224">"Automatyczny CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Automatyczny GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Tylko WCDMA"</item>
+    <item msgid="1524224863879435516">"Tylko GSM"</item>
+    <item msgid="3817924849415716259">"Preferowany GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Włącz przesył danych"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Włącz przesył danych przez sieć komórkową"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming danych"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Połącz z usługami przesyłu danych podczas roamingu"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Połącz z usługami przesyłu danych podczas roamingu"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Połączenie transmisji danych zostało utracone, ponieważ opuszczono sieć macierzystą przy wyłączonej opcji danych w roamingu."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Czy pozwolić na przesył danych w roamingu? Operator może naliczać wysokie opłaty roamingowe!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opcje GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opcje CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Użycie danych"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Ilość użytych danych w bieżącym okresie"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Okres użycia danych"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Zasada prędkości przesyłu danych"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Więcej informacji"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z <xliff:g id="USED_2">%3$s</xliff:g> (wartość maksymalna w okresie)"\n"Następny okres za: <xliff:g id="USED_3">%4$d</xliff:g> dni (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z <xliff:g id="USED_2">%3$s</xliff:g> (wartość maksymalna w okresie)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Przekroczono limit: <xliff:g id="USED_0">%1$s</xliff:g>"\n"Szybkość transmisji zmniejszona do <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Minęło <xliff:g id="USED_0">%1$d</xliff:g>٪ cyklu"\n"Następny okres za: <xliff:g id="USED_1">%2$d</xliff:g> dni (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Zmniejsz transfer do <xliff:g id="USED">%1$d</xliff:g> Kb/s jeśli przekroczę limit użycia danych"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Więcej informacji na temat zasad dotyczących użycia danych w sieci komórkowej tego operatora"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Wiadomość SMS transmisji komórkowej"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Wiadomość SMS transmisji komórkowej"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Wiadomość SMS transmisji komórkowej włączona"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Wiadomość SMS transmisji komórkowej wyłączona"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Ustawienia wiadomości SMS transmisji komórkowej"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Transmisja alarmowa"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Transmisja alarmowa włączona"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Transmisja alarmowa wyłączona"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administracja"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administracja włączona"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administracja wyłączona"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Konserwacja"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Konserwacja włączona"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Konserwacja wyłączona"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Wiadomości ogólne"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Wiadomości biznesowe i finansowe"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Wiadomości sportowe"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Wiadomości rozrywkowe"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokalne"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Wiadomości lokalne włączone"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Wiadomości lokalne wyłączone"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionalne"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Wiadomości regionalne włączone"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Wiadomości regionalne wyłączone"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Krajowe"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Wiadomości krajowe włączone"</string>
+    <string name="national_disable" msgid="326018148178601166">"Wiadomości krajowe wyłączone"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Międzynarodowe"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Wiadomości międzynarodowe włączone"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Wiadomości międzynarodowe wyłączone"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Język"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Wybierz język wiadomości"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Angielski"</item>
+    <item msgid="1151988412809572526">"francuski"</item>
+    <item msgid="577840534704312665">"hiszpański"</item>
+    <item msgid="8385712091143148180">"japoński"</item>
+    <item msgid="1858401628368130638">"koreański"</item>
+    <item msgid="1933212028684529632">"chiński"</item>
+    <item msgid="1908428006803639064">"hebrajski"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Języki"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalna prognoza pogody"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalna prognoza pogody włączona"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalna prognoza pogody wyłączona"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Raporty o natężeniu ruchu"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Raporty o natężeniu ruchu włączone"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Raporty o natężeniu ruchu wyłączone"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Rozkład lotów z lokalnego lotniska"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Rozkład lotów z lokalnego lotniska włączony"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Rozkład lotów z lokalnego lotniska wyłączony"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restauracje"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restauracje włączone"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restauracje wyłączone"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Kwatery"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Kwatery włączone"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Kwatery wyłączone"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Katalog sprzedaży detalicznej"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Katalog sprzedaży detalicznej włączony"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Katalog sprzedaży detalicznej wyłączony"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklamy"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklamy włączone"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklamy wyłączone"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Notowania giełdowe"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Notowania giełdowe włączone"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Notowania giełdowe wyłączone"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oferty pracy"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oferty pracy włączone"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oferty pracy wyłączone"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Placówki medyczne, zakłady opieki zdrowotnej i szpitale"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Placówki medyczne, zakłady opieki zdrowotnej i szpitale włączone"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Placówki medyczne, zakłady opieki zdrowotnej i szpitale wyłączone"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Wiadomości technologiczne"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Wiadomości technologiczne włączone"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Wiadomości technologiczne wyłączone"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Obsługa wielu kategorii"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Obsługa wielu kategorii włączona"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Obsługa wielu kategorii wyłączona"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Używaj tylko sieci 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Oszczędza baterię"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Wybór systemu"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Zmień tryb roamingu CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Wybór systemu"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Tylko główne"</item>
+    <item msgid="1205664026446156265">"Automatycznie"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Subskrypcja CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Zmiana między RUIM/SIM i NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subskrypcja"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktywuj urządzenie"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Skonfiguruj plan danych"</string>
+    <string name="fdn" msgid="7878832555095183202">"Ustalone numery"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Ustalone numery"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktywacja usługi ustalonych numerów"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Włączono tryb ustalonych numerów"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Wyłączono tryb ustalonych numerów"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Włącz ustalone numery"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Wyłącz usługę ustalonych numerów"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Zmień PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Wyłącz usługę ustalonych numerów"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Włącz ustalone numery"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Zarządzanie ustalonymi numerami"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Zmień kod PIN pozwalający na zarządzanie ustalonymi numerami"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Zarządzanie listą numerów telefonów"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Prywatność połączeń głosowych"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Włącz rozszerzony tryb prywatności"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Tryb TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Ustaw tryb TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatyczne ponawianie próby"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Włącz tryb automatycznego ponawiania próby"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Dodaj kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Edytuj kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Usuń kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Wpisz PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nazwa"</string>
+    <string name="number" msgid="7905950798349903858">"Numer"</string>
+    <string name="save" msgid="4094274636321939086">"Zapisz"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Dodaj ustalony numer"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Trwa dodawanie ustalonego numeru…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Dodano ustalony numer."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Edytuj ustalony numer"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Trwa aktualizowanie ustalonego numeru…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Zaktualizowano ustalony numer."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Usuń ustalony numer"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Trwa usuwanie ustalonego numeru…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Usunięto ustalony numer."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Nie zaktualizowano usługi FDN, ponieważ wpisano nieprawidłowy kod PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Nie zaktualizowano usługi FDN, ponieważ numer nie może być dłuższy niż 20 cyfr."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Nie zaktualizowano FDN. PIN2 był niepoprawny lub numer telefonu został odrzucony."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Czytanie z karty SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Brak kontaktów na karcie SIM"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Wybierz kontakty do importowania"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Aby zaimportować kontakty z karty SIM, najpierw wyłącz tryb samolotowy."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Włącz/wyłącz kod PIN do karty SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Zmień PIN do karty SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Kod PIN do karty SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Stary kod PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nowy kod PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potwierdź nowy kod PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Wpisany stary kod PIN jest nieprawidłowy. Spróbuj ponownie."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Wpisane kody PIN nie są identyczne. Spróbuj ponownie."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Wpisz kod PIN o długości od 4 do 8 cyfr."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Wyłącz PIN do karty SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Włącz kod PIN do karty SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Proszę czekać..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Kod PIN do karty SIM jest włączony."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN do karty SIM jest wyłączony."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Wpisany kod PIN był nieprawidłowy."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Kod PIN do karty SIM został zmieniony."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Błędne hasło, karta SIM jest zablokowana! Wymagany kod PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Stary kod PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nowy PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potwierdź nowy kod PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Wpisany kod PUK2 jest nieprawidłowy. Spróbuj ponownie."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Wpisany stary kod PIN2 jest nieprawidłowy. Spróbuj ponownie."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Wpisane kody PIN2 nie są identyczne. Spróbuj ponownie."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Wprowadź kod PIN2, który ma od 4 do 8 cyfr."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Wprowadź 8-cyfrowy kod PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Kod PIN2 został pomyślnie zmieniony."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Wprowadź kod PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Błędne hasło. Zmień kod PIN2 i spróbuj ponownie."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Błędne hasło, karta SIM jest zablokowana. Wymagany kod PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gotowe"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Poł. konferencyjne <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Numer poczty głosowej"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Wybieranie"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Ponawianie próby"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Poł. konferencyjne"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Połączenie"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Połączenie zakończone"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Oczekujące"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Trwa rozłączanie"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Trwa połączenie"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mój numer to <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Trwa wybieranie numeru"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Nieodebrane połączenie"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Połączenia nieodebrane"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> nieodebranych połączeń"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Nieodebrane połączenie z <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Trwa połączenie"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Oczekujące"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Połączenie przychodzące"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nowa poczta głosowa"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nowa poczta głosowa (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Zadzwoń do <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nieznany numer poczty głosowej"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Brak usługi"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Wybrana sieć (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) jest niedostępna"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Rozłącz"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Oddzwoń"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Wiadomość"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Aby rozpocząć połączenie, wyłącz najpierw tryb samolotowy"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nie zarejestrowano w sieci"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Sieć komórkowa jest niedostępna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Połączenie niezrealizowane, nie wprowadzono poprawnego numeru."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Połączenie nie zostało zrealizowane."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Rozpoczynanie sekwencji MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nieobsługiwana usługa."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Nie można przełączyć rozmów."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Nie można rozdzielić połączenia."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Nie można przekazać połączenia."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nie można prowadzić rozmów konferencyjnych."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Nie można odrzucić połączenia."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Nie można zakończyć połączenia (połączeń)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Połączenie przez internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Połączenie alarmowe"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Trwa włączanie sieci bezprzewodowych..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Obszar nieobsługiwany, ponowna próba..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Połączenie niezrealizowane. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie jest numerem alarmowym!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Połączenie niezrealizowane. Wybierz numer alarmowy!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Aby zadzwonić, użyj klawiatury."</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Wstrzymaj"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Zakończ"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Klawiatura"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Wycisz"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj połączenie"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Scal połączenia"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Przełącz"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Zarządzaj połączeniami"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Zarządzaj konferencją"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Dźwięk"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Rozmowa wideo"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importuj"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importuj wszystko"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importowanie kontaktów z karty SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importuj z Kontaktów"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Aparaty słuchowe"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Włącz funkcje zgodności z aparatem słuchowym"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY wyłączony"</item>
+    <item msgid="3971695875449640648">"TTY pełny"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tony DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Ustaw długość tonów DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normalne"</item>
+    <item msgid="2883365539347850535">"Długie"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Komunikat sieciowy"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktywuj telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Aby aktywować usługę telekomunikacyjną, należy wykonać połączenie specjalne. "\n\n"Po naciśnięciu przycisku „Aktywuj” posłuchaj dostępnych instrukcji, aby aktywować telefon."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Pominąć aktywację?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Jeśli pominiesz aktywację, nie będzie można wykonywać połączeń ani łączyć się z komórkowymi sieciami transmisji danych (łączenie się z sieciami Wi-Fi będzie jednak możliwe). Do momentu dokonania aktywacji odpowiedni monit będzie wyświetlany po każdym włączeniu telefonu."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Pomiń"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktywuj"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon został aktywowany."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem z aktywacją"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Postępuj zgodnie z instrukcjami głosowymi, aż usłyszysz informację, że aktywacja została ukończona."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Głośnik"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Czekaj, aż programowanie telefonu zostanie zakończone."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programowanie nie powiodło się"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefon został aktywowany. Uruchomienie usługi może potrwać do 15 minut."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefon nie został aktywowany. "\n"Być może należy przejść do miejsca, w którym sygnał sieci jest silniejszy (w pobliżu okna lub na zewnątrz budynku). "\n\n"Spróbuj ponownie lub zadzwoń do działu obsługi klienta, aby uzyskać więcej informacji."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"NADMIERNA LICZBA NIEPOWODZEŃ SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Wstecz"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Spróbuj ponownie"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Dalej"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Włączono tryb alarmowego połączenia zwrotnego"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Tryb alarmowego połączenia zwrotnego"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Połączenie transmisji danych jest wyłączone"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Brak połączenia transmisji danych przez <xliff:g id="COUNT">%s</xliff:g> min"</item>
+    <item quantity="other" msgid="3122217344579273583">"Brak połączenia transmisji danych przez <xliff:g id="COUNT">%s</xliff:g> min"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon będzie w trybie alarmowym połączenia zwrotnego przez <xliff:g id="COUNT">%s</xliff:g> minutę. W tym trybie nie można korzystać z aplikacji używających połączeń danych. Czy chcesz teraz wyjść?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon będzie w trybie alarmowym połączenia zwrotnego przez <xliff:g id="COUNT">%s</xliff:g> min. W tym trybie nie można korzystać z aplikacji używających połączeń danych. Czy chcesz teraz wyjść?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Wybrana akcja nie jest dostępna w trybie alarmowym połączenia zwrotnego. Telefon będzie w tym trybie <xliff:g id="COUNT">%s</xliff:g> min. Czy chcesz teraz wyjść?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Wybrana akcja nie jest dostępna w trybie alarmowym połączenia zwrotnego. Telefon będzie w tym trybie <xliff:g id="COUNT">%s</xliff:g> min. Czy chcesz teraz wyjść?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Wybrana akcja jest niedostępna przy nawiązanym połączeniu alarmowym."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Kończenie trybu alarmowego połączenia zwrotnego"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Tak"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nie"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Zamknij"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Usługa"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfiguracja"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nie ustawiono&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Inne ustawienia połączeń"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Nawiązywanie połączenia przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"zdjęcie kontaktu"</string>
+    <string name="goPrivate" msgid="865837794424530980">"przejdź do rozmowy prywatnej"</string>
+    <string name="selectContact" msgid="781975788478987237">"wybierz kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Dzwonienie przez internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Konta do połączeń SIP"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Konta"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Odbieraj przychodzące"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Powoduje skrócenie czasu pracy baterii"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Dzwoń przez internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Dzwoń przez internet (tylko Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Wszystkie połączenia, gdy transmisja danych jest dostępna"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Tylko internetowe"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Pytaj przy każdym połączeniu"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Wszystkie połączenia"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Zadzwoń"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Użyj konta do dzwonienia przez internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Zawsze używaj do połączeń przez internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Możesz zmienić konto używane domyślnie do dzwonienia przez internet na ekranie Telefon &gt; Ustawienia &gt; Dzwonienie przez internet &gt; Konta."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Komórkowe połączenie telefoniczne"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Połączenie przez internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Brak konta do połączeń przez internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Na tym telefonie nie ma jeszcze kont do dzwonienia przez internet. Czy chcesz dodać takie konto teraz?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Dodaj"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Dodaj konto"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Usuń konto"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Konta SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Trwa zapisywanie konta..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Trwa usuwanie konta..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Zapisz"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Odrzuć"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Zamknij profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Zamknij"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Konto podstawowe. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Sprawdzanie stanu..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Rejestrowanie..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Nadal próbuje..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Połączenia nie są odbierane."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Rejestracja konta została zatrzymana, ponieważ brak połączenia internetowego."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Rejestracja konta została zatrzymana, ponieważ brak jest połączenia Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Rejestracja konta zakończyła się niepowodzeniem."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Odbieranie połączeń."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Rejestracja konta zakończona niepowodzeniem: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); próba zostanie podjęta później"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Rejestracja konta zakończyła się niepowodzeniem: nieprawidłowa nazwa użytkownika lub hasło."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Rejestracja konta zakończyła się niepowodzeniem: sprawdź nazwę serwera."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"To konto jest obecnie używane przez aplikację <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Szczegóły konta SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Szczegóły konta SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Serwer"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nazwa użytkownika"</string>
+    <string name="password_title" msgid="3323555249068171531">"Hasło"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nazwa wyświetlana"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Proxy połączeń wychodzących"</string>
+    <string name="port_title" msgid="5952939408078626657">"Numer portu"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Typ transportu"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Utrzymuj połączenie"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Konto podstawowe"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Używane do połączeń wychodzących"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Ustawienia opcjonalne"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nazwa do uwierzytelniania"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nazwa użytkownika używana podczas uwierzytelniania"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nie ustawiono&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Taka jak nazwa użytkownika&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcjonalnie&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Dotknij, aby wyświetlić wszystko"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Dotknij, aby ukryć wszystko"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> jest wymagane i nie może pozostać puste."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Numer portu powinien mieć wartość od 1000 do 65 534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Brak połączenia internetowego"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Brak połączenia Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Aby zadzwonić przez internet, sprawdź najpierw połączenie internetowe."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"By dzwonić przez internet, musisz nawiązać połączenie z siecią Wi-Fi (użyj ustawień sieci zwykłych i bezprzewodowych)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Brak obsługi połączeń przez internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatycznie"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Zawsze wysyłaj"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Połączenia głosowe nie są obsługiwane"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Nie mogę rozmawiać. Co słychać?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Za chwilę do Ciebie oddzwonię."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zadzwonię do Ciebie później."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nie mogę rozmawiać. Zadzwonisz później?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napisz własną..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Szybkie odpowiedzi"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edytuj szybkie odpowiedzi"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Szybka odpowiedź"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Resetuj domyślną aplikację"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Wiadomość wysłano na numer <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"jeden"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dwa"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"trzy"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"cztery"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"pięć"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sześć"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"siedem"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"osiem"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"dziewięć"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"gwiazdka"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"znak funta"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"wybierz numer"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"cofnij"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Głośnik włączony."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Połączenie wyciszone."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odpowiedz"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Wyślij SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Odrzuć"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Wibracje"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Wibracje"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Dźwięk"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Domyślny dźwięk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Dzwonek telefonu"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Wibracje i dzwonek"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Dźwięki wybierania numeru"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autouzupełnianie klawiatury"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Dzwonek i wibracje"</string>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..bfcffeb
--- /dev/null
+++ b/res/values-pt-rPT/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telemóvel"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Marcador de emergência"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefone"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Lista de números de marcação fixa (FDN)"</string>
+    <string name="unknown" msgid="6878797917991465859">"Desconhecido"</string>
+    <string name="private_num" msgid="6713286113000232309">"Número particular"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefone público"</string>
+    <string name="onHold" msgid="9035493194749959955">"Em espera"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linha ocupada"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Rede ocupada"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Sem resposta, tempo limite excedido"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Servidor inacessível"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Número incontactável"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nome de utilizador ou palavra-passe incorretos"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Chamada efetuada de fora da rede"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Erro do servidor. Tente novamente mais tarde."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Sem sinal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Limite de ACM excedido"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Rádio desativado"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Sem cartão SIM ou erro do cartão"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Fora da área do serviço"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"As chamadas efectuadas são restringidas por FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Não é possível efetuar chamadas com o barramento de chamadas ativado."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Todas as chamadas são restringidas por controlo de acesso."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"As chamadas de emergência são restringidas por controlo de acesso."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"As chamadas normais são restringidas por controlo de acesso."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Número inválido"</string>
+    <string name="confCall" msgid="1904840547188336828">"Chamada de conferência"</string>
+    <string name="call_lost" msgid="317670617901479594">"A chamada perdeu-se."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Código de MMI iniciado"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"A executar código USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Código de MMI cancelado"</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
+    <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD tem de ter entre <xliff:g id="MIN_LEN">%d</xliff:g> e <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Tente novamente."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gerir chamada de conferência"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altifalante"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Auricular do aparelho"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Auscultadores com fios"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Enviar os seguintes tons?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"A enviar tons"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sim"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Não"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Substituir o carácter universal por"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Número do correio de voz em falta"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Não existe um número de correio de voz armazenado no cartão SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Adicionar número"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"O cartão SIM foi desbloqueado. O telefone está a ser desbloqueado..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN para desbloqueio de rede do cartão SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloquear"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Ignorar"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"A pedir desbloqueio de rede..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"O pedido de desbloqueio de rede falhou."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Desbloqueio de rede bem sucedido."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Definições de chamadas GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Definições de chamada CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Pontos de acesso (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Definições de rede"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Correio de voz"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Correio de voz:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operadores de rede"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Definições de chamada"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Definições adicionais"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Definições adicionais de chamadas apenas GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Definições adicionais de chamadas CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Definições adicionais de chamadas apenas CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Definições do serviço de rede"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID do autor da chamada"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"A carregar as definições..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Ocultar o número em chamadas efectuadas"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Número apresentado em chamadas efectuadas"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizar as predefinições do operador para apresentar o meu número nas chamadas efectuadas"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Chamada em espera"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Notificar-me de chamadas a receber durante uma chamada"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Notificar-me de chamadas a receber durante uma chamada"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Definições do reencaminhamento de chamadas"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Reencaminhamento de chamadas"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Reencaminhar sempre"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Utilizar sempre este número"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"A reencaminhar todas as chamadas"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"A encaminhar todas as chamadas para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"O número está indisponível"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Desativado"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Reencaminhar quando ocupado"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Número no caso de estar ocupado"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"A encaminhar para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Desativado"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"O seu operador não suporta a desativação do reencaminhamento de chamadas quando o telemóvel está ocupado."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Reencaminhar quando não atende"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Número no caso de não atender"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"A encaminhar para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Desativado"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"O operador não suporta a desativação do reencaminhamento de chamadas quando o telemóvel não atende."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Reencaminhar quando está inacessível"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Número no caso de estar inacessível"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"A encaminhar para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desativado"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"O seu operador não suporta a desativação do reencaminhamento de chamadas quando o telemóvel não está acessível."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Definições de chamadas"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Erro nas definições de chamada"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"A ler as definições..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"A atualizar as definições..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"A reverter as definições…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Resposta inesperada da rede."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Erro do cartão SIM ou da rede."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"A definição Números Autorizados da aplicação do seu Telemóvel está ativada. Por conseguinte, algumas funcionalidades relacionadas com chamadas não estão a funcionar."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Ative o rádio antes de visualizar estas definições."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Ativar"</string>
+    <string name="disable" msgid="7274240979164762320">"Desativar"</string>
+    <string name="change_num" msgid="239476305819844391">"Atualizar"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Predefinição da rede"</item>
+    <item msgid="7876195870037833661">"Ocultar número"</item>
+    <item msgid="1108394741608734023">"Mostrar número"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"O número do correio de voz foi alterado."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Não foi possível alterar o número de correio de voz. "\n" Contacte o seu operador se este problema persistir."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Não foi possível alterar o número de encaminhamento. "\n" Contacte o seu operador se este problema persistir."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Não foi possível obter nem guardar as definições do número de encaminhamento atual."\n"Mudar para o novo fornecedor mesmo assim?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Não foram efectuadas alterações."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Escolha o serviço de correio de voz"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"O meu operador"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Definições da rede móvel"</string>
+    <string name="label_available" msgid="1181658289009300430">"Redes disponíveis"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"A pesquisar..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nenhuma rede encontrada."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Procurar redes"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Erro ao procurar redes."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"A registar em <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"O cartão SIM não permite uma ligação a esta rede."</string>
+    <string name="connect_later" msgid="2308119155752343975">"De momento, não é possível estabelecer ligação com esta rede. Tente novamente mais tarde."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registado na rede."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Escolher um operador de rede"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Procurar todas as redes disponíveis"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Selecionar automaticamente"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Selecionar rede preferida automaticamente"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registo automático..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Modo de rede"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Alterar o modo de funcionamento em rede"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Modo de rede preferido"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modo de rede preferido: apenas WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modo de rede preferido: apenas GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modo de rede preferido: apenas WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modo de rede preferido: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Modo de rede preferido: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Modo de rede preferido: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modo de rede preferido: apenas CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modo de rede preferido: apenas EvDO"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Modo de rede preferido: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Modo de rede preferido: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Modo de rede preferido: global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Modo de rede preferido: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Apenas EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA sem EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automático"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automático"</item>
+    <item msgid="7913148405605373434">"Apenas WCDMA"</item>
+    <item msgid="1524224863879435516">"Apenas GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferido"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dados ativados"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Activar acesso a dados através de rede móvel"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming de dados"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Ligar a serviços de dados em roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Ligar a serviços de dados em roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"A conectividade de dados foi perdida porque saiu do alcance da sua rede e o roaming de dados estava desativado."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Permitir roaming de dados? Os encargos de roaming podem ser significativos!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opções GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opções CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Utilização de dados"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Dados utilizados no período actual"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Período de utilização de dados"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Política de classificação de dados"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Saiba mais"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) do <xliff:g id="USED_2">%3$s</xliff:g> período máximo"\n"O período seguinte tem início dentro de <xliff:g id="USED_3">%4$d</xliff:g> dias (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) do <xliff:g id="USED_2">%3$s</xliff:g> período máximo"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> máximo excedido"\n"Velocidade de transmissão de dados reduzida para <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ do ciclo decorrido"\n"O período seguinte tem início dentro de <xliff:g id="USED_1">%2$d</xliff:g> dias (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Velocidade de transmissão de dados reduzida para <xliff:g id="USED">%1$d</xliff:g> Kb/s se o limite de utilização de dados for excedido"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Mais informações sobre a política de utilização de dados da rede móvel do seu operador."</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Transmissão Celular SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Transmissão Celular SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Definições da Transmissão Celular SMS activada"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Transmissão Celular SMS desactivada"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Definições da Transmissão Celular SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusão de Emergência"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusão de Emergência activada"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusão de Emergência desactivada"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativo"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Modo Administrativo ativado"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Modo administrativo desativado"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Manutenção"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Manutenção activada"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Manutenção desactivada"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Notícias Gerais"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Notícias de Negócios e Finanças"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Notícias Desportivas"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Notícias de Entretenimento"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Notícias locais ativadas"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Notícias locais desativadas"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Notícias regionais ativadas"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Notícias regionais desativadas"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Notícias nacionais ativadas"</string>
+    <string name="national_disable" msgid="326018148178601166">"Notícias nacionais desativadas"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internacional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Notícias internacionais ativadas"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Notícias internacionais desativadas"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Idioma"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Seleccionar o idioma das notícias"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglês"</item>
+    <item msgid="1151988412809572526">"Francês"</item>
+    <item msgid="577840534704312665">"Espanhol"</item>
+    <item msgid="8385712091143148180">"Japonês"</item>
+    <item msgid="1858401628368130638">"Coreano"</item>
+    <item msgid="1933212028684529632">"Chinês"</item>
+    <item msgid="1908428006803639064">"Hebraico"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Idiomas"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Informação Meteorológica Local"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Informação Meteorológica Local activada"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Informação meteorológica local desactivada"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Relatórios de Tráfego de Área"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Relatórios de Tráfego de Área ativados"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Relatórios de Tráfego de Área desativados"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Horários de Voos do Aeroporto Local"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Horários de Voos do Aeroporto Local ativados"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Horários de Voos do Aeroporto Local desativados"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurantes"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurantes ativados"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurantes desativados"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Alojamentos"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Alojamento ativado"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Alojamento desativado"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Lista de Retalho"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Lista de Retalho activada"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Lista de Retalho desactivada"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anúncios"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anúncios ativados"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anúncios desativados"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotações de Acções"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotações de acções ativadas"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotações de Acções desativadas"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunidades de Emprego"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunidades de Emprego ativadas"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunidades de Emprego desativadas"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Clínica, Saúde e Hospital"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Clínica, Saúde e Hospital ativado"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Clínica, Saúde e Hospital desativado"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Notícias de Tecnologia"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Notícias de Tecnologia ativadas"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Notícias de Tecnologia desativadas"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Categoria múltipla"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Categoria múltipla activada"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Modo de categorias múltiplas desativado"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Usar apenas redes 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Economiza bateria"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Seleccionar sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Alterar o modo de roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Seleccionar sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Apenas redes domésticas"</item>
+    <item msgid="1205664026446156265">"Automático"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Subscrição CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Alternar entre RUIM/SIM e NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscrição"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activar dispositivo"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurar serviço de dados"</string>
+    <string name="fdn" msgid="7878832555095183202">"Números de marcação fixa (FDN)"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Lista de números de marcação fixa (FDN)"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activação de FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Os números de marcação fixa estão ativados"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Os números de marcação fixa estão desativados"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Activar FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Desactivar FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Alterar PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Desactivar FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Activar FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gerir os números de marcação fixa"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Alterar o PIN de acesso aos números de marcação fixa"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gerir a lista telefónica"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacidade de voz"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activar modo de privacidade optimizado"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Modo TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Definir modo TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Nova tentativa automática"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Ativar modo Nova tentativa automática"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Adicionar contacto"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Editar contacto"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Eliminar contacto"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Introduzir PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nome"</string>
+    <string name="number" msgid="7905950798349903858">"Número"</string>
+    <string name="save" msgid="4094274636321939086">"Guardar"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Adicionar números autorizados"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"A adicionar números autorizados..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Números autorizados adicionados."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar números autorizados"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"A atualizar números autorizados..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Números autorizados actualizados."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Eliminar números autorizados"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"A eliminar números autorizados..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Números autorizados eliminados."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Os números autorizados não foram atualizados porque introduziu um PIN incorreto."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Os números autorizados não foram atualizados porque o número não pode exceder 20 dígitos."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Não foram atualizados os números autorizados. O PIN2 estava errado ou o número de telefone foi rejeitado."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"A ler a partir do cartão SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Sem contactos no cartão SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Seleccione os contactos a importar"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Para importar contactos do cartão SIM, primeiro desative o Modo de Avião."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Activar/desactivar o PIN do cartão SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Alterar o PIN do cartão SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN do SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN antigo"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novo PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirme o novo PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"O PIN antigo introduzido não está correto. Tente novamente."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Os PINs introduzidos não correspondem. Tente novamente."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Introduza um PIN com 4 a 8 números."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Desactivar o PIN do SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Activar o PIN do cartão SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Queira aguardar..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN do SIM ativado"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN do SIM desativado"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"O PIN introduzido não estava correto."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN do SIM alterado com sucesso"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Palavra-passe incorrecta, o cartão SIM está bloqueado! É necessário o PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 antigo"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novo PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirme o novo PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"O PUK2 introduzido não está correto. Tente novamente."</string>
+    <string name="badPin2" msgid="1041576234483629991">"O PIN2 antigo introduzido não está correto. Tente novamente."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Os PIN2 introduzidos não correspondem. Tente novamente."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Introduza um PIN2 com 4 a 8 números."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Introduza um PUK2 com 8 números."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 alterado com sucesso."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Introduza o código PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Palavra-passe incorreta. Altere o PIN2 e tente novamente!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Palavra-passe incorreta, o SIM está bloqueado! É necessário o PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Concluído"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Chamada de conferência <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número do correio de voz"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"A marcar"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Tentar novamente"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Chamada de conferência"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Chamada recebida"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Chamada terminada"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Em espera"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"A desligar"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"A chamar"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"O meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"A marcar"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chamada não atendida"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Chamadas não atendidas"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas não atendidas"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Chamada não atendida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Chamada em curso"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Em espera"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Chamada recebida"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Novo correio de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Novo correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Marcar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número do correio de voz desconhecido"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nenhum serviço"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Rede selecionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) indisponível"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Desligar"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Ligar de volta"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mensagem"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Para efectuar uma chamada, desactive primeiro o modo para Avião."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Sem registo na rede."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Rede móvel não disponível."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"A chamada não foi efetuada. Não foi introduzido um número válido."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Chamada não efetuada."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"A iniciar sequência de MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Serviço não suportado"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Não é possível alternar entre chamadas"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Não foi possível separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Não é possível transferir a chamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Não é possível efectuar chamadas de conferência."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Não é possível rejeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Não é possível efectuar chamada(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Chamada por internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"A ligar o rádio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Fora da área do serviço, a tentar novamente..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"A chamada não foi efetuada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Chamada não efetuada. Marque um número de emergência!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizar o teclado para marcar"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Suspender"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Terminar"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Teclado de marcação"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Desativar som"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Adicionar chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Intercalar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Trocar"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gerir chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gerir conferência"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Áudio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videochamada"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importar"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todos"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"A importar contactos do cartão SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar a partir dos contactos"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Aparelhos auxiliares de audição"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activar compatibilidade com aparelho auxiliar de audição"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY desativado"</item>
+    <item msgid="3971695875449640648">"TTY total"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tons DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Definir o tamanho dos toques DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Longo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mensagem de rede"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activar o seu telefone"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"É necessário efectuar uma chamada especial para activar o seu serviço telefónico. "\n\n"Depois de premir “Activar”, ouça as instruções fornecidas para activar o telefone."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Ignorar activação?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Se ignorar a activação, não poderá fazer chamadas nem estabelecer ligação a redes móveis de dados (apesar de poder estabelecer ligação a redes Wi-Fi). Enquanto não activar o telefone, ser-lhe-á solicitada activação sempre que ligar o telefone."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ignorar"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Ativar"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"O telemóvel está ativado!"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema com a activação"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Siga as instruções de voz até ser informado de que a activação está concluída."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Altifalante"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Aguarde enquanto o telemóvel está a ser programado."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programação sem sucesso"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"O seu telefone já está ativado. O início do serviço pode demorar até 15 minutos."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"O seu telemóvel não foi ativado. "\n"Pode ser necessário procurar uma zona com melhor cobertura (junto a uma janela ou no exterior). "\n\n"Tente novamente ou ligue para o serviço de apoio ao cliente para obter mais opções."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"FALHAS NO EXCESS SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Anterior"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Tente novamente"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Seguinte"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Entrou em Modo de Chamada de Retorno de Emergência"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de Chamada de Retorno de Emergência"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Ligação de dados desactivada"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Sem ligação de dados durante <xliff:g id="COUNT">%s</xliff:g> minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Sem ligação de dados durante <xliff:g id="COUNT">%s</xliff:g> minutos"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"O telemóvel ficará no modo de Chamada de Retorno de Emergência durante <xliff:g id="COUNT">%s</xliff:g> minuto. Enquanto estiver neste modo, não é possível utilizar aplicações que utilizem uma ligação de dados. Pretende sair agora?"</item>
+    <item quantity="other" msgid="8617116564023933114">"O telemóvel ficará no modo de Chamada de Retorno de Emergência durante <xliff:g id="COUNT">%s</xliff:g> minutos. Enquanto estiver neste modo, não é possível utilizar aplicações que utilizem uma ligação de dados. Pretende sair agora?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"A ação selecionada não está disponível no modo de Chamada de Retorno de Emergência. O telemóvel ficará neste modo durante <xliff:g id="COUNT">%s</xliff:g> minutos. Pretende sair agora?"</item>
+    <item quantity="other" msgid="6115622137771382224">"A ação selecionada não está disponível no modo de Chamada de Retorno de Emergência. O telemóvel ficará neste modo durante <xliff:g id="COUNT">%s</xliff:g> minutos. Pretende sair agora?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"A sair do modo de chamada de retorno de emergência"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sim"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Não"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Ignorar"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Serviço"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuração"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Não definido&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Outras definições de chamada"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"A chamar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografia do contacto"</string>
+    <string name="goPrivate" msgid="865837794424530980">"tornar privado"</string>
+    <string name="selectContact" msgid="781975788478987237">"seleccionar contacto"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Definições de chamadas por internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Contas de chamadas por internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Contas"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Obter chamadas recebidas"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduz a vida útil da bateria"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Utilizar chamadas por internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Utilizar chamadas pela internet (apenas Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Para todas as chamadas quando a rede de dados estiver disponível"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Apenas para chamadas pela internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Perguntar em cada chamada"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Para todas as chamadas"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Fazer chamada"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Utilizar conta de chamadas pela internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Utilizar sempre para fazer chamadas pela internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Pode alterar a conta de chamadas por internet a utilizar por predefinição a partir do ecrã Telemóvel &gt; Definições &gt; Definições de chamadas por internet &gt; Contas."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Chamada por telemóvel"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Chamada por internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Sem conta de chamadas pela internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Não há contas de chamadas por internet neste telemóvel. Pretende adicionar uma agora?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Adicionar"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Adicionar conta"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Remover conta"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Contas SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"A guardar conta..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"A remover conta..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Guardar"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Rejeitar"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Feche o perfil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Fechar"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Conta principal: <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"A verificar o estado..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"A registar..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Ainda a tentar..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Não está a receber chamadas."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"O registo da conta parou porque não existe ligação à internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"O registo da conta parou porque não existe ligação Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"O registo da conta não teve êxito."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"A receber chamadas."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"O registo da conta não teve êxito (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); tentaremos mas tarde"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"O registo da conta não teve êxito: palavra-passe ou nome de utilizador incorreto"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"O registo da conta não teve êxito: verifique o nome do servidor"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Esta conta está atualmente a ser utilizada pela aplicação <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalhes da conta SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalhes da conta SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Servidor"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nome de utilizador"</string>
+    <string name="password_title" msgid="3323555249068171531">"Palavra-passe"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nome a apresentar"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Endereço do proxy de saída"</string>
+    <string name="port_title" msgid="5952939408078626657">"Número da porta"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipo de transporte"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Enviar mensagem keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Definir como conta principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilizado para chamadas enviadas"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Definições opcionais"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nome de utilizador para autenticação"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nome de utilizador usado para autenticação"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Não definido&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Igual ao nome de utilizador&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Toque para mostrar tudo"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Toque para ocultar tudo"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é obrigatório e tem de ser preenchido."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"O número da porta devia estar entre 1000 e 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Sem ligação à internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Sem ligação Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Para fazer uma chamada por internet, verifique primeiro a ligação à internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Para fazer chamadas por internet, é preciso estar ligado a uma rede Wi-Fi (use as definições de Redes sem fios e outras redes)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"As cham. por internet não são suportadas"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automático"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Enviar sempre"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Chamadas de voz não suportadas"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Não posso falar agora. Que se passa?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Telefono-lhe já a seguir."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Telefono-lhe mais tarde."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Pode telefonar-me mais tarde?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Escrever a sua própria..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respostas rápidas"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respostas rápidas"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Resposta rápida"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Repor aplicação predefinida"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensagem enviada para <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"um"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dois"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"três"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"quatro"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinco"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seis"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sete"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"oito"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nove"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"estrela"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"cardinal"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"marcar"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"retrocesso"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Alta voz ativada."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Chamada sem som."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Atender"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Recusar"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Som"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Som predefinido (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Toque do telemóvel"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar ao tocar"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Sons dos toques no teclado de marcar"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Preenchimento automático do teclado"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Tocar e Vibrar"</string>
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
new file mode 100644
index 0000000..bcbb465
--- /dev/null
+++ b/res/values-pt/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Discador de emergência"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefone"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Lista FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Desconhecido"</string>
+    <string name="private_num" msgid="6713286113000232309">"Número privado"</string>
+    <string name="payphone" msgid="1931775086311769314">"Orelhão"</string>
+    <string name="onHold" msgid="9035493194749959955">"Em espera"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linha ocupada"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Rede ocupada"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Nenhuma resposta, tempo limite expirou"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Servidor não acessível"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Número não acessível"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nome de usuário ou senha incorretos"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Chamou de fora da rede"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Erro no servidor. Tente mais tarde."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Sem sinal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Limite de ACM excedido"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Rádio desativado"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Sem SIM ou erro de SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Área fora de serviço"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"As chamadas enviadas são restringidas pelo FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Você não pode fazer chamadas enquanto o bloqueio de chamadas estiver ativado."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Todas as chamada são restringidas pelo controle de acesso."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"As chamadas de emergência são restringidas pelo controle de acesso."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"As chamadas normais são restringidas pelo controle de acesso."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Número inválido"</string>
+    <string name="confCall" msgid="1904840547188336828">"Conferência telefônica"</string>
+    <string name="call_lost" msgid="317670617901479594">"A chamada foi perdida."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Código MMI iniciado"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Código USSD em execução…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Código MMI cancelado"</string>
+    <string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
+    <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD deve ter de <xliff:g id="MIN_LEN">%d</xliff:g> a <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Tente novamente."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gerenciar conferência telefônica"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Alto-falante"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Minifone do aparelho"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Fone de ouvido com fio"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Enviar os toques a seguir?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Enviando tons"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Enviar"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Sim"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Não"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Substituir caractere curinga por"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Número correio de voz ausente"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Não há um número correio de voz armazenado no cartão SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Adicionar número"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"O seu cartão SIM foi desbloqueado. O seu telefone está desbloqueando…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN de desbloqueio da rede SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloquear"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Dispensar"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando o desbloqueio de rede…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Falha na solicitação de desbloqueio de rede."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Desbloqueio de rede bem-sucedido."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Configurações de chamada GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Configurações de chamada CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nomes dos pontos de acesso"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Configurações de rede"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Correio de voz"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operadores de rede"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Configurações de chamadas"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configurações adicionais"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Configurações adicionais somente de chamada GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Configurações de chamada CDMA adicionais"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Configurações adicionais somente de chamada CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Configurações do serviço de rede"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID da chamada"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Carregando configurações…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Número oculto nas chamadas enviadas"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Número exibido nas chamadas enviadas"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Usar configurações padrão da operadora para exibir meu número em chamadas efetuadas"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Chamada em espera"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Durante uma chamada, me avise sobre chamadas recebidas"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Durante uma chamada, me avise sobre chamadas recebidas"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Configurações de encaminhamento de chamada"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Encaminhamento"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Sempre encaminhar"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Sempre usar este número"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Encaminhando todas as chamadas"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Encaminhando todas as chamadas para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Número indisponível"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Desativado"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Enc. quando ocupado"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Número quando ocupado"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Encaminhando para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Desativado"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Sua operadora não suporta a desativação do encaminhamento de chamada quando seu telefone está ocupado."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Enc. se não atendido"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Número quando não atendido"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Encaminhando para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Desativado"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Sua operadora não suporta a desativação do encaminhamento de chamada quando seu telefone não responde."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Enc. se não acessível"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Número quando não acessível"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Encaminhando para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desativado"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Sua operadora não suporta a desativação do encaminhamento de chamada quando seu telefone não está acessível."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Configurações de chamadas"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Erro de configuração da chamada"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Lendo as configurações…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Atualizando configurações…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Revertendo configurações…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Resposta inesperada da rede."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Erro de rede ou do cartão SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"A configuração \"Números de chamada fixos\" do aplicativo de seu telefone está ativada. Por isso, alguns recursos relacionados a chamadas não funcionam."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Ligue o rádio antes de ver essas configurações."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Ativar"</string>
+    <string name="disable" msgid="7274240979164762320">"Desativar"</string>
+    <string name="change_num" msgid="239476305819844391">"Atualizar"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Padrão de rede"</item>
+    <item msgid="7876195870037833661">"Ocultar número"</item>
+    <item msgid="1108394741608734023">"Mostrar número"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Número correio de voz alterado."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Não foi possível alterar o número do correio de voz."\n"Entre em contato com sua operadora se o problema persistir."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Não foi possível alterar o número de encaminhamento."\n"Entre em contato com sua operadora se o problema persistir."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Não foi possível recuperar e salvar as configurações de número atual de encaminhamento."\n"Mudar para o novo provedor?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nenhuma alteração foi feita."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Escolha o serviço de correio de voz"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Minha operadora"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Configurações de rede para celular"</string>
+    <string name="label_available" msgid="1181658289009300430">"Redes disponíveis"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Pesquisando..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nenhuma rede encontrada."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Pesquisar redes"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Erro ao pesquisar redes."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrando na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Seu cartão SIM não permite uma conexão com esta rede."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Não é possível se conectar a esta rede agora. Tente novamente mais tarde."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrado na rede."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Selecione um operador de rede"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Pesquisar todas as redes disponíveis"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Escolher automaticamente"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Escolher automaticamente a rede preferencial"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Registro automático..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Modo de rede"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Alterar o modo de operação de rede"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Modo de rede de preferência"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modo de rede preferencial: WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modo de rede preferencial: somente GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modo de rede preferencial: somente WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modo de rede preferencial: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Modo de rede de preferência: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Modo de rede de preferência: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modo de rede preferencial: somente CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modo de rede preferencial: somente EvDO"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Modo de rede preferencial: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Modo de rede preferencial: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Modo de rede preferencial: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Modo de rede preferencial: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Modo de rede preferencial: global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Modo de rede preferencial: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Somente EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA sem EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automático"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automático"</item>
+    <item msgid="7913148405605373434">"Somente WCDMA"</item>
+    <item msgid="1524224863879435516">"Somente GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferencial"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dados ativados"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Ativar acesso a dados pela rede móvel"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming de dados"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Conectar aos serviços de dados quando estiver em roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Conectar aos serviços de dados quando estiver em roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Você perdeu a conectividade de dados porque deixou o roaming de dados de sua rede doméstica desativado."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Permitir roaming de dados? Isso pode causar cobranças significativas de roaming!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opções GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opções CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Uso de dados"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Uso de dados no período atual"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Período de uso de dados"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Política de taxa de dados"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Saiba mais"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> do período máximo"\n"Próximo perído começa em <xliff:g id="USED_3">%4$d</xliff:g> dias (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> do período máximo"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Máximo de <xliff:g id="USED_0">%1$s</xliff:g> excedido"\n"Taxa de dados reduzida para <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ do ciclo expirou"\n"O próximo período começa em <xliff:g id="USED_1">%2$d</xliff:g> dias (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Taxa de dados reduzida para <xliff:g id="USED">%1$d</xliff:g> Kb/s se o limite de uso de dados for excedido"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Mais informações sobre a política de uso de dados da rede móvel da sua operadora"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de difusão celular"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS de difusão celular"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS de difusão celular ativado"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS de difusão celular desativado"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Configurações de SMS de difusão celular"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusão de emergência"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusão de emergência ativada"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusão de emergência desativada"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativo"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativo ativado"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativo desativado"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Manutenção"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Manutenção ativada"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Manutenção desativada"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Notícias gerais"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Notícias de negócios e finanças"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Notícias de esporte"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Notícias de entretenimento"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Notícias locais ativadas"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Notícias locais desativadas"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Notícias regionais ativadas"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Notícias regionais desativadas"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Notícias nacionais ativadas"</string>
+    <string name="national_disable" msgid="326018148178601166">"Notícias nacionais desativadas"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internacional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Notícias internacionais ativadas"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Notícias internacionais desativadas"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Idioma"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Selecione o idioma das notícias"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Inglês"</item>
+    <item msgid="1151988412809572526">"Francês"</item>
+    <item msgid="577840534704312665">"Espanhol"</item>
+    <item msgid="8385712091143148180">"Japonês"</item>
+    <item msgid="1858401628368130638">"Coreano"</item>
+    <item msgid="1933212028684529632">"Chinês"</item>
+    <item msgid="1908428006803639064">"Hebraico"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Idiomas"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Clima local"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Clima local ativado"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Clima local desativado"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Relatórios de trânsito da área"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Relatórios de trânsito da área ativados"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Relatórios de trânsito da área desativados"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Programação de voos do aeroporto local"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Programação de voos do aeroporto local ativada"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Programação de voos do aeroporto local desativada"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurantes"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurantes ativados"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurantes desativados"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Alojamentos"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Alojamentos ativados"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Alojamentos desativados"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Diretório de varejo"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Diretório de varejo ativado"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Diretório de varejo desativado"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Anúncios"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Anúncios ativados"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Anúncios desativados"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotação de ações"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotação de ações ativada"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotação de ações desativada"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunidades de emprego"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunidades de emprego ativadas"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunidades de emprego desativadas"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Serviços médicos, de saúde e hospitalares"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Serviços médicos, de saúde e hospitalares ativados"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Serviços médicos, de saúde e hospitalares desativados"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Notícias de tecnologia"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Notícias de tecnologia ativadas"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Notícias de tecnologia desativadas"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Várias categorias"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Várias categorias ativadas"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Várias categorias desativadas"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Usar apenas redes 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Economiza bateria"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Seleção de sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Alterar o modo de roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selecionar sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Somente doméstica"</item>
+    <item msgid="1205664026446156265">"Automático"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Inscrição CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Alterar entre RUIM/SIM e NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"inscrição"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Ativar aparelho"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurar serviço de dados"</string>
+    <string name="fdn" msgid="7878832555095183202">"Chamadas fixas"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Lista FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Ativação do FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Os números de chamadas fixas estão ativados"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Os números de chamadas fixas estão desativados"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Ativar FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Desativar FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Alterar PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Desativar FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Ativar FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gerenciar números de chamadas fixas"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Alterar PIN para acesso FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gerenciar lista de números telefônicos"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacidade de voz"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Ativar modo de privacidade aprimorado"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Modo TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Definir modo TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Repetir automaticamente"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Ativar modo Repetir automaticamente"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Adicionar contato"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Editar contato"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Excluir contato"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Digitar PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nome"</string>
+    <string name="number" msgid="7905950798349903858">"Número"</string>
+    <string name="save" msgid="4094274636321939086">"Salvar"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Adicionar número de chamadas fixas"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Adicionando número de chamadas fixas…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Número de chamadas fixas adicionado."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar o número de chamadas fixas"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Atualizando o número de chamadas fixas…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Número de chamadas fixas atualizado."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Excluir número de chamadas fixas"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Excluindo número de chamadas fixas…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Número de chamadas fixas excluído."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"O FDN não foi atualizado porque você digitou um PIN incorreto."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"O FDN não foi atualizado porque o número não pode exceder 20 dígitos."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"O FDN não foi atualizado. O PIN2 estava incorreto, ou o número de telefone foi rejeitado."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Lendo a partir do cartão SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Não há contatos no seu cartão SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Selecione os contatos a serem importados"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Para importar os contatos do cartão SIM, primeiro desligue o modo avião."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Ativar/desativar PIN do SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Alterar PIN do SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN do SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN antigo"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novo PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmar novo PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"O PIN antigo digitado não está correto. Tente novamente."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Os PINs digitados não correspondem. Tente novamente."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Digite um PIN com 4 a 8 números."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Desativar PIN do SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Ativar PIN do SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Aguarde..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN do SIM ativado."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN do SIM desativado."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"O PIN digitado estava incorreto."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN do SIM alterado."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Senha incorreta. SIM bloqueado! PUK2 solicitado."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 antigo"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novo PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmar novo PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"O PUK2 digitado não está correto. Tente novamente."</string>
+    <string name="badPin2" msgid="1041576234483629991">"O PIN2 antigo digitado não está correto. Tente novamente."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Os PIN2s digitados não correspondem. Tente novamente."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Digite um PIN2 com 4 a 8 números."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Digite um PUK2 com 8 números."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 alterado."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Digitar o código PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Senha incorreta. Altere o PIN2 e tente novamente."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Senha incorreta. SIM bloqueado. PUK2 solicitado."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Concluído"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Conferência telefônica <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número correio de voz"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Discando"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Tentando novamente"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Conferência telefônica"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Recebendo chamada"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Chamada encerrada"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Em espera"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Desligando"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Em chamada"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Discando"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chamada perdida"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Chamadas perdidas"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> chamadas perdidas"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Chamada perdida de <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Chamada em andamento"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Em espera"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Recebendo chamada"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Novo correio de voz"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Novo correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Discar <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número correio de voz desconhecido"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Sem serviço"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"A rede selecionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) não está disponível"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Desligar"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Retornar chamada"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mensagem"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Para fazer uma chamada, primeiro desative o modo avião."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Não registrado na rede."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Rede móvel não disponível."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Chamada não completada, o número inserido é inválido."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Chamada não completada."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Iniciando sequência MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Serviço não suportado."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Não é possível alternar chamadas."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Não é possível separar a chamada."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Não é possível transferir a chamada."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Não é possível realizar conferências telefônicas."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Não é possível rejeitar a chamada."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Não é possível liberar a(s) chamada(s)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Chamada pela internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ativando o rádio…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Área fora de serviço, tentando novamente..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Chamada não enviada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Chamada não enviada. Disque um número de emergência!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Use o teclado para discar"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Em espera"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Finalizar"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Teclado"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Desativar som"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Adicionar chamada"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Mesclar chamadas"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Trocar"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gerenciar chamadas"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gerenciar conferência"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Áudio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Vídeo ch."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importar"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importar tudo"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importando contatos do SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar dos contatos"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Aparelhos auditivos"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Ativar compatibilidade com aparelhos auditivos"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY desativado"</item>
+    <item msgid="3971695875449640648">"TTY completo"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tons DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Definir duração dos tons DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Longo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mensagem de rede"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Ativar o seu telefone"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Uma chamada especial precisa ser feita para ativar o serviço do seu telefone. "\n\n"Depois de pressionar “Ativar”, ouça as instruções fornecidas para ativar o seu telefone."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Ignorar ativação?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Se você ignorar a ativação, não poderá fazer chamadas ou se conectar a redes móveis de dados (embora possa se conectar a redes Wi-Fi). Até que o seu telefone seja ativado, você receberá solicitações de ativação sempre que o ligar."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ignorar"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Ativar"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"O telefone está ativado."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema com a ativação"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Siga as instruções faladas até ouvir que a ativação está concluída."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Alto-falante"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Aguarde enquanto seu telefone é programado."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Falha de programação"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"O seu telefone está ativado. Pode demorar até 15 minutos para o serviço ser iniciado."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Seu telefone não foi ativado. "\n"Talvez seja necessário encontrar uma área com uma cobertura melhor (próximo de uma janela ou no lado de fora). "\n\n"Tente novamente ou ligue para o serviço de atendimento ao cliente para obter mais opções."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"FALHAS EM EXCESSO DE SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Voltar"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Tentar novamente"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Próxima"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Modo de retorno de chamada de emergência acessado"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de retorno de chamada de emergência"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexão de dados desativada"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Nenhuma conexão de dados durante <xliff:g id="COUNT">%s</xliff:g> minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Nenhuma conexão de dados durante <xliff:g id="COUNT">%s</xliff:g> minutos"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"O telefone estará no modo de retorno de chamada de emergência por <xliff:g id="COUNT">%s</xliff:g> minuto. Nesse modo, nenhum aplicativo que utiliza uma conexão de dados pode ser usado. Você deseja sair agora?"</item>
+    <item quantity="other" msgid="8617116564023933114">"O telefone estará no modo de retorno de chamada de emergência por <xliff:g id="COUNT">%s</xliff:g> minutos. Nesse modo, nenhum aplicativo que utiliza uma conexão de dados pode ser usado. Você deseja sair agora?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"A ação selecionada não está disponível no modo de retorno de chamada de emergência. O telefone estará nesse modo por <xliff:g id="COUNT">%s</xliff:g> minuto. Você deseja sair agora?"</item>
+    <item quantity="other" msgid="6115622137771382224">"A ação selecionada não está disponível no modo de retorno de chamada de emergência. O telefone estará nesse modo por <xliff:g id="COUNT">%s</xliff:g> minutos. Você deseja sair agora?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saindo do modo de retorno de chamada de emergência"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Sim"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Não"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Descartar"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Serviço"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configuração"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Não definido&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Outras configurações de chamada"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Chamando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"foto do contato"</string>
+    <string name="goPrivate" msgid="865837794424530980">"conversar em particular"</string>
+    <string name="selectContact" msgid="781975788478987237">"selecionar contato"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Configurações de chamada pela internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Contas para chamada pela internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Contas"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Receber chamadas"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduz a vida útil da bateria"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Usar cham. pela Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Usar chamada pela internet (somente Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Para todas as chamadas, quando a rede de dados estiver disponível"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Apenas para cham. pela internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Perguntar toda chamada"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Para todas as chamadas"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Chamar"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Usar a conta para chamada pela internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Sempre usar para realizar chamadas pela internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Você pode alterar qual conta de chamada pela Internet será usada por padrão na tela Telefone &gt; Configurações &gt; Configurações de chamada pela Internet &gt; Contas."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Chamada para celular"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Chamada pela internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Não há conta para chamada pela internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Não há contas de chamada pela Internet neste telefone. Você deseja adicionar uma conta agora?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Adicionar"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Adicionar conta"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Remover conta"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Contas SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Salvando a conta..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Removendo a conta..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Salvar"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Descartar"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Fechar o perfil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Fechar"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Conta principal. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Verificando status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrando..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Ainda tentando..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Sem chamadas recebidas."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Registro da conta interrompido porque não há conexão à internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Registro da conta interrompido porque não há conexão Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Falha no registro da conta."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Chamadas recebidas."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Falha no registro da conta: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Nova tentativa mais tarde"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Falha no registro da conta: nome de usuário ou senha incorretos."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Falha no registro da conta: verifique o nome do servidor."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"No momento, esta conta é usada pelo aplicativo <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalhes da conta SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalhes da conta SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Servidor"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nome de usuário"</string>
+    <string name="password_title" msgid="3323555249068171531">"Senha"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Nome de exibição"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"End. proxy de saída"</string>
+    <string name="port_title" msgid="5952939408078626657">"Número da porta"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tipo de transporte"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Enviar sinal de atividade"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Def. como conta principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilizado para chamadas de saída"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Configurações opcionais"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Autenticação de nome de usuário"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Nome de usuário utilizado para autenticação"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Não definido&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Igual ao nome de usuário&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opcional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Toque para mostrar todos"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Toque para ocultar todos"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é campo obrigatório e não pode ser deixado em branco."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"O número da porta deve estar entre 1000 e 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nenhuma conexão à internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nenhuma conexão Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Antes de fazer uma chamada pela Internet, primeiro verifique a conexão com a Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Você precisa estar conectado a uma rede Wi-Fi para realizar chamadas pela Internet (use as Configurações de redes sem fio e outras)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Chamada pela internet não suportada"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automático"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Sempre enviar"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Chamada de voz não compatível"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Não posso falar agora. Me manda um SMS, por favor?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Já te ligo de volta."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Eu te ligo mais tarde."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Não posso falar agora. Me liga depois, por favor?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Escreva sua resposta..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respostas rápidas"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respostas rápidas"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Resposta rápida"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Redefinir aplicativo padrão"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensagem enviada para <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"um"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dois"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"três"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"quatro"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinco"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"seis"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sete"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"oito"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nove"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"marcar com uma estrela"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"libra"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"discar"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Viva-voz ativado."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Chamada sem áudio."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Responder"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Enviar SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Recusar"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Som"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Som padrão (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Toque do telefone"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar quando estiver tocando"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tons de toque do teclado numérico"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autopreenchimento do teclado"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Toque e vibração"</string>
+</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
new file mode 100644
index 0000000..edc679a
--- /dev/null
+++ b/res/values-ro/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Date pentru mobil"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Telefon de urgenţă"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Listă FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Necunoscut"</string>
+    <string name="private_num" msgid="6713286113000232309">"Număr privat"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefon public"</string>
+    <string name="onHold" msgid="9035493194749959955">"În aşteptare"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linie ocupată"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Reţea ocupată"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Fără răspuns, durata a expirat"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server neaccesibil"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numărul nu poate fi contactat"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nume de utilizator sau parolă incorecte"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Apelat din afara reţelei"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Eroare de server. Încercaţi din nou mai târziu."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Niciun semnal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Limită ACM depăşită"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio oprit"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Nu există SIM sau eroare de SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"În afara ariei de acoperire"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Apelurile trimise sunt restricţionate de FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Nu puteţi efectua apeluri de ieşire în timp ce blocarea apelurilor este activă."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Toate apelurile sunt restricţionate de controlul de acces."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Apelurile de urgenţă sunt restricţionate de controlul de acces."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Apelurile normale sunt restricţionate de controlul de acces."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Număr nevalid"</string>
+    <string name="confCall" msgid="1904840547188336828">"Teleconferinţă"</string>
+    <string name="call_lost" msgid="317670617901479594">"Apelul s-a pierdut."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Cod MMI pornit"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Se rulează codul USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Cod MMI anulat"</string>
+    <string name="cancel" msgid="5044513931633602634">"Anulaţi"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%d</xliff:g> și <xliff:g id="MAX_LEN">%d</xliff:g> caractere. Încercați din nou."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionaţi teleconferinţa"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Difuzor"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Casca dispozitivului"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Cască cu fir"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Trimiteţi următoarele tonuri?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Se trimit tonuri"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Trimiteţi"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nu"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Înlocuiţi metacaracterul cu"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Lipseşte numărul mesageriei vocale"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Niciun număr de mesagerie vocală nu este stocat pe cardul SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Adăugaţi numărul"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Cardul dvs. SIM a fost deblocat. Telefonul dvs. se deblochează..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Codul PIN de deblocare a reţelei SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Deblocaţi"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Renunţaţi"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Se solicită deblocarea reţelei..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Cererea de deblocare a reţelei a eşuat."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Reţeaua a fost deblocată."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Setările apelului GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Setările apelului CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Numele punctelor de acces"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Setări de reţea"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Mesaj vocal"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"MV:"</string>
+    <string name="networks" msgid="8873030692174541976">"Operatori de reţea"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Setări apel"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Setări suplimentare"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Setări suplimentare doar pentru apelurile GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Setări suplimentare pentru apelurile CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Setări suplimentare numai pentru apelurile CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Setările serviciului de reţea"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID apelant"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Se încarcă setările…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Număr ascuns în apelurile de ieşire"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numărul afişat în apelurile de ieşire"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizaţi setările prestabilite ale operatorului, pentru a vă afişa numărul în apelurile de ieşire"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Apel în aşteptare"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Doresc să fiu notificat despre apelurile de intrare, inclusiv în timpul unui apel"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Doresc să fiu notificat despre apelurile de intrare, inclusiv în timpul unui apel"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Setările pentru redirecţionarea de apeluri"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Redirecţionarea apelurilor"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Redirecţionaţi întotdeauna"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Utilizaţi întotdeauna acest număr"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Se redirecţionează toate apelurile"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Se redirecţionează toate apelurile către <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numărul nu este disponibil"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Dezactivat"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Redirecţionaţi când este ocupat"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Număr pentru redirecţionare dacă este ocupat"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Se efectuează redirecţionarea la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Dezactivat"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operatorul dvs. nu acceptă ca redirecţionarea apelurilor să fie dezactivată atunci când telefonul dvs. este ocupat."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Redirecţionaţi când nu se răspunde"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Număr pentru redirecţionare dacă nu se răspunde"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Se efectuează redirecţionarea la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Dezactivat"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operatorul dvs. nu acceptă ca redirecţionarea apelurilor să fie dezactivată atunci când telefonul dvs. nu răspunde."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Redirecţionaţi dacă telefonul nu este accesibil"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Număr de redirecţionare dacă telefonul nu este accesibil"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Se efectuează redirecţionarea la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dezactivat"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatorul dvs. nu acceptă ca redirecţionarea apelurilor să fie dezactivată atunci când telefonul nu este accesibil."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Setări apel"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Eroare în setările de apel"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Se citesc setările..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Se actualizează setările..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Se revine la setări..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Răspuns neaşteptat de la reţea."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Eroare de reţea sau de card SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Setarea Numere cu apelări restricţionate din aplicaţia Telefon este activată. Ca rezultat, unele funcţii legate de apelare nu pot fi utilizate."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Activaţi semnalul radio, înainte de a vizualiza aceste setări."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Activaţi"</string>
+    <string name="disable" msgid="7274240979164762320">"Dezactivaţi"</string>
+    <string name="change_num" msgid="239476305819844391">"Actualizaţi"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Reţea prestabilită"</item>
+    <item msgid="7876195870037833661">"Ascundeţi numărul"</item>
+    <item msgid="1108394741608734023">"Afişaţi numărul"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Număr mesagerie vocală modificat."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nu s-a putut schimba numărul de mesagerie vocală."\n"Contactaţi operatorul în cazul în care această problemă persistă."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nu s-a putut schimba numărul de redirecţionare."\n"Contactaţi operatorul dvs. în cazul în care această problemă persistă."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nu s-au putut prelua şi salva setările actuale ale numărului de redirecţionare."\n"Doriţi să comutaţi oricum către un nou furnizor de servicii?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nicio schimbare efectuată."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Alegeţi serviciul de mesagerie vocală"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Operatorul meu"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Setări pentru reţeaua mobilă"</string>
+    <string name="label_available" msgid="1181658289009300430">"Reţele disponibile"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Se caută…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nicio reţea găsită."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Căutaţi reţele"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Eroare la căutarea reţelelor."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Se înregistrează pe <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Cardul dvs. SIM nu permite conexiunea la această reţea."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Nu se poate efectua conectarea la această reţea chiar acum. Încercaţi din nou mai târziu."</string>
+    <string name="registration_done" msgid="495135664535876612">"Înregistrat în reţea."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Alegeţi un operator de reţea"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Căutaţi toate reţelele disponibile"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Selectaţi în mod automat"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Selectaţi în mod automat reţeaua preferată"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Înregistrare automată..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Mod reţea"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Schimbaţi modul de operare a reţelei"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Mod de reţea preferat"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mod de reţea preferat: de preferat WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mod de reţea preferat: numai GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mod de reţea preferat: numai WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mod de reţea preferat: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mod de reţea preferat: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mod de reţea preferat: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mod de reţea preferat: numai CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mod de reţea preferat: numai EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Mod de rețea preferat: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Mod de rețea preferat: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Mod de rețea preferat: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Mod de rețea preferat: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Mod de rețea preferat: Global"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Mod de rețea preferat: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Global"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Numai EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA fără EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automat"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automat"</item>
+    <item msgid="7913148405605373434">"Numai WCDMA"</item>
+    <item msgid="1524224863879435516">"Numai GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA preferat"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Date activate"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Activaţi accesul de date prin reţeaua mobilă"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming de date"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Conectaţi-vă la serviciile de date în roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Conectaţi-vă la serviciile de date în roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Aţi pierdut conectivitatea la date, deoarece aţi părăsit reţeaua de domiciliu neavând activat roamingul de date."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Permiteţi roamingul de date? Puteţi acumula taxe considerabile pentru roaming!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opţiuni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opţiuni CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Rata de utilizare a datelor"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Datele utilizate în perioada curentă"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Perioada de utilizare a datelor"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Politica ratei de transfer a datelor"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Aflaţi mai multe"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioada maximă"\n"Următoarea perioadă începe în <xliff:g id="USED_3">%4$d</xliff:g> (de) zile (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioadă maximă"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum depăşit"\n"Rata de transfer se reduce la <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ din ciclul trecut"\n"Perioada următoare începe în <xliff:g id="USED_1">%2$d</xliff:g> (de) zile (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Rata de transfer a datelor se reduce la <xliff:g id="USED">%1$d</xliff:g> Kb/s, dacă limita de utilizare este depăşită."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Mai multe informaţii despre politica de utilizare a datelor aplicată de operatorul dvs. de telefonie mobilă"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Transmisie celulară a mesajelor SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Transmisie celulară a mesajelor SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Transmisie celulară a mesajelor SMS activată"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Transmisie celulară a mesajelor SMS dezactivată"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Setările transmisiei celulare a mesajelor SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Transmisie de urgenţă"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Transmisie de urgenţă activată"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Transmisie de urgenţă dezactivată"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativ"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativ activată"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativ dezactivat"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Întreţinere"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Întreţinere activată"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Întreţinere dezactivată"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Știri generale"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Știri despre afaceri şi financiare"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Știri din sport"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Știri de divertisment"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Știri locale activate"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Știri locale dezactivate"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Știri locale activate"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Știri regionale dezactivate"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Naţional"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Știri naţionale activate"</string>
+    <string name="national_disable" msgid="326018148178601166">"Știri naţionale dezactivate"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internaţional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Știri internaţionale activate"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Știri internaţionale dezactivate"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Limbă"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Selectaţi limba pentru ştiri"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engleză"</item>
+    <item msgid="1151988412809572526">"Franceză"</item>
+    <item msgid="577840534704312665">"Spaniolă"</item>
+    <item msgid="8385712091143148180">"Japoneză"</item>
+    <item msgid="1858401628368130638">"Coreeană"</item>
+    <item msgid="1933212028684529632">"Chineză"</item>
+    <item msgid="1908428006803639064">"Ebraică"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Limbi"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Previziuni meteo locale"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Previziuni meteo locale activate"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Previziuni meteo locale dezactivate"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Informaţii locale de trafic"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Informaţii locale de trafic activate"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Informaţii locale de trafic dezactivate"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Orarele de zbor ale aeroportului local"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Orarele de zbor ale aeroportului local sunt activate"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Orarele de zbor ale aeroportului local sunt dezactivate"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurante"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restaurante activate"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restaurante dezactivate"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Cazare"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Cazare activată"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Cazare dezactivată"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Registrul comercianţilor"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Registrul comercianţilor activat"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Registrul comercianţilor dezactivat"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Publicitate"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Publicitate activată"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Publicitate dezactivată"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotaţii bursiere"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotaţii bursiere activate"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotaţii bursiere dezactivate"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunităţi de angajare"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunităţi de angajare activate"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunităţi de angajare dezactivate"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicină, sănătate şi spitale"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicină, sănătate şi spitale activate"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicină, sănătate şi spitale dezactivate"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Știri din tehnologie"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Știri din tehnologie activate"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Știri din tehnologie dezactivate"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Categorii multiple"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Categorii multiple activate"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Categorii multiple dezactivate"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Utilizaţi doar reţele 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Economisiţi bateria"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selectaţi sistemul"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Schimbaţi modul de roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selectaţi sistemul"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Doar domiciliu"</item>
+    <item msgid="1205664026446156265">"Automat"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Abonament CMDA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Comutaţi între RUIM/SIM şi NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonament"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Activaţi dispozitivul"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configuraţi serviciul de date"</string>
+    <string name="fdn" msgid="7878832555095183202">"Numere cu apelări restricţionate"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Listă FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Activare FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Numerele cu apelări restricţionate sunt activate"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Numerele cu apelări restricţionate sunt dezactivate"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Activaţi FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Dezactivaţi FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Schimbaţi codul PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Dezactivaţi FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Activaţi FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gestionaţi numerele cu apelări restricţionate"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Schimbaţi codul PIN pentru accesul FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gestionaţi lista numerelor de telefon"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Confidenţialitate voce"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activaţi modul avansat de confidenţialitate"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Mod TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Setaţi modul TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Reîncercare automată"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Activaţi modul Reîncercare automată"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Adăugaţi o persoană în agendă"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Modificaţi informaţiile despre persoana din agendă"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Ștergeţi persoana din agendă"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Introduceţi codul PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Nume"</string>
+    <string name="number" msgid="7905950798349903858">"Număr"</string>
+    <string name="save" msgid="4094274636321939086">"Salvaţi"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Adăugaţi un număr cu apelări restricţionate"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Se adaugă numărul cu apelări restricţionate..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Număr cu apelări restricţionate adăugat."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Modificaţi numărul cu apelări restricţionate"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Se actualizează numărul cu apelări restricţionate..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Număr cu apelări restricţionate actualizat."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Ștergeţi numărul cu apelări restricţionate"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Se şterge numărul cu apelări restricţionate..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Numărul cu apelări restricţionate a fost şters."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN nu a fost actualizat, deoarece aţi introdus un cod PIN incorect."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN nu a fost actualizat, deoarece numărul nu poate depăşi 20 de cifre."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Numărul FDN nu a fost actualizat. Codul PIN2 a fost incorect sau numărul de telefon a fost respins."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Se citeşte de pe cardul SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nicio persoană în agenda de pe cardul dvs. SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Selectaţi persoanele din agendă care se importă"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Pentru a importa agenda de pe cardul SIM, dezactivaţi mai întâi modul Avion."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Activaţi/dezactivaţi codul PIN al cardului SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Schimbaţi codul PIN pentru SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Codul PIN pentru cardul SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Codul PIN vechi"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Cod PIN nou"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Confirmaţi noul cod PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Codul PIN vechi pe care l-aţi introdus nu este corect. Încercaţi din nou."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Codurile PIN introduse nu se potrivesc. Încercaţi din nou."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Introduceţi un cod PIN alcătuit din 4 până la 8 cifre."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Dezactivaţi codul PIN al cardului SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Activaţi codul PIN al cardului SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Aşteptaţi..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Cod PIN activat pentru cardul SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Codul PIN al cardului SIM este dezactivat."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Codul PIN introdus a fost incorect."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Codul PIN pentru SIM a fost modificat."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Parolă incorectă, SIM blocat! Se solicită PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Codul PIN2 vechi"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Cod PIN2 nou"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Confirmaţi noul cod PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Codul PUK2 introdus nu este corect. Încercaţi din nou."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Vechiul cod PIN2 introdus nu este corect. Încercaţi din nou."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Codurile PIN2 introduse nu se potrivesc. Încercaţi din nou."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Introduceţi un cod PIN2 format din 4-8 cifre."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Introduceţi un cod PUK2 format din 8 cifre."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Codul PIN2 a fost schimbat."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Introduceţi codul PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Parolă incorectă. Schimbaţi codul PIN2 şi încercaţi din nou."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Parolă incorectă, SIM blocat. Se solicită codul PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Terminat"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Teleconferinţă <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Număr mesagerie vocală"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Apelează"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Se încearcă din nou"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Teleconferinţă"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Apel de intrare"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Apel încheiat"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"În aşteptare"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Se închide telefonul"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"În timpul apelului"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Numărul meu este <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Apelează"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Apel nepreluat"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Apeluri nepreluate"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (de) apeluri nepreluate"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Apel nepreluat de la <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Apel în desfăşurare"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"În aşteptare"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Apel de intrare"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Mesaj vocal nou"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Mesaj vocal nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Apelaţi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Număr mesagerie vocală necunoscut"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Fără serviciu"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Reţeaua selectată (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nu este disponibilă"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Încheiaţi apelul"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Sunaţi înapoi"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesaj"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Pentru a efectua un apel, mai întâi dezactivaţi modul Avion."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Neînregistrat în reţea."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Reţeaua mobilă nu este disponibilă."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Apelul nu s-a trimis; niciun număr valid introdus."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Apelul nu a fost trimis."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Se porneşte secvenţa MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Serviciu neacceptat."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Apelurile nu pot fi comutate."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Apelul nu poate fi separat."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Apelul nu poate fi transferat."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Teleconferinţa nu se poate efectua."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Apelul nu poate fi respins."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Apelul (apelurile) nu poate (pot) fi eliberat (eliberate)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Apel prin internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Apel de urgenţă"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Se activează semnalul radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"În afara ariei de serviciu. Se încearcă din nou..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Apelul nu s-a trimis. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgenţă!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Apelul nu s-a trimis. Apelaţi un număr de urgenţă!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizaţi tastatura pentru a forma"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Reţineţi"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Terminat"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tastatură numerică"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Dezactivaţi sunetul"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Adăugaţi un apel"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Îmbinaţi apelurile"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Schimbaţi"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestionaţi apelurile"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gestion. conferinţa"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Apel video"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importaţi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importaţi-le pe toate"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Se importă persoanele din agenda de pe cardul SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importaţi din Agendă"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Asistenţă auditivă"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activaţi compatibilitatea cu asistenţa auditivă"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Mod TTY dezactivat"</item>
+    <item msgid="3971695875449640648">"TTY plin"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tonuri DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Setaţi lungimea tonurilor DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normală"</item>
+    <item msgid="2883365539347850535">"Lung"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mesaj de reţea"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Activaţi-vă telefonul"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Pentru a vă activa serviciul de telefonie, trebuie să efectuaţi un apel special. "\n\n"După ce apăsaţi „Activaţi”, ascultaţi instrucţiunile furnizate pentru a vă activa telefonul."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Omiteţi activarea?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Dacă omiteţi activarea, nu puteţi efectua apeluri şi nici nu vă puteţi conecta la o reţea de date mobilă (deşi vă puteţi conecta la reţele Wi-Fi). Până veţi activa telefonul, vi se va solicita să-l activaţi de fiecare dată când îl porniţi."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omiteţi"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Activaţi"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonul este activat."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problemă de activare"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Urmăriţi instrucţiunile rostite până când veţi auzi că activarea este finalizată."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Difuzor"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Aşteptaţi, telefonul dvs. se programează."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programarea nu a reuşit"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefonul dvs. este acum activat. Poate să dureze până la 15 minute până la pornirea serviciului."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonul dvs. nu s-a activat. "\n"Vă recomandăm să găsiţi o zonă cu acoperire mai bună (lângă fereastră sau afară). "\n\n"Pentru mai multe opţiuni, încercaţi din nou sau apelaţi serviciul pentru clienţi."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ERORI DE DEPĂȘIRE SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Înapoi"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Încercaţi din nou"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Înainte"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"S-a activat modul de apelare inversă de urgenţă"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mod de apelare inversă de urgenţă"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexiune de date dezactivată"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Nicio conexiune de date pentru <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+    <item quantity="other" msgid="3122217344579273583">"Nicio conexiune de date pentru <xliff:g id="COUNT">%s</xliff:g> (de) minute"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefonul va fi în modul Apelare inversă de urgenţă pentru <xliff:g id="COUNT">%s</xliff:g> minut. Cât timp se află în acest mod nu puteţi folosi aplicaţiile care utilizează o conexiune de date. Doriţi să ieşiţi acum?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefonul va fi în modul Apelare inversă de urgenţă pentru <xliff:g id="COUNT">%s</xliff:g> (de) minute. Cât timp se află în acest mod nu puteţi folosi aplicaţiile care utilizează o conexiune de date. Doriţi să ieşiţi acum?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Acţiunea selectată nu este disponibilă în modul Apelare inversă de urgenţă. Telefonul va rămâne în acest mod pentru <xliff:g id="COUNT">%s</xliff:g> minut. Doriţi să ieşiţi acum?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Acţiunea selectată nu este disponibilă în modul Apelare inversă de urgenţă. Telefonul va rămâne în acest mod pentru <xliff:g id="COUNT">%s</xliff:g> (de) minute. Doriţi să ieşiţi acum?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Acţiunea selectată nu este disponibilă în timpul efectuării unui apel de urgenţă."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Se iese din modul Apelare inversă de urgenţă"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nu"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Renunţaţi"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Servicii"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Configurare"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nesetat&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Alte setări de apel"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografie persoană din agendă"</string>
+    <string name="goPrivate" msgid="865837794424530980">"trecerea la modul privat"</string>
+    <string name="selectContact" msgid="781975788478987237">"selectarea unei persoane din agendă"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Setări pentru apeluri prin internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Conturi pentru apelare prin internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Conturi"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Primiţi apeluri de intrare"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Reduce durata de funcţionare a bateriei"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Utilizaţi apelarea prin internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Utilizaţi apelarea prin internet (numai Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Pentru toate apelurile, când reţeaua de date este disponibilă"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Numai pentru apeluri prin internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Întrebare la fiecare apel"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Pentru toate apelurile"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Efectuaţi apel"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Utilizaţi contul pentru apelare prin internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Utilizaţi întotdeauna pentru a efectua apeluri prin internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Puteţi să schimbaţi contul de apelare prin internet pe care îl utilizaţi în mod prestabilit, din ecranul Telefon &gt; Setări &gt; Setări apeluri prin internet &gt; Conturi."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Apel de pe mobil"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Apel prin internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Nu există un cont pentru apelare prin internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Nu există conturi de apelare prin internet pe acest telefon. Doriţi să adăugaţi unul acum?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Adăugaţi"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Adăugaţi un cont"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Eliminaţi contul"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Conturi SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Se salvează contul..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Se elimină contul..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Salvaţi"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Renunţaţi"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Închideţi profilul"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Închideţi"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Cont principal. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Se verifică starea..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Se înregistrează..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Se încearcă în continuare..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Nu se primesc apeluri."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Înregistrarea contului s-a oprit, deoarece nu există conexiune la internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Înregistrarea contului s-a oprit, deoarece nu există conexiune Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Înregistrarea contului nu a reuşit."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Se primesc apeluri."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Înregistrarea contului nu a reuşit: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se va încerca mai târziu"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Înregistrarea contului nu a reuşit: nume de utilizator sau parolă incorectă."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Înregistrarea contului nu a reuşit: verificaţi numele serverului."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Acest cont este utilizat în prezent de aplicaţia <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Detalii cont SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Detalii cont SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Nume de utilizator"</string>
+    <string name="password_title" msgid="3323555249068171531">"Parolă"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Numele afişat"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adresă proxy de ieşire"</string>
+    <string name="port_title" msgid="5952939408078626657">"Numărul portului"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Tip de transport"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Trimiteţi mesaje keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Setaţi drept cont principal"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Utilizat pentru apelurile de ieşire"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Setări opţionale"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Nume de utilizator pentru autentificare"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Numele de utilizator folosit pentru autentificare"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nesetat&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Identic cu numele de utilizator&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opţional&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Atingeţi pentru a le afişa pe toate"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Atingeţi pentru a le ascunde pe toate"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Câmpul <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> este obligatoriu şi nu poate fi lăsat necompletat."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Numărul portului trebuie să fie cuprins între 1000 şi 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Nu există conexiune la internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Nu există conexiune Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Pentru a efectua un apel prin internet, verificaţi mai întâi conexiunea la internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Trebuie să fiţi conectat(ă) la o reţea Wi-Fi pentru a efectua apeluri prin internet (utilizaţi setările pentru Reţele wireless)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Apelarea prin internet neacceptată"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automat"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Se trimite întotdeauna"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Apelarea vocală nu este acceptată"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Nu pot acum. Despre ce e vorba?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te sun imediat înapoi."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te sun mai târziu."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nu pot acum. Vorbim mai târziu?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Scrieți propriul răspuns…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Răspunsuri rapide"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editaţi răspunsurile rapide"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Răspuns rapid"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Resetați aplic. prestabilită"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mesajul a fost trimis la <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"unu"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"doi"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"trei"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"patru"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"cinci"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"şase"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"şapte"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"opt"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nouă"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"stea"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"diez"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"apelare"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Difuzor activat."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Apel cu sunet dezactivat."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Răspundeţi"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Trimiteţi SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Refuzaţi"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibraţii"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibraţii"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sunet"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Sunet prestabilit (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ton de sonerie telefon"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrează când sună"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tonuri la atingerea pt. apelare"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Completare automată tastatură numerică"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de sonerie și vibrare"</string>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
new file mode 100644
index 0000000..8c2681f
--- /dev/null
+++ b/res/values-ru/strings.xml
@@ -0,0 +1,633 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Данные для мобильных устройств"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Экстренный вызов"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Телефон"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Разрешенные номера"</string>
+    <string name="unknown" msgid="6878797917991465859">"Неизвестный абонент"</string>
+    <string name="private_num" msgid="6713286113000232309">"Скрытый номер"</string>
+    <string name="payphone" msgid="1931775086311769314">"Телефон-автомат"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ждет ответа"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Линия занята"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Сеть занята"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Нет ответа, время ожидания истекло"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Сервер недоступен"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Номер недоступен"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Неверное имя пользователя или пароль"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Вызов из другой сети"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Ошибка сервера. Повторите попытку позже."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Нет сигнала"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Превышен лимит ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Радио выключено"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Ошибка SIM-карты или SIM-карта не установлена"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Вне зоны действия сети"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Вы можете позвонить только на телефоны из списка разрешенных номеров."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Исходящие звонки невозможны, если включен запрет вызовов."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Все вызовы запрещены настройками доступа."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Экстренные вызовы запрещены настройками доступа."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Обычные вызовы запрещены настройками доступа."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Неверный номер"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конференц-вызов"</string>
+    <string name="call_lost" msgid="317670617901479594">"Вызов был утрачен."</string>
+    <string name="ok" msgid="3811371167865772377">"ОК"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Код MMI запущен"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Выполняется запрос USSD…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Код MMI отменен"</string>
+    <string name="cancel" msgid="5044513931633602634">"Отмена"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Допустимая длина USSD-сообщения: <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> символов. Повторите попытку."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Управление конференц-связью"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Динамик"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Динамик гарнитуры"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Проводная гарнитура"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Отправить следующие тоны?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Отправка тональных сигналов"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Позвонить"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Да"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Нет"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Заменить универсальный символ на"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Не указан номер голосовой почты"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карте нет ни одного номера голосовой почты."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Добавить номер"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM-карта разблокирована. Осуществляется разблокировка телефона..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN для разблокировки сети SIM-карты"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Разблокировать"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Закрыть"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Запрос разблокировки сети..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Запрос на разблокировку сети не выполнен."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Разблокировка сети успешно завершена."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Настройки вызовов GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Настройки вызовов CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Точки доступа (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Настройки сети"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Голосовая почта"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+    <string name="networks" msgid="8873030692174541976">"Операторы связи"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Вызовы"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Дополнительные настройки"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Дополнительные настройки только для вызовов GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Дополнительные настройки вызовов CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Дополнительные настройки только для вызовов CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Настройки сетевой службы"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"АОН"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Загрузка настроек…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Скрывать номер при исходящих вызовах"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Номер, отображающийся при исходящих вызовах"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"При исходящих вызовах использовать для отображения моего номера настройки, предоставляемые оператором"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Параллельный вызов"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Извещать меня о входящих вызовах во время разговора"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Извещать меня о входящих вызовах во время разговора"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Настройки переадресации вызова"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Переадресация вызова"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Всегда на номер"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Всегда переадресовывать вызов на этот номер"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Переадресация всех вызовов"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Переадресация всех вызовов на номер <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Номер не указан"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Отключено"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Если занято"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Номер, использующийся, когда линия занята"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Переадресация на номер <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Отключено"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Ваш оператор не позволяет отключать переадресацию вызовов, если телефон занят."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"При отсутствии ответа"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Номер для переадресации при отсутствии ответа"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Переадресация на номер <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Отключено"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Ваш оператор не позволяет отключать переадресацию вызовов, если нет ответа."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Если недоступен"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Номер для переадресации, если абонент недоступен"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Переадресация на номер <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Отключено"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ваш оператор не позволяет отключать переадресацию вызовов, если телефон находится вне зоны доступа."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Настройки вызовов"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Ошибка настройки вызовов"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Чтение настроек…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Обновление настроек…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Возврат к предыдущим настройкам…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Неожиданный отклик сети."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Ошибка сети или SIM-карты."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Разрешенные номера в приложении \"Телефон\" включены. В результате некоторые функции вызовов недоступны."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Чтобы увидеть настройки, включите приемопередатчик."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"ОК"</string>
+    <string name="enable" msgid="1059008390636773574">"Включить"</string>
+    <string name="disable" msgid="7274240979164762320">"Отключить"</string>
+    <string name="change_num" msgid="239476305819844391">"Обновить"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Настройки сети по умолчанию"</item>
+    <item msgid="7876195870037833661">"Скрыть номер"</item>
+    <item msgid="1108394741608734023">"Показывать номер"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Номер голосовой почты изменен."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Не удалось изменить номер голосовой почты."\n"Если проблема не будет решена, обратитесь к оператору связи."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Не удалось изменить номер переадресации."\n"Если проблема не будет решена, обратитесь к оператору связи."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Не удалось сохранить текущие настройки переадресации."\n"Все равно сменить провайдера?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Номер не изменен."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Выберите службу голосовой почты"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Мой оператор"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Настройки мобильной сети"</string>
+    <string name="label_available" msgid="1181658289009300430">"Доступные сети"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Поиск…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Сети не найдены."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Поиск сетей"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Ошибка поиска сетей."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Регистрация в сети <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не поддерживает подключение к этой сети."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Не удалось подключиться к сети. Повторите попытку позже."</string>
+    <string name="registration_done" msgid="495135664535876612">"Регистрация в сети завершена."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Выберите оператора связи"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Поиск всех доступных сетей"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Автоматически"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Автоматически выбирать предпочтительную сеть"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Автоматическая регистрация..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Режим сети"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Изменить режим работы сети"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Режим предпочтительной сети"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Предпочтительная сеть: WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Предпочтительная сеть: только GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Предпочтительная сеть: только WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Предпочтительная сеть: GSM или WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Предпочтительная сеть: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Предпочтительная сеть: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Предпочтительная сеть: только CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Предпочтительная сеть: только EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Предпочтительный режим: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Предпочтительный режим: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Предпочтительный режим: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Предпочтительный режим: CDMA и LTE/EvDo"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Предпочтительный режим: весь мир"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Предпочтительный режим: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Весь мир"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA и LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Только EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA без EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo (авторежим)"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA (авторежим)"</item>
+    <item msgid="7913148405605373434">"Только WCDMA"</item>
+    <item msgid="1524224863879435516">"Только GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA (предпочтительно)"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Передача данных"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Разрешить передачу данных по сети мобильной связи"</string>
+    <string name="roaming" msgid="8871412572928323707">"Интернет-роуминг"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Подключаться к службам передачи данных в роуминге"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Подключаться к службам передачи данных в роуминге"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Передача данных прекращена, потому что телефон находится за пределами домашней сети, а интернет-роуминг выключен."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Разрешить интернет-роуминг? Возможны высокие расходы за использование роуминга."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Параметры CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Передача данных"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Передача данных в текущем периоде"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Время передачи данных"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Скорость передачи данных"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Подробнее"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) из <xliff:g id="USED_2">%3$s</xliff:g> (максимум)"\n"Следующий период начнется в течение <xliff:g id="USED_3">%4$d</xliff:g> дн. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) из <xliff:g id="USED_2">%3$s</xliff:g> (максимум)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Превышен лимит в <xliff:g id="USED_0">%1$s</xliff:g>."\n"Скорость передачи данных снижена до <xliff:g id="USED_1">%2$d</xliff:g> кбит/с."</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Превышение лимита снижает скорость передачи данных до <xliff:g id="USED">%1$d</xliff:g> кбит/с"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Подробнее о политике передачи данных вашего оператора мобильной связи..."</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Широковещательные SMS-службы"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Широковещательные SMS-службы"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Широковещательные SMS-службы включены"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Широковещательные SMS-службы отключены"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Настройки широковещательных SMS-служб"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Оповещения о чрезвычайных ситуациях"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Оповещения о чрезвычайных ситуациях включены"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Оповещения о чрезвычайных ситуациях отключены"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Административные функции"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Административные функции включены"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Административные функции отключены"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Поддержка"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Поддержка включена"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Поддержка отключена"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Основные новости"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Финансовые и деловые новости"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Новости спорта"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Калейдоскоп"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Местные"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Местные новости включены"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Местные новости отключены"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Региональные"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Региональные новости включены"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Региональные новости отключены"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Национальные"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Национальные новости включены"</string>
+    <string name="national_disable" msgid="326018148178601166">"Национальные новости отключены"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Международные"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Международные новости включены"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Международные новости отключены"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Язык"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Выбрать язык для новостей"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"английский"</item>
+    <item msgid="1151988412809572526">"французский"</item>
+    <item msgid="577840534704312665">"испанский"</item>
+    <item msgid="8385712091143148180">"японский"</item>
+    <item msgid="1858401628368130638">"корейский"</item>
+    <item msgid="1933212028684529632">"китайский"</item>
+    <item msgid="1908428006803639064">"иврит"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Языки"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Местный прогноз погоды"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Местный прогноз погоды включен"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Местный прогноз погоды отключен"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Информация о пробках"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Информация о пробках включена"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Информация о пробках отключена"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Расписание рейсов местного аэропорта"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Расписание рейсов местного аэропорта включено"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Расписание рейсов местного аэропорта отключено"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Рестораны"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Рестораны включены"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Рестораны отключены"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Аренда жилья"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Аренда жилья включена"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Аренда жилья отключена"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Торговый каталог"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Торговый каталог включен"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Торговый каталог отключен"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Реклама"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Реклама включена"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Реклама отключена"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Котировки ценных бумаг"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Котировки ценных бумаг включены"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Котировки ценных бумаг отключены"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Вакансии"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Вакансии включены"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Вакансии отключены"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Медицинские учреждения"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Медицинские учреждения (включено)"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Медицинские учреждения (отключено)"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Новости технологий"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Новости технологий включены"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Новости технологий отключены"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Подборка из нескольких категорий"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Подборка из нескольких категорий включена"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Подборка из нескольких категорий отключена"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Только сети 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Использовать сети 2G для экономии заряда батареи"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Выбор системы"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Изменить режим роуминга CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Выбор системы"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Только домашняя"</item>
+    <item msgid="1205664026446156265">"Автоматически"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA subscription"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Переключение между RUIM/SIM и NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"подписка"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Активировать устройство"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Настроить передачу данных"</string>
+    <string name="fdn" msgid="7878832555095183202">"Разрешенные номера"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Разрешенные номера"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Активация разреш. номеров"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Разрешенные номера включены"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Разрешенные номера отключены"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Вкл. разреш. номера"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Откл. разреш. номера"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Изменить PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Откл. разреш. номера"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Вкл. разреш. номера"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Управление списком разрешенных номеров"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Изменить PIN для доступа к списку разрешенных номеров"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Управление списком разрешенных номеров"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Конфиденциальность"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Включить усиленный режим конфиденциальности"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Режим телетайпа"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Установить режим телетайпа"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Автодозвон"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Включить режим автодозвона"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Добавить контакт"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Изменить контакт"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Удалить контакт"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Тип кода PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Имя"</string>
+    <string name="number" msgid="7905950798349903858">"Номер"</string>
+    <string name="save" msgid="4094274636321939086">"Сохранить"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Добавить номер ограниченного набора"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Выполняется добавление номера ограниченного набора..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Номер ограниченного набора добавлен."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Изменить номер ограниченного набора"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Выполняется обновление номера ограниченного набора..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Номер ограниченного набора обновлен."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Удалить номер ограниченного набора"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Выполняется удаление номера ограниченного набора…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Номер ограниченного набора удален."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Разрешенный номер не обновлен, так как введен неверный PIN-код."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Разрешенный номер не обновлен, т. к. не может содержать более 20 цифр."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Список разрешенных номеров не обновлен. Указан неверный PIN2 или номер телефона."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Считывание с SIM-карты…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"На SIM-карте нет контактов."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Выберите контакты для импорта"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Чтобы перенести контакты с SIM-карты, отключите режим полета."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Включить/отключить запрос PIN SIM-карты"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Изменить PIN SIM-карты"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN SIM-карты:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Прежний PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Новый PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Подтвердите новый PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Прежний PIN-код указан неверно. Повторите попытку."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Введенные PIN-коды не совпадают. Повторите попытку."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Введите PIN, содержащий от 4 до 8 цифр."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Отключить запрос PIN SIM-карты"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Включить запрос PIN SIM-карты"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Подождите..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Запрос PIN-кода SIM-карты включен"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Запрос PIN-кода SIM-карты отключен."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN-код указан неверно."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN-код изменен."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Неверный пароль, SIM-карта заблокирована! Введите код PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Прежний PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Новый PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Подтвердите новый PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Код PUK2 указан неверно. Повторите попытку."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Прежний код PIN2 указан неверно. Повторите попытку."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Введенные коды PIN2 не совпадают. Повторите попытку."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Введите PIN2, содержащий от 4 до 8 цифр."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Введите 8-значный код PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Код PIN2 изменен."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Введите код PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Неверный пароль. Измените код PIN2 и повторите попытку."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Неверный пароль, SIM-карта заблокирована. Введите код PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Готово"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конференц-вызов: <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Номер голосовой почты"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Набор номера"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Повторная попытка"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конференц-вызов"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Входящий вызов"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Вызов завершен"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ждет ответа"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Завершение разговора"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Поступающий вызов"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Мой номер: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Набор номера"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущенный вызов"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропущенные вызовы"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Пропущенных вызовов: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропущенные вызовы от абонента <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Текущий вызов"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"На удержании"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Входящий вызов"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Новое сообщение голосовой почты"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Новое сообщение голосовой почты (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Набор <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Номер голосовой почты неизвестен"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Сеть не найдена"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Выбранная сеть (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недоступна."</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Завершить разговор"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Позвонить"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Написать"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Перед тем как звонить, отключите режим полета."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Нет регистрации в сети."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Мобильная сеть недоступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Вызов не осуществляется, действительный номер телефона не указан."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Вызов не осуществляется."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Запуск последовательности MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Услуга не поддерживается."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Не удается переключить вызовы."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Не удалось разделить вызов."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Не удалось перевести вызов."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Не удается создать конференц-вызов."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Невозможно отклонить вызов."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Не удается разъединить абонентов."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Интернет-вызов"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Экстренный вызов"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Включение радио…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Вне зоны действия сети, повторное подключение..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Вызов не выполнен. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> – не номер экстренной службы."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Вызов не выполнен. Наберите номер."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Используйте клавиатуру для набора номера"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Удерживать"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Завершить"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Кнопки"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Откл. звук"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"+ вызов"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Соединить"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Перевод звонка"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Управление вызовами"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Управление конференцией"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Импортировать"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Импортировать все"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Импорт контактов с SIM-карты"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Импортировать из контактов"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Слуховые аппараты"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Включить слуховой аппарат"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Телетайп выключен"</item>
+    <item msgid="3971695875449640648">"Полнофункциональный телетайп"</item>
+    <item msgid="1937509904407445684">"Телетайп с возможностью слышать собеседника"</item>
+    <item msgid="5644925873488772224">"Телетайп с возможностью передачи голоса"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-сигналы"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Настроить длительность тональных сигналов DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Обычные"</item>
+    <item msgid="2883365539347850535">"Длинные"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Сообщение сети"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Активировать телефон"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Необходим специальный звонок для активации службы телефона. "\n\n"После нажатия кнопки \"Активировать\" прослушайте инструкции по активации телефона."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Пропустить активацию?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Если вы пропустите активацию, вы не сможете совершать вызовы и подключаться к мобильным сетям передачи данных (хотя вы сможете подключаться к сетям Wi-Fi). Пока вы не активируете свой телефон, запрос активации будет отображаться при каждом его включении."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Пропустить"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Активировать"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Телефон активирован."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Неполадки при активации"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Следуйте голосовым инструкциям, пока вам не сообщат, что активация завершена."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Динамик"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Дождитесь завершения программирования."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Сбой при программировании"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Ваш телефон активирован. Включение службы может занять до 15 минут."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Телефон не был активирован."\n"Возможно, вам следует найти зону с более высоким уровнем сигнала (у окна или на улице)."\n\n"Повторите попытку или свяжитесь со службой поддержки."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ПРЕВЫШЕНИЕ ЧИСЛА ОШИБОК SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Назад"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Повторите попытку"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Далее"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"ДиалогВыходаРАЭВ"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Телефон переведен в режим экстренных обратных вызовов"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Режим экстренных обратных вызовов"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Передача данных отключена"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Подключение для передачи данных отсутствует <xliff:g id="COUNT">%s</xliff:g> мин."</item>
+    <item quantity="other" msgid="3122217344579273583">"Подключение для передачи данных отсутствует <xliff:g id="COUNT">%s</xliff:g> мин."</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Телефон будет оставаться в режиме экстренных обратных вызовов еще <xliff:g id="COUNT">%s</xliff:g> мин. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Телефон будет оставаться в режиме экстренных обратных вызовов еще <xliff:g id="COUNT">%s</xliff:g> мин. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Выбранное действие невозможно при экстренных обратных вызовах. Телефон будет оставаться в этом режиме еще <xliff:g id="COUNT">%s</xliff:g> мин. Выйти?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Выбранное действие невозможно при экстренных обратных вызовах. Телефон будет оставаться в этом режиме еще <xliff:g id="COUNT">%s</xliff:g> мин. Выйти?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Выбранное действие невозможно при экстренном вызове."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Выход из режима экстренных обратных вызовов"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Да"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Нет"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Закрыть"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Служба"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Настройка"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не задано&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Другие настройки вызовов"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Звонок через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"фотография контакта"</string>
+    <string name="goPrivate" msgid="865837794424530980">"приватная конференция"</string>
+    <string name="selectContact" msgid="781975788478987237">"выбрать контакт"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Настройки интернет-телефонии"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Аккаунты интернет-телефонии (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Аккаунты"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Принимать входящие"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Повышает расход заряда батареи"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Использовать Интернет"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Использовать интернет-соединение (Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Для всех вызовов при возможности передачи данных"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Только для интернет-вызовов"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Спрашивать для каждого вызова"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Для всех вызовов"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Исходящий вызов"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Аккаунт для интернет-вызовов:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Использовать для всех интернет-вызовов"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Изменить аккаунт интернет-вызовов, используемый по умолчанию, можно в настройках интернет-телефонии на экране \"Аккаунты\"."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Вызов по сотовой сети"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Интернет-вызов"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Нет аккаунтов для интернет-вызовов"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"На телефоне нет аккаунтов для интернет-телефонии. Добавить?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Добавить"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Добавить аккаунт"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Удалить аккаунт"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-аккаунты"</string>
+    <string name="saving_account" msgid="52903398217017954">"Сохранение..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Удаление аккаунта..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Сохранить"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Отменить"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Закройте профиль"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ОК"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Закрыть"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Основной аккаунт. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Проверка состояния..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Регистрация..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Подождите..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Вызовы не принимаются."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Регистрация аккаунта прервана – отсутствует подключение к Интернету."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Регистрация прервана. Отсутствует подключение к Wi-Fi"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Не удалось зарегистрировать аккаунт."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Вызовы принимаются."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Не удалось зарегистрировать аккаунт (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Новая попытка будет предпринята позже."</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Не удалось зарегистрировать аккаунт. Неверное имя пользователя или пароль."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Не удалось зарегистрировать аккаунт. Неверное имя сервера."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Аккаунт используется приложением \"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>\"."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Настройки SIP-аккаунта"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Настройки SIP-аккаунта"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Сервер"</string>
+    <string name="username_title" msgid="2479375923477682328">"Имя пользователя"</string>
+    <string name="password_title" msgid="3323555249068171531">"Пароль"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Отображаемое имя"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Адрес прокси-сервера"</string>
+    <string name="port_title" msgid="5952939408078626657">"Номер порта"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Протокол"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Отправлять keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Основной аккаунт"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Использовать этот аккаунт по умолчанию для исходящих вызовов"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Расширенные настройки"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Имя пользователя"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Имя пользователя для аутентификации"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Не настроено&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Совпадает с именем пользователя&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Необязательно&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Нажмите, чтобы показать все"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Нажмите, чтобы скрыть все"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Поле \"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>\" должно быть заполнено."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Номер порта должен быть от 1000 до 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Подключение к Интернету отсутствует"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Отсутствует подключение Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Перед звонком проверьте подключение к Интернету"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Чтобы выполнить интернет-вызов, подключитесь к сети Wi-Fi (см. настройки беспроводной сети)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Интернет-вызов не поддерживается"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Автоматически"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Отправлять всегда"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Голосовые вызовы не поддерживаются"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Не могу говорить. Что случилось?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Я сейчас вам перезвоню."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Я перезвоню вам позже."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Не могу говорить. Позвоните позже."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Ваш ответ…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Быстрые ответы"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Быстрые ответы"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Быстрый ответ"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Сбросить стандартные настройки"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Сообщение отправлено на номер <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"один"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"два"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"три"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"четыре"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"пять"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"шесть"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"семь"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"восемь"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"девять"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"звездочка"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"ноль"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"решетка"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"набор номера"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"возврат"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Громкая связь включена."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Звук выключен."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Правильный вариант"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Отправить SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Отклонить"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибросигнал"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибросигнал"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"По умолчанию (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Рингтон"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибросигнал и рингтон"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Звук клавиш"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Автозаполнение номера"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон и вибросигнал"</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
new file mode 100644
index 0000000..293e164
--- /dev/null
+++ b/res/values-sk/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilné dáta"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefón"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Tiesňové vytáčanie"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefón"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Zoznam pevne určených čísiel (FDN)"</string>
+    <string name="unknown" msgid="6878797917991465859">"Neznáme"</string>
+    <string name="private_num" msgid="6713286113000232309">"Súkromné číslo"</string>
+    <string name="payphone" msgid="1931775086311769314">"Verejný telefón"</string>
+    <string name="onHold" msgid="9035493194749959955">"Podržaný hovor"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linka je obsadená"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Sieť je zaneprázdnená"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Bez odozvy, vypršal časový limit"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server je nedostupný"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Volané číslo je nedostupné"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Nesprávne používateľské meno alebo heslo"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Volanie z priestoru mimo siete"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Chyba servera: Skúste to znova neskôr."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Žiadny signál"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Bol prekročený limit ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Rádio je vypnuté"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Karta SIM chýba alebo nefunguje"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Nepokrytá oblasť"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Odchádzajúce hovory sú obmedzené na pevne určené čísla (FDN)."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Ak je zapnuté blokovanie hovorov, nie je možné uskutočňovať odchádzajúce hovory."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Všetky hovory sú obmedzené ovládaním prístupu."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Tiesňové volania sú obmedzené ovládaním prístupu."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Bežné volania sú obmedzené ovládaním prístupu."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Neplatné číslo"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferenčný hovor"</string>
+    <string name="call_lost" msgid="317670617901479594">"Hovor bol prerušený."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Kód MMI bol spustený"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Kód USSD je spustený..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kód MMI bol zrušený"</string>
+    <string name="cancel" msgid="5044513931633602634">"Zrušiť"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Správa USSD musí mať od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znakov. Skúste to znova."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovať konferenčný hovor"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Reproduktor"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slúchadlo"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Náhlavná súprava s káblom"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Odoslať nasledujúce tóny?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Odosielanie tónov"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Odoslať"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Áno"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nie"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Nahradiť zástupný znak znakom"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Chýba číslo hlasovej schránky"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na karte SIM nie je uložené žiadne číslo hlasovej schránky."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Pridať číslo"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Karta SIM bola odblokovaná. Prebieha odomykanie telefónu..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Kód PIN odomknutia siete pre kartu SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Odomknúť"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Zrušiť"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Žiadosť o odomknutie siete..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Žiadosť o odomknutie siete nebola úspešná."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Sieť bola odomknutá."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Nastavenia hovorov GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavenia hovorov CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Názvy prístupových bodov"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Nastavenia siete"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Hlasová schránka"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
+    <string name="networks" msgid="8873030692174541976">"Sieťoví operátori"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Nastavenia hovorov"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ďalšie nastavenia"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Ďalšie nastavenia hovorov, iba GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Ďalšie nastavenia hovorov CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Ďalšie nastavenia hovorov, iba CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Nastavenia sieťovej služby"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Identifikácia volajúceho"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Načítavajú sa nastavenia..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Číslo je v odchádzajúcich hovoroch skryté"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Číslo je zobrazené v odchádzajúcich hovoroch"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Zobrazenie čísla v odchádzajúcich hovoroch sa bude riadiť predvolenými nastaveniami operátora"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Čakajúci hovor"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Oznamuje prichádzajúce hovory aj pri prebiehajúcom hovore"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Oznamuje prichádzajúce hovory aj pri prebiehajúcom hovore"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Nastavenia presmerovania hovorov"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Presmerovanie hovorov"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Vždy presmerovať"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Vždy používať toto číslo"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Všetky hovory budú presmerované"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Presmerovanie všetkých hovorov na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Číslo nie je k dispozícii"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Zakázané"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Presmerovať – obsadené"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Číslo pri obsadenej linke"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Presmerovanie na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Zakázané"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Váš operátor neumožňuje zakázanie presmerovaní, keď je telefón nedostupný."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Presmerovať – neprijatý hovor"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Číslo pri neprijatí hovoru"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Presmerovanie na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Zakázané"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Váš operátor neumožňuje zakázanie presmerovaní hovorov, keď telefón neodpovedá."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Presmerovať v prípade nedostupnosti"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Číslo pri nedostupnosti"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Presmerovanie na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Zakázané"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Váš operátor neumožňuje zakázanie presmerovaní, keď je telefón nedostupný."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Nastavenia hovorov"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Chyba nastavení hovorov"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Prebieha načítavanie nastavení..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Prebieha aktualizácia nastavení..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Prebieha vrátenie predchádzajúcich nastavení…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Neočakávaná odpoveď siete."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Došlo k chybe siete alebo karty SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Nastavenie Pevne určené čísla v aplikácii Telefón je povolené. Z toho dôvodu nefungujú niektoré funkcie volania."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Pred zobrazením nastavení zapnite rádio."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Povoliť"</string>
+    <string name="disable" msgid="7274240979164762320">"Zakázať"</string>
+    <string name="change_num" msgid="239476305819844391">"Aktualizovať"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Predvolené nastavenie siete"</item>
+    <item msgid="7876195870037833661">"Skryť číslo"</item>
+    <item msgid="1108394741608734023">"Zobraziť číslo"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Číslo hlasovej schránky bolo zmenené."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Číslo hlasovej schránky sa nepodarilo zmeniť."\n"Ak bude problém pretrvávať, kontaktujte operátora."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Číslo presmerovania hovorov sa nepodarilo zmeniť."\n"Ak bude problém pretrvávať, kontaktujte operátora."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Načítanie a uloženie aktuálnych nastavení čísla presmerovania zlyhalo."\n"Chcete aj napriek tomu prepnúť na nového poskytovateľa?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Neuskutočnili sa žiadne zmeny."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Zvoliť službu hlasovej schránky"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Môj operátor"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Nastavenia mobilnej siete"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostupné siete"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Prebieha vyhľadávanie…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nebola nájdená žiadna sieť."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Vyhľadávanie sietí"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Pri vyhľadávaní sietí došlo k chybe."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Prebieha registrácia v sieti <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Vaša karta SIM nepovoľuje pripojenie k tejto sieti."</string>
+    <string name="connect_later" msgid="2308119155752343975">"V tejto chvíli sa nedá pripojiť k sieti. Skúste to znova neskôr."</string>
+    <string name="registration_done" msgid="495135664535876612">"Prihlásenie k sieti prebehlo úspešne."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Zvoliť sieťového operátora"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Hľadať všetky dostupné siete"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Vybrať automaticky"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automaticky vybrať preferovanú sieť"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatická registrácia..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Režim siete"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Zmeniť prevádzkový režim siete"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Preferovaný režim siete"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferovaný režim siete: preferované WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferovaný režim siete: iba GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferovaný režim siete: iba WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferovaný režim siete: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferovaný režim siete: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferovaný režim siete: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferovaný režim siete: iba CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferovaný režim siete: iba EVDO"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferovaný režim siete: CDMA / EvDo / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferovaný režim siete: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferovaný režim siete: GSM / WCDMA / LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferovaný režim siete: CDMA + LTE / EvDo"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferovaný režim siete: Globálny"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferovaný režim siete: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globálny"</item>
+    <item msgid="127064712132619032">"GSM / WCDMA / LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE / EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA / EvDo / GSM / WCDMA"</item>
+    <item msgid="545430093607698090">"Iba EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA / EvDo – automaticky"</item>
+    <item msgid="5958053792390386668">"GSM / WCDMA – automaticky"</item>
+    <item msgid="7913148405605373434">"Iba WCDMA"</item>
+    <item msgid="1524224863879435516">"Iba GSM"</item>
+    <item msgid="3817924849415716259">"GSM / WCDMA – preferované"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Dátové prenosy aktivované"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Povolí dátový prístup prostredníctvom mobilnej siete"</string>
+    <string name="roaming" msgid="8871412572928323707">"Dátové služby pri roamingu"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Dátové služby sa môžu pripájať pri roamingu"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Dátové služby sa môžu pripájať pri roamingu"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Pripojenie dátových služieb bolo prerušené, pretože ste opustili domovskú sieť a dátové služby pri roamingu máte vypnuté."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Naozaj chcete povoliť dátové služby pri roamingu? Môžu sa účtovať vysoké poplatky."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Možnosti CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Využitie dát"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Dáta využité v aktuálnom období"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Obdobie využitia dát"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Pravidlá pre prenosovú rýchlosť"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Viac informácií"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) z limitu <xliff:g id="USED_2">%3$s</xliff:g> pre obdobie"\n"Počet dní do začiatku ďalšieho obdobia: <xliff:g id="USED_3">%4$d</xliff:g> (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) z limitu <xliff:g id="USED_2">%3$s</xliff:g> pre obdobie"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Bol prekročený limit <xliff:g id="USED_0">%1$s</xliff:g>"\n"Prenosová rýchlosť bola znížená na <xliff:g id="USED_1">%2$d</xliff:g> kB/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Uplynulo <xliff:g id="USED_0">%1$d</xliff:g>٪ cyklu"\n"Počet dní do začiatku ďalšieho obdobia: <xliff:g id="USED_1">%2$d</xliff:g> (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"V prípade prekročenia limitu využitia dát sa prenosová rýchlosť zníži na <xliff:g id="USED">%1$d</xliff:g> kB/s"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Ďalšie informácie o pravidlách využitia dát v mobilnej sieti vášho mobilného operátora"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS Cell Broadcast"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Cell Broadcast"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS Cell Broadcast povolené"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS Cell Broadcast zakázané"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Nastavenia SMS Cell Broadcast"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Tiesňové vysielanie"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Tiesňové vysielanie povolené"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Tiesňové vysielanie zakázané"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratívne"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administratívne povolené"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administratívne zakázané"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Údržba"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Údržba povolená"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Údržba zakázaná"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Všeobecné správy"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Obchodné a finančné správy"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Športové správy"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Správy z oblasti zábavy"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Miestne"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Miestne správy povolené"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Miestne správy zakázané"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionálny"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionálne správy povolené"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionálne správy zakázané"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Národné"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Národné správy povolené"</string>
+    <string name="national_disable" msgid="326018148178601166">"Národné správy zakázané"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Medzinárodné"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Medzinárodné správy povolené"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Medzinárodné správy zakázané"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jazyk"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Vyberte jazyk správ"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Angličtina"</item>
+    <item msgid="1151988412809572526">"Francúzština"</item>
+    <item msgid="577840534704312665">"Španielčina"</item>
+    <item msgid="8385712091143148180">"Japončina"</item>
+    <item msgid="1858401628368130638">"Kórejčina"</item>
+    <item msgid="1933212028684529632">"čínština"</item>
+    <item msgid="1908428006803639064">"Hebrejčina"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jazyky"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Miestne počasie"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Miestne počasie povolené"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Miestne počasie zakázané"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Oblastné prehľady premávky"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Oblastné prehľady premávky povolené"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Oblastné prehľady premávky zakázané"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Miestne prílety a odlety"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Miestne prílety a odlety povolené"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Miestne prílety a odlety zakázané"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Reštaurácie"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Reštaurácie povolené"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Reštaurácie zakázané"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Ubytovanie"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Ubytovania povolené"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Ubytovanie zakázané"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Adresár predajcov"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Adresár predajcov povolený"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Adresár predajcov zakázaný"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklamy"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklamy povolené"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklamy zakázané"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Správy z akciových trhov"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Správy z akciových trhov zakázané"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Správy z akciových trhov zakázané"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Pracovné príležitosti"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Pracovné príležitosti povolené"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Pracovné príležitosti zakázané"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Lekárstvo, zdravie a nemocnica"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Lekárstvo, zdravie a nemocnica povolené"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Lekárstvo, zdravie a nemocnica zakázané"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technologické správy"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Technologické správy povolené"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Technologické správy zakázané"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Viac kategórií"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Viac kategórií povolených"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Viacero kategórií zakázané"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Používať iba siete 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Šetrí batériu"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Výber systému"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Zmeniť režim roamingu CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Výber systému"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Iba plocha"</item>
+    <item msgid="1205664026446156265">"Automaticky"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Odber CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Prepnúť medzi RUIM/SIM a NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"odber"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivovať zariadenie"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Nastaviť dátovú službu"</string>
+    <string name="fdn" msgid="7878832555095183202">"Pevne určené čísla"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Zoznam pevne určených čísiel (FDN)"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktivácia pevne určených čísiel (FDN)"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Režim Pevne určené čísla je povolený"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Režim Pevne určené čísla je zakázaný"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Zapnúť pevne určené čísla (FDN)"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Zakázať režim pevne určené čísla (FDN)"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Zmena kódu PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Zakázať režim pevne určené čísla (FDN)"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Zapnúť pevne určené čísla (FDN)"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Umožňuje spravovať Pevne určené čísla"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Umožňuje zmeniť kód PIN pre prístup k pevne určeným číslam (FDN)"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Správa telefónneho zoznamu"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Ochrana osobných údajov hlasovej pošty"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Povoliť režim vylepšenej ochrany osobných údajov"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Režim TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Nastaviť režim TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automaticky skúsiť znova"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Povoliť režim Automaticky skúsiť znova."</string>
+    <string name="menu_add" msgid="1882023737425114762">"Pridať kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Upraviť kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Odstrániť kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Zadajte kód PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Meno"</string>
+    <string name="number" msgid="7905950798349903858">"Číslo"</string>
+    <string name="save" msgid="4094274636321939086">"Uložiť"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Pridať pevne určené čísla"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Prebieha pridávanie pevne určených čísiel..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Pevne určené číslo bolo pridané."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Upraviť pevne určené číslo"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Prebieha aktualizácia pevne určeného čísla..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Pevne určené číslo bolo aktualizované."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Odstrániť pevne určené čísla"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Prebieha odstraňovanie pevne určených čísiel..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Pevne určené čísla boli odstránené."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Pevne určené čísla (FDN) neboli aktualizované, pretože ste zadali nesprávny kód PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Pevne určené čísla (FDN) neboli aktualizované, pretože číslo nesmie presiahnuť 20 číslic."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Pevne určené čísla (FDN) neboli aktualizované. Kód PIN2 bol nesprávny alebo bolo telefónne číslo odmietnuté."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Prebieha čítanie z karty SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Na karte SIM nie sú žiadne kontakty."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Vybrať kontakty na import"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Ak chcete importovať kontakty z karty SIM, vypnite režim V lietadle."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Povoliť alebo zakázať kód PIN karty SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Zmeniť kód PIN karty SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Kód PIN karty SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Pôvodný kód PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Nový kód PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potvrďte nový kód PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Pôvodný kód PIN bol zadaný nesprávne. Skúste to znova."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Zadané kódy PIN sa nezhodujú. Skúste to znova."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Zadajte kód PIN s dĺžkou 4 až 8 číslic."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Zakázať kód PIN karty SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Povoliť kód PIN karty SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Čakajte..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Kód PIN karty SIM je povolený."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Kód PIN karty SIM je zakázaný."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Zadaný kód PIN je nesprávny."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Kód PIN karty SIM bol zmenený."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Neplatné heslo, karta SIM je uzamknutá. Zadajte kód PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Pôvodný kód PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nový kód PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potvrdiť nový kód PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Zadaný kód PUK2 nie je správny. Skúste to znova."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Pôvodný kód PIN2 bol zadaný nesprávne. Skúste to znova."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Zadané kódy PIN2 sa nezhodujú. Skúste to znova."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Zadajte kód PIN2 s dĺžkou 4 až 8 číslic."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Zadajte 8-miestny kód PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Kód PIN2 bol zmenený."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Zadajte kód PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Heslo je nesprávne. Zmeňte kód PIN2 a skúste to znova."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Nesprávne heslo, karta SIM bola uzamknutá. Zadajte kód PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Hotovo"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferenčný hovor <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Číslo hlasovej schránky"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Vytáčanie"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Opakuje sa pokus"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenčný hovor"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Prichádzajúci hovor"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Hovor bol ukončený"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Podržaný hovor"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Ukončovanie hovoru"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Prebieha hovor"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Moje číslo je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Vytáčanie"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Zmeškané hovory"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>."</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Zmeškaný hovor od volajúceho <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Prebiehajúci hovor"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Podržaný hovor"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Prichádzajúci hovor"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nová hlasová správa"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nová hlasová správa (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Zavolať hlasovú schránku <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Číslo hlasovej schránky je neznáme"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Žiadny signál"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Vybratá sieť (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nie je k dispozícii"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Položiť"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zavolať späť"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Správa"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Ak chcete telefonovať, vypnite najprv režim V lietadle."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Prihlásenie do siete nebolo úspešné."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobilná sieť nie je k dispozícii."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Hovor sa nepodarilo spojiť, nebolo zadané platné číslo."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Hovor nebol spojený."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Prebieha spúšťanie sekvencie MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nepodporovaná služba."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Hovory nie je možné prepnúť."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Hovor nie je možné oddeliť."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Hovor nie je možné preniesť."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hovory nie je možné spojiť do konferenčného hovoru."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Hovor nie je možné odmietnuť."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Hovor nie je možné uvoľniť."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetový hovor"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tiesňové volanie"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Prebieha zapínanie rádia..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Nepokrytá oblasť, opakovanie pokusu..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Hovor sa nepodarilo spojiť. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie je číslo núdzového volania."</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Hovor nebol spojený, vytočte číslo tiesňového volania."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Číslo vytočíte pomocou klávesnice."</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Podržať"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Koniec"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Číselná klávesnica"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Ignorovať"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Pridať hovor"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Zlúčiť hovory"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zameniť"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Spravovať hovory"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Správa konferencie"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videohovor"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importovať"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importovať všetko"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importovanie kontaktov z karty SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import z kontaktov"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Načúvacie pomôcky"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Zapnúť režim kompatibility s načúvacou pomôckou"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY vypnuté"</item>
+    <item msgid="3971695875449640648">"Úplný režim TTY"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Tóny DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Nastaviť dĺžku tónov DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normálna"</item>
+    <item msgid="2883365539347850535">"Dlhé"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Informácia siete"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivujte svoj telefón"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Telefónnu službu je potrebné aktivovať uskutočnením mimoriadneho hovoru. "\n\n"Stlačte tlačidlo Aktivovať a aktivujte telefón podľa poskytnutých pokynov."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Preskočiť aktiváciu?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ak preskočíte aktiváciu, nemôžete volať ani sa pripájať k mobilným dátovým sieťam (môžete sa ale pripojiť k sieťam Wi-Fi). Ak svoj telefón neaktivujete, bude sa pri každom zapnutí zobrazovať výzva na aktiváciu."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Preskočiť"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivovať"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefón je aktivovaný."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problém s aktiváciou"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Postupujte podľa hlasových pokynov, až kým nebudete informovaní o dokončení aktivácie."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Reproduktor"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Počkajte, kým sa telefón naprogramuje."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programovanie nebolo úspešné"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Váš telefón je teraz aktivovaný. Spustenie služby môže trvať až 15 minút."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Váš telefón nebol aktivovaný. "\n"Možno bude treba vyhľadať oblasť s lepším pokrytím (blízko okna alebo vonku). "\n\n"Skúste to znova alebo kontaktujte oddelenie zákazníckych služieb, kde získate informácie o ďalších možnostiach."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"PRÍLIŠ VEĽA ZLYHANÍ CERTIFIKÁTOV SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Späť"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Skúsiť znova"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Ďalej"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"Dialóg ukončenia režimu tiesňového spätného volania"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Bol aktivovaný režim tiesňového spätného volania"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Režim tiesňového spätného volania"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Dátové pripojenie zakázané"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Žiadne dátové pripojenie po dobu <xliff:g id="COUNT">%s</xliff:g> min"</item>
+    <item quantity="other" msgid="3122217344579273583">"Žiadne dátové pripojenie po dobu <xliff:g id="COUNT">%s</xliff:g> min"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefón bude v režime spätného núdzového volania počas <xliff:g id="COUNT">%s</xliff:g> min. V tomto režime nie je možné používať žiadne aplikácie používajúce dátové pripojenie. Chcete ho ukončiť?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefón bude v režime spätného núdzového volania počas <xliff:g id="COUNT">%s</xliff:g> min. V tomto režime nie je možné používať žiadne aplikácie používajúce dátové pripojenie. Chcete ho ukončiť?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Vybratá akcia nie je k dispozícii v režime Tiesňového spätného volania. Telefón v ňom bude <xliff:g id="COUNT">%s</xliff:g> min. Chcete ho ukončiť?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Vybratá akcia nie je k dispozícii v režime Tiesňového spätného volania. Telefón v ňom bude <xliff:g id="COUNT">%s</xliff:g> min. Chcete ho ukončiť?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Počas tiesňového volania nie je vybratá akcia k dispozícii."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Ukončenie režimu tiesňového spätného volania"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Áno"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nie"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Zrušiť"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Služba"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Nastavenie"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenastavené&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Ďalšie nastavenia hovorov"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografia kontaktu"</string>
+    <string name="goPrivate" msgid="865837794424530980">"prepnúť na súkromné"</string>
+    <string name="selectContact" msgid="781975788478987237">"vybrať kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Nastavenie internetových hovorov"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Účty pre internetové hovory (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Účty"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Prijímať prichádzajúce hovory"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Znižuje výdrž batérie"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Použiť internetový volanie"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Použiť internetový hovor (iba s pripojením Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Pre všetky hovory, pokiaľ je k dispozícii dátová sieť"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Iba pre internetové hovory"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Zakaždým sa spýtať"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Pre všetky hovory"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Uskutočniť hovor"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Použiť účet na internetové hovory:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Vždy používať pri internetových hovoroch"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Predvolený účet na internetové hovory môžete zvoliť na obrazovke Telefón &gt; Nastavenia &gt; Nastavenia internetového hovoru &gt; Účty."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Hovor z mobilného telefónu"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetový hovor"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Žiadny účet na internetové hovory:"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"V tomto telefóne neexistujú žiadne účty internetového hovoru. Chcete jeden pridať?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Pridať"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Pridať účet"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Odstrániť účet"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Účty SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Prebieha ukladanie účtu..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Prebieha odstraňovanie účtu..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Uložiť"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Zahodiť"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Zavrieť profil"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Zavrieť"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primárny účet. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Prebieha kontrola stavu..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Prebieha registrácia..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Prebiehajú ďalšie pokusy..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Hovory sa neprijímajú."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Registrácia účtu bola zastavená, pretože pripojenie k internetu nie je k dispozícii."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Registrácia účtu bola zastavená, pretože pripojenie Wi-Fi nie je k dispozícii."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registrácia účtu nebola úspešná."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Príjem hovorov."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registrácia účtu nebola úspešná: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); skúsime to znova neskôr"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registrácia účtu nebola úspešná: nesprávne používateľské meno alebo heslo."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Registrácia účtu nebola úspešná: skontrolujte názov servera."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Tento účet je momentálne používaný aplikáciou <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Podrobnosti o účtu SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Podrobnosti o účtu SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Používateľské meno"</string>
+    <string name="password_title" msgid="3323555249068171531">"Heslo"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Zobrazované meno"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Adresa výstupného servera proxy"</string>
+    <string name="port_title" msgid="5952939408078626657">"Číslo portu"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Typ prenosu"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Odosielať správy na zachovanie pripojenia"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Nastaviť ako primárny účet"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Použité pre odchádzajúce hovory"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Voliteľné nastavenia"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Používateľské meno na overenie"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Používateľské meno použité na overenie"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Nenastavené&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Rovnaké ako používateľské meno&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Voliteľné&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Výberom tejto položky zobrazíte všetky nastavenia"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Výberom tejto položky skryjete všetky nastavenia"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné. Nie je možné ho ponechať prázdne."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Číslo portu by malo byť od 1 000 do 65 534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Žiadne pripojenie k Internetu"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Pripojenie Wi-Fi nie je k dispozícii"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Ak chcete uskutočniť internetový hovor, skontrolujte, či máte pripojenie k internetu."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Ak chcete uskutočniť internetový hovor, musíte mať pripojenie k sieti Wi-Fi (použite sekciu Nastavenia bezdrôtového pripojenia a siete)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetové hovory nie sú podporované"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatické"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Vždy odoslať"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Hlasové volanie nie je podporované"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Nemôžem telefonovať, čo sa deje?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Zavolám späť."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zavolám neskôr."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Teraz nemôžem, zavolajte inokedy."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napísať vlastnú..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Rýchle odpovede"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Upraviť rýchle odpovede"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Rýchla odpoveď"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Obnoviť predvolenú aplikáciu"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Správa bola odoslaná na číslo <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"jeden"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dva"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tri"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"štyri"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"päť"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"šesť"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sedem"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"osem"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"deväť"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"hviezdička"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nula"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"libra"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"vytáčanie"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Reproduktor je povolený."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Zvuk hovoru bol vypnutý."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odpovedať"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Odoslať SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Odmietnuť"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrovať"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrovať"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Predvolený zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Tón zvonenia telefónu"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrovať pri zvonení"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Zvuky pri dotyku na číselnú klávesnicu"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Automatické dokonč. číselnej klávesnice"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Tón zvonenia a vibrovanie"</string>
+</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
new file mode 100644
index 0000000..ed8c841
--- /dev/null
+++ b/res/values-sl/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilni podatki"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Klicalnik za nujne primere"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Seznam FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Neznano"</string>
+    <string name="private_num" msgid="6713286113000232309">"Zasebna številka"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefonska govorilnica"</string>
+    <string name="onHold" msgid="9035493194749959955">"Zadržano"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linija je zasedena"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Omrežje je zasedeno"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Ni odziva, časovna omejitev je potekla"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Strežnik ni dosegljiv"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Številka ni dosegljiva"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Napačno uporabniško ime ali geslo"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Klic iz nepooblaščenega omrežja"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Napaka strežnika: poskusite znova pozneje."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Ni signala"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Presežena omejitev ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio je izklopljen"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Ni kartice SIM ali napaka kartice SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Območje zunaj storitve"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Odhodni klici so omejeni s FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Ko je vklopljena zapora klicev, ne morete klicati."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Vsi klici so omejeni z nadzorom dostopa."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Klici v sili so omejeni z nadzorom dostopa."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Navadni klici so omejeni z nadzorom dostopa."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Neveljavna številka"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferenčni klic"</string>
+    <string name="call_lost" msgid="317670617901479594">"Klic je bil izgubljen."</string>
+    <string name="ok" msgid="3811371167865772377">"V redu"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Koda MMI zagnana"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Koda USSD se izvaja ..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Koda MMI preklicana"</string>
+    <string name="cancel" msgid="5044513931633602634">"Prekliči"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Sporočila USSD morajo imeti od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znakov. Poskusite znova."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferenčnih klicev"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Zvočnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slušalka"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Žične slušalke"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Ali želite poslati naslednje tone?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Pošiljanje tonov"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Pošlji"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zamenjaj nadomestni znak z"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Manjkajoča številka glasovne pošte"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na kartici SIM ni shranjena številka glasovne pošte."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj številko"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Kartica SIM je bila deblokirana. Telefon se odklepa ..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN za odklep omrežja kartice SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Odkleni"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Opusti"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Zahteva za odklepanje omrežja ..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Zahteva za odklepanje omrežja neuspešna."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Odklepanje omrežja uspešno."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Nastavitve klicev GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavitve klicev CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Imena dostopnih točk"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Omrežne nastavitve"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Glasovna pošta"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Omrežni operaterji"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Nastavitve klicev"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne nastavitve"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Dodatne nastavitve klicev samo za GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Dodatne nastavitve klicev CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Dodatne nastavitve klicev samo za CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Omrežne nastavitve"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID klicatelja"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Nalaganje nastavitev ..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Skrita številka pri odhodnih klicih"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Prikaz številke pri odhodnih klicih"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Uporaba privzetih nastavitev operaterja za prikaz moje številke pri odhodnih klicih"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Čakajoči klic"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Med klicem me opozori na dohodne klice"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Med klicem me opozori na dohodne klice"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Nastavitve preusmerjanja klicev"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Preusmerjanje klicev"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Vedno preusmeri"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Vedno uporabi to številko"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Preusmeritev vseh klicev"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Preusmerjanje vseh klicev na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Številka ni na voljo"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Onemogočeno"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Preusmeri, kadar je zasedeno"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Številka, ko je zasedeno"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Preusmerjanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Onemogočeno"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operater ne podpira izklopa preusmeritve klicev, kadar je linija zasedena."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Preusmeri, ko ni odgovora"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Številka, ko ni odgovora"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Preusmerjanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Onemogočeno"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operater ne podpira izklopa preusmeritve klicev, kadar ni odgovora."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Preusmeri, ko ni dosegljivo."</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Številka, ko ni dosegljivo"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Preusmerjanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogočeno"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Vaš operater ne podpira izklopa preusmeritve klicev, kadar je telefon nedosegljiv."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Nastavitve klicev"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Napaka nastavitev klicev"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Branje nastavitev …"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Posodabljanje nastavitev …"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Povrnitev nastavitev ..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Nepričakovan odgovor iz omrežja."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Napaka omrežja ali kartice SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Nastavitev predpisanih številk aplikacije telefona je vklopljena. Zato nekatere funkcije, povezane s klici, ne delujejo."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Pred ogledom teh nastavitev vklopite radijski oddajnik."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"V redu"</string>
+    <string name="enable" msgid="1059008390636773574">"Omogoči"</string>
+    <string name="disable" msgid="7274240979164762320">"Onemogoči"</string>
+    <string name="change_num" msgid="239476305819844391">"Posodobi"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Privzeto omrežje"</item>
+    <item msgid="7876195870037833661">"Skrij številko"</item>
+    <item msgid="1108394741608734023">"Prikaz številke"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Številka glasovne pošte je spremenjena."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Številke odzivnika ni mogoče spremeniti."\n"Če se težava ponovi, se obrnite na operaterja."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Številke za preusmeritev ni mogoče spremeniti."\n"Če se težava ponovi, se obrnite na operaterja."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Trenutnih nastavitev številke za posredovanje ni mogoče pridobiti in shraniti."\n"Ali želite vseeno preklopiti na novega ponudnika?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Narejena ni bila nobena sprememba."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Izberite storitev glasovne pošte"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Moj operater"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Nastavitve omrežja prenosnega telefona"</string>
+    <string name="label_available" msgid="1181658289009300430">"Razpoložljiva omrežja"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Iskanje ..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Najdeno ni bilo nobeno omrežje."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Preišči omrežja"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Napaka pri iskanju omrežij."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registriranje v <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Kartica SIM ne dovoljuje povezave s tem omrežjem."</string>
+    <string name="connect_later" msgid="2308119155752343975">"S tem omrežjem trenutno ni mogoče vzpostaviti povezave. Poskusite znova pozneje."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrirano v omrežju."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Izbira omrežnega operaterja"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Najdi vsa razpoložljiva omrežja"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Samodejna izbira"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Samodejna izbira želenega omrežja"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Samodejna registracija ..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Način omrežja"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Sprememba načina delovanja omrežja"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Prednostni način omrežja"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Prednostni način omrežja: prednostno WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Prednostni način omrežja: samo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Prednostni način omrežja: samo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Prednostni način omrežja: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Želeni način omrežja: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Želeni način omrežja: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Prednostni način omrežja: samo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Prednostni način omrežja: samo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Prednostni način omrežja: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Prednostni način omrežja: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Prednostni način omrežja: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Prednostni način omrežja: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Prednostni način omrežja: globalno"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Prednostni način omrežja: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalno"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Samo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA brez EvDo"</item>
+    <item msgid="4341433122263841224">"Samodejno CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Samodejno GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Samo WCDMA"</item>
+    <item msgid="1524224863879435516">"Samo GSM"</item>
+    <item msgid="3817924849415716259">"Prednostno GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Podatki omogočeni"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Omogoči podatkovni dostop prek mobilnega omrežja"</string>
+    <string name="roaming" msgid="8871412572928323707">"Podatkovno gostovanje"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Med gostovanjem vzpostavi povezavo s podatkovnimi storitvami"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Med gostovanjem vzpostavi povezavo s podatkovnimi storitvami"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Podatkovna povezava ni mogoča, ker ste zapustili domače omrežje, podatkovno gostovanje pa je izklopljeno."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Ali želite dovoliti podatkovno gostovanje? Stroški gostovanja utegnejo biti veliki."</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Možnosti CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Uporaba podatkov"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Poraba podatkov v trenutnem obdobju"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Obdobje uporabe podatkov"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Pravilnik podatkovne hitrosti"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Več o tem"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) od <xliff:g id="USED_2">%3$s</xliff:g> največjega dovoljenega obdobja"\n"Naslednje obdobje se začne čez <xliff:g id="USED_3">%4$d</xliff:g> dni (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>  ) od <xliff:g id="USED_2">%3$s</xliff:g> največjega dovoljenega obdobja"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> omejitev presežena"\n"Podatki omejeni na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ cikla potečenega"\n"Naslednje obdobje se začne čez <xliff:g id="USED_1">%2$d</xliff:g> dni (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Če je presežena omejitev porabe podatkov, se podatkovna hitrost zmanjša na <xliff:g id="USED">%1$d</xliff:g> Kb/s."</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Več informacij o pravilniku o uporabi podatkov v mobilnem omrežju vašega operaterja"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Oddajni vmesnik SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Oddajni vmesnik SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Oddajni vmesnik SMS omogočen"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Oddajni vmesnik SMS onemogočen"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Nastavitve oddajnega vmesnika SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Oddajanje v sili"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Oddajanje v sili omogočeno"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Oddajanje v sili onemogočeno"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Skrbniško"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Skrbniško omogočeno"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Skrbniško onemogočeno"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Vzdrževanje"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Vzdrževanje omogočeno"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Vzdrževanje onemogočeno"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Splošne novice"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Novice iz poslovnega sveta in sveta financ"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Športne novice"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Novice iz sveta zabave"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokalno"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokalne novice omogočene"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokalne novice onemogočene"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Območno"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionalne novice omogočene"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Območne novice onemogočene"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Državno"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nacionalne novice omogočene"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nacionalne novice onemogočene"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Mednarodno"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Mednarodne novice omogočene"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Mednarodne novice onemogočene"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jezik"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Izberite jezik novic"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"angleščina"</item>
+    <item msgid="1151988412809572526">"francoščina"</item>
+    <item msgid="577840534704312665">"španščina"</item>
+    <item msgid="8385712091143148180">"japonščina"</item>
+    <item msgid="1858401628368130638">"korejščina"</item>
+    <item msgid="1933212028684529632">"kitajščina"</item>
+    <item msgid="1908428006803639064">"hebrejščina"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jeziki"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalno vreme"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalno vreme omogočeno"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalno vreme onemogočeno"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Poročila o območnih prometnih razmerah"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Območna poročila o razmerah na cestah omogočena"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Območna poročila o razmerah na cestah onemogočena"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Urniki letov lokalnih letališč"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Urniki letov lokalnih letališč omogočeni"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Urniki letov lokalnih letališč onemogočeni"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restavracije"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restavracije omogočene"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restavracije onemogočene"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Nastanitve"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Nastanitve omogočene"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Nastanitve onemogočene"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Imenik maloprodaje"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Imenik maloprodaje omogočen"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Imenik maloprodaje onemogočen"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Oglasi"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Oglasi omogočeni"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Oglasi onemogočeni"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Borzne kotacije"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Borzne kotacije omogočene"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Borzne kotacije onemogočene"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Zaposlitvene priložnosti"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Zaposlitvene priložnosti omogočene"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Zaposlitvene priložnosti onemogočene"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Zdravila in zdravstveni pripomočki, zdravje in bolnišnica"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Zdravila in zdravstveni pripomočki, zdravje in bolnišnica omogočeni"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Zdravila in zdravstveni pripomočki, zdravje in bolnišnica onemogočeni"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tehnološke novice"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tehnološke novice omogočene"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tehnološke novice onemogočene"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Več kategorij"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Omogočenih več kategorij"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Več kategorij onemogočenih"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Uporabi samo omrežja 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Varčevanje z baterijo"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sistemska izbira"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Spremeni način gostovanja CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sistemska izbira"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Samo domov"</item>
+    <item msgid="1205664026446156265">"Samodejno"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Naročnina CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Preklopi med RUIM/SIM in NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"naročnina"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Vklop naprave"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Nastavite podatkovni prenos"</string>
+    <string name="fdn" msgid="7878832555095183202">"Zapore odhodnih klicev"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Seznam FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Aktiviranje FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Zapore odhodnih klicev so omogočene"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Zapore odhodnih klicev so onemogočene"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Omogoči FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Onemogoči FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Sprememba kode PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Onemogoči FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Omogoči FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Upravljanje zapor odhodnih klicev"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Spremeni kodo PIN za dostop FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Upravljanje seznama telefonskih številk"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Zasebnost odzivnika"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Omogoči izboljšane nastavitve zasebnosti"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Način TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Nastavitev načina TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Samodejen ponovni poskus"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Omogoči način samodejnega ponovnega poskusa"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Dodaj stik"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Urejanje stika"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Izbriši stik"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Vnesite kodo PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Ime"</string>
+    <string name="number" msgid="7905950798349903858">"Številka"</string>
+    <string name="save" msgid="4094274636321939086">"Shrani"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Dodaj zaporo odhodnega klica"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Dodajanje zapore odhodnega klica ..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Dodana zapora odhodnega klica."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Uredi zaporo odhodnega klica"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Posodabljanje zapore odhodnih klicev ..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Zapora odhodnega klica posodobljena."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Izbriši zaporo odhodnega klica"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Brisanje zapore odhodnega klica ..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Zapora odhodnega klica izbrisana."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN ni bil posodobljen, ker ste vnesli napačno kodo PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN ni bil posodobljen, ker število ne sme presegati 20 mest."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN ni bil posodobljen. Koda PIN2 je bila napačna ali pa je bila telefonska številka zavrnjena."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Branje kartice SIM ..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Na kartici SIM ni stikov."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Izberite stike, ki jih želite uvoziti"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Če želite uvoziti stike s kartice SIM, najprej izklopite način za letalo."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Omogoči/onemogoči PIN kartice SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Spremeni PIN kartice SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN kartice SIM"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Stara koda PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novi PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potrdi novi PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Stara koda PIN, ki ste jo vnesli, ni pravilna. Poskusite znova."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Kodi PIN, ki ste ju vnesli, se ne ujemata. Poskusite znova."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Vnesite PIN, ki vsebuje od štiri do osem številk."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Onemogoči PIN kartice SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Omogoči PIN kartice SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Počakajte trenutek ..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN za kartico SIM omogočen"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN za kartico SIM onemogočen."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN, ki ste ga vnesli, ni bil pravilen."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Sprememba kode PIN za kartico SIM je uspela."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Nepravilno geslo, kartica SIM je zaklenjena. Vnesti morate kodo PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Stari PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novi PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potrdi novi PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Vnesena koda PUK2 ni pravilna. Poskusite znova."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Stara koda PIN2, ki ste jo vnesli, ni pravilna. Poskusite znova."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Kodi PIN2, ki ste ju vnesli, se ne ujemata. Poskusite znova."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Vnesite kodo PIN2, ki vsebuje od štiri do osem številk."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Vnesite osemmestno kodo PUK2."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Koda PIN2 je bila uspešno spremenjena."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Vnesite kodo PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Napačno geslo. Spremenite PIN2 in poskusite znova."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Nepravilno geslo, kartica SIM je zaklenjena. Vnesti morate kodo PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Dokončano"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferenčni klic <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Številka glasovne pošte"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Klicanje"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Ponovni poskus"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenčni klic"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Dohodni klic"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Klic je bil končan"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Zadržano"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Prekinitev"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Dohodni klic"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Moja številka je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Klicanje"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Neodgovorjeni klic"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Neodgovorjeni klici"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> neodgovorjenih klicev"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Neodgovorjeni klic od <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Aktivni klic"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Zadržano"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Dohodni klic"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nova glasovna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nova glasovna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Kliči <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Neznana številka glasovne pošte"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Ni storitve"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Izbrano omrežje (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ni na voljo"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Prekinite klic"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Povratni klic"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Sporočilo"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Če želite poklicati, najprej izklopite način za letalo."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ni registrirano v omrežju."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Omrežje prenosnega telefona ni na voljo."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Klic ni bil poslan, veljavna številka ni vnesena."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Klic ni bil poslan."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Začetek zaporedja MMI ..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Nepodprta storitev."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Preklop klicev ni mogoč."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Klica ni mogoče ločiti."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Klica ni mogoče prenesti."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konferenčni klici onemogočeni."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Klica ni mogoče zavrniti."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Klicev ni mogoče sprostiti."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetni klic"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Klic v sili"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Vklop radia …"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Zunaj območja storitve, ponovni poskus ..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Klic ni bil poslan. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ni številka za nujne primere!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Klic ni bil poslan. Pokličite številko za nujne primere!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Za klicanje uporabite tipkovnico"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Zadrži"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Konec"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Številčnica"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Nemo"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj klic"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Združi klice"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zamenjaj"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Upravljanje klicev"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Upravljanje konference"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Zvok"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videoklic"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Uvozi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Uvozi vse"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Uvažanje stikov s kartice SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvozi iz stikov"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Slušni pripomočki"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Vključi združljivost slušnega pripomočka"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Način TTY izklopljen"</item>
+    <item msgid="3971695875449640648">"TTY poln"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Toni DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Nastavitev dolžine tonov DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Navadno"</item>
+    <item msgid="2883365539347850535">"Dolgo"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Sporočilo omrežja"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivirajte telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Izvesti morate poseben klic, da aktivirate telefonsko storitev. "\n\n"Po pritisku »Aktiviranje« poslušajte navodila za aktiviranje telefona."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Želite preskočiti aktiviranje?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Če preskočite aktiviranje, ne morete klicati oziroma vzpostaviti stika z mobilnimi podatkovnimi omrežji (lahko pa se povežete v brezžična omrežja). Dokler telefona ne aktivirate, boste k aktiviranju pozvani ob vsakem vklopu telefona."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Preskoči"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiviraj"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon je aktiviran."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Težava pri aktiviranju"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Sledite govorjenim navodilom, dokler ne zaslišite, da je aktiviranje končano."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Zvočnik"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Počakajte trenutek, telefon se programira."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programiranje neuspešno"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefon je zdaj aktiviran. Traja lahko do 15 minut, da se storitev zažene."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefon se ni aktiviral. "\n"Morda boste morali poiskati mesto z boljšo pokritostjo signala (v bližini okna ali zunaj). "\n\n"Poskusite znova ali se obrnite na podporo za stranke za več možnosti."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"PREVELIKO ŠTEVILO NAPAK SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Nazaj"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Poskusite znova"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Naprej"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Vnesen način za povratni klic v sili"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Način povratnega klica v sili"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Podatkovno povezovanje onemogočeno"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Podatkovne povezave ni <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+    <item quantity="other" msgid="3122217344579273583">"Podatkovne povezave ni <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon bo v načinu za povratni klic v sili <xliff:g id="COUNT">%s</xliff:g> minuto. V tem načinu ni mogoče uporabljati programov, ki uporabljajo podatkovno povezavo. Ali želite zapreti okno?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon bo v načinu za povratni klic v sili <xliff:g id="COUNT">%s</xliff:g> minut. V tem načinu ni mogoče uporabljati programov, ki uporabljajo podatkovno povezavo. Ali želite zapreti okno?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Izbrano dejanje ni na voljo, kadar je aktiven način za povratni klic v sili. Telefon bo v tem načinu <xliff:g id="COUNT">%s</xliff:g> minuto. Ali želite zapustiti program?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Izbrano dejanje ni na voljo, kadar je aktiven način za povratni klic v sili. Telefon bo v tem načinu <xliff:g id="COUNT">%s</xliff:g> minut. Ali želite zapustiti program?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Izbrano dejanje ni na voljo med klicanjem v sili."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Izhod iz načina za povratni klic v sili"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Opusti"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Storitev"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Nastavitev"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ni nastavljeno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Druge nastavitve klicev"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografija stika"</string>
+    <string name="goPrivate" msgid="865837794424530980">"zasebno"</string>
+    <string name="selectContact" msgid="781975788478987237">"izbira stika"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Nastavitve internetnega klicanja"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Računi za internetno klicanje (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Računi"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Sprejmi dohodne klice"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Skrajša delovanje baterije"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Uporaba internetnega klicanja"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Uporaba internetnega klicanja (samo brezžični dostop)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Za vse klice, ko podatkovno omrežje ni na voljo"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Samo za internetne klice"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Vprašaj za vsak klic"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Za vse klice"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Klicanje"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Uporaba računa za internetno klicanje"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Vedno uporabi za internetno klicanje"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Na zaslonu Telefon &gt; Nastavitve &gt; Nastavitve internetnega klicanja &gt; Računi lahko spremenite privzeti račun za internetno klicanje."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Klic z mobilnim telefonom"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetni klic"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Ni računa za internetno klicanje"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"V tem telefonu ni računov za internetno klicanje. Ali želite dodati račun zdaj?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Dodaj"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Dodaj račun"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Odstrani račun"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Računi SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Shranjevanje računa ..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Odstranjevanje računa ..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Shrani"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Zavrzi"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Zapiranje profila"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"V redu"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Zapri"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primarni račun. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Preverjanje stanja ..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registriranje ..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Še vedno poskušamo ..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ne sprejema klicev."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Registracija računa je bila ustavljena, ker ni internetne povezave."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Registracija računa je bila ustavljena, ker ni povezave Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Registracija računa ni uspela."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Sprejemanje klicev."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Registracija računa ni uspela: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); znova poskusite pozneje"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Registracija računa ni uspela: napačno uporabniško ime ali geslo."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Registracija računa ni uspela: preverite ime strežnika."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Ta račun trenutno uporablja program <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Podrobnosti o računu SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Podrobnosti o računu SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Strežnik"</string>
+    <string name="username_title" msgid="2479375923477682328">"Uporabniško ime"</string>
+    <string name="password_title" msgid="3323555249068171531">"Geslo"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Prikazno ime"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Naslov strežnika proxy za odhodne klice"</string>
+    <string name="port_title" msgid="5952939408078626657">"Številka vrat"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Vrsta prevoza"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Pošlji ohranjanje povezave"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Nastavi kot primarni račun"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Za odhodne klice"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Izbirne nastavitve"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Uporabniško ime za preverjanje pristnosti"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Uporabniško ime za preverjanje pristnosti"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Ni nastavljeno&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Enako kot uporabniško ime&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Izbirno&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Dotaknite se, da prikažete vse"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Dotaknite se, če želite skriti vse"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obvezno in ne sme biti prazno."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Številka vrat mora biti med 1000 in 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Ni internetne povezave"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Ni brezžične povezave"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Če želite opraviti internetni klic, najprej preverite internetno povezavo."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Če želite klicati po internetu, morate biti v omrežju WiFi (v nastavitvah »Brezžične in omrežne nastavitve«)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Internetno klicanje ni podprto"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Samodejno"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Vedno pošlji"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Glasovno klicanje ni podprto"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Zdaj ne morem govoriti. Za kaj gre?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Takoj bom poklical."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Poklical bom pozneje."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Zdaj ne morem govoriti. Pozneje?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napišite svoje besedilo …"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Hitri odgovori"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Urejanje hitrih odgovorov"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Hiter odgovor"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Ponastavi privzeto aplikacijo"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"SMS poslan na številko <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"ena"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dve"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tri"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"štiri"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"pet"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"šest"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sedem"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"osem"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"devet"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"zvezda"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"nič"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"funt"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"klicanje"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"vračalka"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Zvočnik omogočen."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Klic izključen."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odgovori"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Pošlji SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Zavrni"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibriraj"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibriraj"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvok"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Privzeti zvok (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ton zvonjenja telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibriranje ob zvonjenju"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Zvok številčnice"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Samodokončanje za tipkovnico"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvonjenje in vibriranje"</string>
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
new file mode 100644
index 0000000..0993a96
--- /dev/null
+++ b/res/values-sr/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Подаци за мобилне уређаје"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Хитни позиви"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Телефон"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Листа бројева за фиксно бирање"</string>
+    <string name="unknown" msgid="6878797917991465859">"Непознато"</string>
+    <string name="private_num" msgid="6713286113000232309">"Приватан број"</string>
+    <string name="payphone" msgid="1931775086311769314">"Јавна говорница"</string>
+    <string name="onHold" msgid="9035493194749959955">"На чекању"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Линија је заузета"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Мрежа је заузета"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Нема одговора, време је истекло"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Сервер није доступан"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Број је недоступан"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Неважеће корисничко име или лозинка"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Позив изван мреже"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Грешка сервера: покушајте поново касније."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Нема сигнала"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Прекорачено је ACM ограничење"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Радио је искључен"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Нема SIM картице или постоји грешка на њој"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Област ван домета"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Број за фиксно бирање је ограничио одлазне позиве."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Не можете да упућујете одлазне позиве док је укључено ограничавање позива."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Сви позиви су ограничени контролом приступа."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Сви хитни позиви су ограничени контролом приступа."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Стандардни позиви су ограничени контролом приступа."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Неважећи број"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конференцијски позив"</string>
+    <string name="call_lost" msgid="317670617901479594">"Позив је изгубљен."</string>
+    <string name="ok" msgid="3811371167865772377">"Потврди"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Покренут је MMI кôд."</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD кôд је покренут…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI кôд је отказан"</string>
+    <string name="cancel" msgid="5044513931633602634">"Откажи"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD порука мора да има између <xliff:g id="MIN_LEN">%d</xliff:g> и <xliff:g id="MAX_LEN">%d</xliff:g> знакова. Покушајте поново."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Управљање конференцијским позивом"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Звучник"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Слушалица телефона"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Жичане слушалице"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Желите ли да пошаљете следеће тонове?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Тонови слања"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Пошаљи"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Да"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Не"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Замените џокер знак са"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Недостаје број за говорну пошту"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Није ускладиштен ниједан број говорне поште на SIM картици."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Додај број"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Ваша SIM картица је одблокирана. Телефон се откључава..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN за откључавање мреже на SIM картици"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Откључај"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Одбаци"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Тражење откључавања мреже"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Неуспешан захтев за закључавање мреже."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Успешно откључавање мреже"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Подешавања GSM позива"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA подешавања позива"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Називи приступних тачака"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Мрежна подешавања"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Говорна пошта"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Мрежни оператери"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Подешавања позива"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Додатна подешавања"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Додатна подешавања позива само за GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Додатна CDMA подешавања позива"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Додатна само CDMA подешавања позива"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Подешавања мрежне услуге"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ИД позиваоца"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Учитавање подешавања…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Број је скривен у одлазним позивима"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Број приказан у одлазним позивима"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Користи подразумевана подешавања оператера за приказивање мог броја у одлазним порукама"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Позив на чекању"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Током позива, обавести ме о долазним позивима"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Током позива, обавести ме о долазним позивима"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Подешавања преусмеравања позива"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Преусмеравање позива"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Увек проследи"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Увек користи овај број"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Прослеђивање свих позива"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Прослеђивање свих позива на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Број није доступан"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Онемогућено"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Проследи када је заузето"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Број када је заузето"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Прослеђивање на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Онемогућено"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Оператер не подржава онемогућавање преусмеравања позива када је телефон заузет."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Проследи када нема одговора"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Број када нема одговора"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Прослеђивање на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Онемогућено"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Оператер не подржава онемогућавање преусмеравања позива када се на позив не одговори."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Проследи када је недоступно"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Број у случају недоступности"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Прослеђивање на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Онемогућено"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Мобилни оператер не подржава онемогућавање преусмеравања позива када је телефон недоступан."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Подешавања позива"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Грешка у подешавањима позива"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Учитавање подешавања…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ажурирање подешавања…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Враћање подешавања…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Неочекивани одговор мреже."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Грешка на мрежи или SIM картици."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Подешавање Бројева за фиксно бирање апликације Телефон је укључено. Због тога неке функције у вези са позивима не функционишу."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Укључите радио пре прегледања ових подешавања."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Потврди"</string>
+    <string name="enable" msgid="1059008390636773574">"Омогући"</string>
+    <string name="disable" msgid="7274240979164762320">"Онемогући"</string>
+    <string name="change_num" msgid="239476305819844391">"Ажурирај"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Подразумевано за мрежу"</item>
+    <item msgid="7876195870037833661">"Сакриј број"</item>
+    <item msgid="1108394741608734023">"Прикажи број"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Промењен је број говорне поште."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Није могуће променити број говорне поште."\n"Контактирајте мобилног оператера ако се овај проблем настави."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Није могуће променити број за преусмеравање."\n"Контактирајте мобилног оператера ако се овај проблем настави."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Није било могуће преузети и сачувати тренутна подешавања броја за прослеђивање."\n"Желите ли да ипак пређете на новог добављача?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Нису начињене промене."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Одаберите услугу говорне поште"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">" Мој мобилни оператер"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Подешавања за мобилну мрежу"</string>
+    <string name="label_available" msgid="1181658289009300430">"Доступне мреже"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Претражује се…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Нису пронађене мреже."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Претражи мреже"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Грешка током тражења мрежа."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Регистровање на <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM картица не дозвољава везу са овом мрежом."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Тренутно није могуће повезати се са овом мрежом. Покушајте поново касније."</string>
+    <string name="registration_done" msgid="495135664535876612">"Регистровано на мрежи."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Изаберите мрежног оператера"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Потражи све доступне мреже"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Изабери аутоматски"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Аутоматски избор жељене мреже"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Аутоматска регистрација..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Режим мреже"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Промена режима рада мреже"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Жељени режим мреже"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Жељени режим мреже: WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Жељени режим мреже: само GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Жељени режим мреже: само WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Жељени режим мреже: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Жељени режим мреже: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Жељени режим мреже: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Жељени режим мреже: само CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Жељени режим мреже: само EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Жељени режим мреже: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Жељени режим мреже: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Жељени режим мреже: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Жељени режим мреже: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Жељени режим мреже: Глобално"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Жељени режим мреже: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Глобално"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Само EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA без EvDo-а"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo аутоматски"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA аутоматски"</item>
+    <item msgid="7913148405605373434">"Само WCDMA"</item>
+    <item msgid="1524224863879435516">"Само GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA има предност"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Подаци су омогућени"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Омогућава приступ подацима преко мобилне мреже"</string>
+    <string name="roaming" msgid="8871412572928323707">"Пренос података у ромингу"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Повезивање са услугом за податке током роминга"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Повезивање са услугом за податке током роминга"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Веза за пренос података је прекинута зато што сте напустили кућну мрежу са искљученим преносом података у ромингу."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Желите ли да дозволите пренос података у ромингу? Могу да настану велики трошкови роминга!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Опције за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA опције"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Коришћење података"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Подаци коришћени у тренутном периоду"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Период коришћења података"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Смернице за оцену података"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Сазнајте више"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) од <xliff:g id="USED_2">%3$s</xliff:g> максималног периода"\n"Следећи период почиње за <xliff:g id="USED_3">%4$d</xliff:g> дана (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"Максимално <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) од <xliff:g id="USED_2">%3$s</xliff:g> периода"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> максимум је премашен"\n"Стопа преноса података смањена је на <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪  је протекло од циклуса"\n"Следећи период почиње за <xliff:g id="USED_1">%2$d</xliff:g> дана (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Брзина преноса података смањена је на <xliff:g id="USED">%1$d</xliff:g> Kb/s ако је премашено ограничење за коришћење података"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Више информација о смерницама за коришћење података мобилне мреже оператера"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS инфо сервиса"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS инфо сервиса"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Омогућен је SMS инфо сервиса"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Онемогућено је слање SMS-а инфо сервиса"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Подешавања за SMS инфо сервиса"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Хитан пренос"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Омогућен је хитан пренос"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Хитан пренос је онемогућен"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Административни"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Административно је омогућено"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Административно је онемогућено"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Одржавање"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Одржавање је омогућено"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Одржавање је онемогућено"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Опште вести"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Пословне и финансијске вести"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Спортске вести"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Вести из шоу-бизниса"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Локално"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Локалне вести су омогућене"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Онемогућене су локалне вести"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Регионално"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Регионалне вести су омогућене"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Регионалне вести су онемогућене"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Национално"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Омогућене су националне вести"</string>
+    <string name="national_disable" msgid="326018148178601166">"Онемогућене су националне вести"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Међународно"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Међународне вести су омогућене"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Међународне вести су онемогућене"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Језик"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Изаберите језик вести"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"енглески"</item>
+    <item msgid="1151988412809572526">"француски"</item>
+    <item msgid="577840534704312665">"шпански"</item>
+    <item msgid="8385712091143148180">"јапански"</item>
+    <item msgid="1858401628368130638">"корејски"</item>
+    <item msgid="1933212028684529632">"кинески"</item>
+    <item msgid="1908428006803639064">"хебрејски"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Језици"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Локално време"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Локално време је омогућено"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Локално време је онемогућено"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Извештаји о локалном саобраћају"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Омогућени су извештаји о локалном саобраћају"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Онемогућени су извештаји о локалном саобраћају"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Ред летења локалног аеродрома"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Омогућен је ред летења локалног аеродрома"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Онемогућен је ред летења локалног аеродрома"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Ресторани"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ресторани су омогућени"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Ресторани су онемогућени"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Евиденције"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Дневници су омогућени"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Евиденције су онемогућене"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Каталог малопродаје"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Омогућен је каталог малопродаје"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Онемогућен је каталог малопродаје"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Огласи"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Огласи су омогућени"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Огласи су онемогућени"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Цене акција"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Омогућене су цене акција"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Цене акција су онемогућене"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Могућности за запошљавање"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Могућности за запошљавање су омогућене"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Могућности за запошљавање су онемогућене"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Медицина, здравље и болница"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Медицина, здравље и болница су омогућени"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Медицина, здравље и болница су онемогућени"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Вести из технологије"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Вести из технологије су омогућене"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Вести из технологије су онемогућене"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Више категорија"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Омогућено је више категорија"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Онемогућено је више категорија"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Користи само 2G мреже"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Чува батерију"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Избор система"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Промена режима CDMA роминга"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Избор система"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Само почетна"</item>
+    <item msgid="1205664026446156265">"Аутоматски"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA пријава"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Промени између RUIM/SIM и NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"пријава"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Активирање уређаја"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Подесите усл. преноса података"</string>
+    <string name="fdn" msgid="7878832555095183202">"Фиксни бирани бројеви"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Листа бројева за фиксно бирање"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN активација"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Омогућени су фиксни бирани бројеви"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Онемогућени су фиксни бирани бројеви"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Омогући број за фиксно бирање"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Онемогући број за фиксно бирање"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Промени PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Онемогући број за фиксно бирање"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Омогући број за фиксно бирање"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Управљање фиксним бираним бројевима"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Промени PIN за приступ броју за фиксно бирање"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Управљање листе телефонских бројева"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Приватност гласа"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Омогући побољшан режим приватности"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY режим"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Подеси TTY режим"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Аутоматски поновни покушај"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Омогућавање режима аутоматског поновног покушаја"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Додај контакт"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Измени контакт"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Избриши контакт"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Унесите PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Име"</string>
+    <string name="number" msgid="7905950798349903858">"Број"</string>
+    <string name="save" msgid="4094274636321939086">"Сачувај"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Додај број за фиксно бирање"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Додавање броја за фиксно бирање…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Додат је број за фиксно бирање."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Измени број за фиксно бирање"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ажурирање броја за фиксно бирање…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Ажуриран је број за фиксно бирање."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Избриши број за фиксно бирање"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Брисање броја за фиксно бирање…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Избрисан је број за фиксно бирање."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Број за фиксно бирање није ажуриран јер сте унели нетачан PIN кôд."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Број за фиксно бирање није ажуриран јер број не сме да премашује 20 цифара."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN није ажуриран. PIN2 је нетачан или је број телефона одбачен."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Читање са SIM картице…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Нема контаката на SIM картици."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Избор контаката за увоз"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Да бисте увезли контакте са SIM картице, прво искључите Режим рада у авиону."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Омогућавање/онемогућавање SIM PIN-а"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Промена SIM PIN-а"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Стари PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Нови PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Потврдите нови PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Стари PIN кôд који сте унели је нетачан. Покушајте поново."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN кодови које сте унели се не подударају. Покушајте поново."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Откуцајте PIN који има од 4 до 8 бројева."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Онемогућавање SIM PIN-а"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Омогући SIM PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Сачекајте…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN кôд SIM картице је омогућен."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN кôд SIM картице је онемогућен."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN кôд који сте унели је нетачан."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN кôд SIM картице је промењен."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Лозинка је нетачна, SIM картица је закључана! Потребан је PUK2 кôд."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Стари PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Нови PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Потврдите нови PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 кôд који сте унели је нетачан. Покушајте поново."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Стари PIN2 кôд који сте унели је нетачан. Покушајте поново."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2 кодови које сте унели се не подударају. Покушајте поново."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Откуцајте PIN2 који има од 4 до 8 бројева."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Унесите PUK2 који садржи 8 бројева."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 кôд је промењен."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Унесите PUK2 кôд"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Лозинка је нетачна. Промените PIN2 кôд и покушајте поново."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Лозинка је нетачна, SIM картица је закључана. Потребан је PUK2 кôд."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Готово"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конференцијски позив <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Број говорне поште"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Позивање"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Поновни покушај"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конференцијски позив"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Долазни позив"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Позив је завршен"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"На чекању"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Прекид везе"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Има позив"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Мој број је <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Бирање"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуштен позив"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропуштени позиви"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Број пропуштених позива: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропуштен позив од: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Актуелни позив"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"На чекању"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Долазни позив"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нова говорна пошта"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нова говорна пошта (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Позови <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Непознат број говорне поште"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Нема услуге"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Изабрана мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) није доступна"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Прекини везу"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Узврати позив"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Порука"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Да бисте упутили позив, прво искључите режим рада у авиону."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Није регистровано на мрежи."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Мобилна мрежа није доступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Позив није послат, није унет исправан број."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Позив није послат."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Покретање MMI секвенце"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Неподржана услуга."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Није могуће пребацивати позиве."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Одвајање позива није могуће."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Пренос позива није могућ."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Конференцијски позиви нису могући."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Одбијање позива није могуће."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Није могуће успоставити позив"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Интернет позив"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Хитни позив"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Укључивање радија…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Област ван домета, поновни покушај..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Позив није послат. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> није број за хитне случајеве!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Позив није послат. Позовите број за хитне случајеве!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Користите тастатуру за позивање"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Чекање"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Заврши"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Нумеричка тастатура"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Искључи звук"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Додај позив"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Обједини позиве"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Замени"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Управљајте позивима"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Управљај конференцијом"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео поз."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Увези"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Увези све"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Увоз SIM контаката"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Увези из контаката"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Слушни апарат"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Укључи компатибилност са слушним апаратом"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY искључено"</item>
+    <item msgid="3971695875449640648">"TTY је пун"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF тонови"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Подеси јачину DTMF тонова"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Нормалан"</item>
+    <item msgid="2883365539347850535">"Дугачак"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Мрежна порука"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Активирајте телефон"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Потребно је да упутите посебан позив да бисте активирали услугу свој телефона. "\n\n"Након што притиснете дугме „Активирај“, слушајте дата упутства да бисте да бисте активирали свој телефон."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Желите ли да прескочите активацију?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ако прескочите активацију, не можете да упућујете позиве или да се повезујете са мрежама за мобилни пренос података (иако можете да се повежете са Wi-Fi мрежама). Све док не активирате свој телефон, бићете упитани да то учините сваки пут када га укључите."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Прескочи"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Активирај"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Телефон је активиран."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Проблем са активацијом"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Следите изговорена упутства све док не чујете да је активација завршена."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Звучник"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Сачекајте док се телефон програмира."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Програмирање је неуспешно"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Телефон је сада активиран. Можда ће бити потребно највише 15 минута да би се услуга покренула."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Телефон се није активирао. "\n"Можда је потребно да пронађете област са бољом покривеношћу (близу прозора или напољу). "\n\n"Покушајте поново или позовите корисничку подршку за још опција."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"СЛУЧАЈНА SPC ГРЕШКА"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Назад"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Покушај поново"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Следеће"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"Дијалог за излазак из режима хитног повратног позива"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Унет је режим за хитан повратни позив"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Режим за хитан повратни позив"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Веза за пренос података је онемогућена"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Нема везе за пренос података за <xliff:g id="COUNT">%s</xliff:g>минут"</item>
+    <item quantity="other" msgid="3122217344579273583">"Нема везе за пренос података за <xliff:g id="COUNT">%s</xliff:g> минута"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Телефон ће бити у Режиму хитног повратног позива <xliff:g id="COUNT">%s</xliff:g> минут. Док сте у овом режиму, не можете да користите ниједну апликацију која користи везу за пренос података. Да ли желите сада да изађете?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Телефон ће бити у Режиму хитног повратног позива <xliff:g id="COUNT">%s</xliff:g> минута. Док сте у овом режиму, не можете да користите ниједну апликацију која користи везу за пренос података. Да ли желите сада да изађете?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Изабрана радња није доступна док сте у Режиму хитног повратног позива. Телефон ће бити у овом режиму <xliff:g id="COUNT">%s</xliff:g> минут. Да ли желите сада да изађете?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Изабрана радња није доступна док сте у Режиму хитног повратног позива. Телефон ће бити у овом режиму <xliff:g id="COUNT">%s</xliff:g> минутa. Да ли желите сада да изађете?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Изабрана радња није доступна када је у току хитан позив"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Излазак из Режима хитног повратног позива"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Да"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Не"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Одбаци"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Услуга"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Подешавање"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Није подешено&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Друга подешавања позива"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Позивање преко добављача <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"фотографија контакта"</string>
+    <string name="goPrivate" msgid="865837794424530980">"иди на приватно"</string>
+    <string name="selectContact" msgid="781975788478987237">"изаберите контакт"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Подешавања Интернет позива"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Налози за Интернет позивање (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Налози"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Прими долазеће позиве"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Смањује радни век батерије"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Користи Интернет позивање"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Користи Интернет позивање (само Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"За све позиве када је мрежа података доступна"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Само за Интернет позиве"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Упитај за сваки позив"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"За све позиве"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Успостави позив"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Користи налог за Интернет позивање:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Користи увек за успостављање Интернет позива"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Можете да промените налог за интернет позиве који ће се подразумевано користити на екрану Телефон &gt; Подешавања &gt; Подешавања интернет позива &gt; Налози."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Позив ка мобилном телефону"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Интернет позив"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Нема налога за Интернет позивање"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Нема налога за интернет позиве на овом телефону. Да ли желите сада да додате један?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Додај"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Додај налог"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Уклони налог"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP налози"</string>
+    <string name="saving_account" msgid="52903398217017954">"Чување налога..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Уклањање налога..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Сачувај"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Одбаци"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Затвори профил"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Потврди"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Затвори"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Примарни налог. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Провера статуса..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Регистровање..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"И даље покушава..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Не прима позиве."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Регистрација налога је заустављена зато што не постоји интернет веза."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Регистрација налога је заустављена зато што не постоји Wi-Fi веза."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Регистрација налога није успела."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Пријем позива."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Регистрација налога није успела: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); покушаћемо касније"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Регистрација налога није успела: нетачно корисничко име или лозинка."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Регистрација налога није успела: Проверите назив сервера."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Овај налог тренутно користи апликација <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Детаљи о SIP налогу"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Детаљи о SIP налогу"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Сервер"</string>
+    <string name="username_title" msgid="2479375923477682328">"Корисничко име"</string>
+    <string name="password_title" msgid="3323555249068171531">"Лозинка"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Име за приказ"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Одлазна прокси адреса"</string>
+    <string name="port_title" msgid="5952939408078626657">"Број порта"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Тип преноса"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Пошаљи keep-alive поруку"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Подеси као примарни налог"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Користи се за одлазне позиве"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Опционална подешавања"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Корисничко име за потврду идентитета"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"За потврду идентитета користи се корисничко име"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Није подешено&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Исто као корисничко име&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Опционално&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Додирните да бисте приказали све"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Додирните да бисте све сакрили"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Поље <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> је обавезно и не може да буде празно."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Број порта би требало да буде између 1000 и 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Нема Интернет везе"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Не постоји Wi-Fi веза"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Да бисте упутили интернет позив, прво проверите интернет везу."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Потребно је да се повежете са Wi-Fi мрежом за интернет позиве (користите Подешавања бежичне везе и мреже)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Интернет позиви нису подржани"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Аутоматски"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Увек шаљи"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Аудио позиви нису подржани"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"У гужви сам. Шта је у питању?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Позваћу те ускоро."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Позваћу те касније."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"У гужви сам. Да се чујемо касније?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Напишите сами…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Брзи одговори"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Измена брзих одговора"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Брзи одговор"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Ресетуј подразумев. апликацију"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Порука је послата на број <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"један"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"два"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"три"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"четири"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"пет"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"шест"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"седам"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"осам"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"девет"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"звездица"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"нула"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"фунта"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"бирање"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"тастер за брисање"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Спикерфон је омогућен."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Звук позива је искључен."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Одговори"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Пошаљи SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Одбиј"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибрација"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибрација"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Подразумевани звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Мелодија звона телефона"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибрирај када звони"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Тонови при додиру нумеричке тастатуре"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Аутом. довршавање нумеричке тастатуре"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија звона и вибрација"</string>
+</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
new file mode 100644
index 0000000..c344528
--- /dev/null
+++ b/res/values-sv/strings.xml
@@ -0,0 +1,637 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Nödsamtal"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN-lista"</string>
+    <string name="unknown" msgid="6878797917991465859">"Okänd"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privat nummer"</string>
+    <string name="payphone" msgid="1931775086311769314">"Telefonautomat"</string>
+    <string name="onHold" msgid="9035493194749959955">"Parkerat"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Linjen är upptagen"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Nätverket är upptaget"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Inget svar, avbröts"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Servern kan inte nås"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numret kan inte nås"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Felaktigt användarnamn eller lösenord"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Uppringt från ett annat nätverk"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Serverfel. Försök igen senare."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Ingen signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM-gränsen har överskridits"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio av"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Inget SIM-kort eller SIM-kortsfel"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Fungerar inte i detta område"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Utgående samtal begränsas av FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Du kan inte ringa utgående samtal när samtalsspärren är aktiverad."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Alla samtal begränsas av åtkomstkontroll."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Nödsamtal begränsas av åtkomstkontroll."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Vanliga samtal begränsas av åtkomstkontroll."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Ogiltigt nummer"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferenssamtal"</string>
+    <string name="call_lost" msgid="317670617901479594">"Samtal har försvunnit."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI-kod körs"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD-kod körs…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI-koden har annullerats"</string>
+    <string name="cancel" msgid="5044513931633602634">"Avbryt"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD-meddelandet måste innehålla mellan <xliff:g id="MIN_LEN">%d</xliff:g> och <xliff:g id="MAX_LEN">%d</xliff:g> tecken. Försök igen."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Hantera konferenssamtal"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Högtalare"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Telefonlur"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Trådanslutet headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Skicka följande toner?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Skickar signaler"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Skicka"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ja"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Nej"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Ersätt jokertecknet med"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nummer till röstbrevlåda saknas"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Det finns inget nummer till röstbrevlådan sparat på SIM-kortet."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Lägg till nummer"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM-kortets spärr har tagits bort. Låser upp telefonen…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN-kod för upplåsning av SIM-nätverk"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Lås upp"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Ta bort permanent"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Försöker låsa upp nätverket…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Det gick inte att låsa upp nätverket."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Nätverket upplåst"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Samtalsinst. för GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Samtalsinst. för CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Åtkomstpunktens namn (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Nätverksinställningar"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Röstbrevlåda"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"RB:"</string>
+    <string name="networks" msgid="8873030692174541976">"Nätverksoperatörer"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Samtalsinställningar"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ytterligare inställningar"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Ytterligare samtalsinställningar för endast GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Övriga CDMA-samtalsinställningar"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Ytterligare samtalsinställningar för endast CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Inställningar för nätverkstjänst"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Nummerpresentatör"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Inställningarna läses in ..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Dolt nummer i utgående samtal"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer som visas för utgående samtal"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Använd operatörens standardinställningar när mitt nummer visas för utgående samtal"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Samtal väntar"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Meddela mig om inkommande samtal under samtal"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Meddela mig om inkommande samtal under samtal"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Inställningar för Vidarebefordra samtal"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Vidarebefordra samtal"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Vidarebefordra alltid"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Använd alltid detta nummer"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Vidarebefordra alla samtal"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Vidarebefordrar alla samtal till <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numret är inte tillgängligt"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Inaktiverat"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Vidarebefordra vid upptaget"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Nummer vid upptagen"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Vidarebefordrar till <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Inaktiverat"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operatören stöder inte inaktivering av vidarebefordran av samtal under pågående samtal."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Vidarebefordra vid ej svar"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Nummer vid ej svar"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Vidarebefordrar till <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Inaktiverat"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operatören stöder inte inaktivering av vidarebefordran av samtal när du inte svarar i telefonen."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Vidarebefordra när du inte är tillgänglig"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Nummer när du inte är tillgänglig"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Vidarebefordrar till <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Inaktiverat"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatören stöder inte inaktivering av vidarebefordran av samtal när det inte går att nå telefonen."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Samtalsinställningar"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Felaktiga samtalsinställningar"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Läser inställningar…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Uppdaterar inställningar…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Återställer inställningarna…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Oväntat svar från nätverket."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Nätverks- eller SIM-kortsfel."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Inställningen Fasta nummer i mobilappen är aktiverad. Därför fungerar inte vissa samtalsfunktioner."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Sätt på radion innan du visar inställningarna."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Aktivera"</string>
+    <string name="disable" msgid="7274240979164762320">"Inaktivera"</string>
+    <string name="change_num" msgid="239476305819844391">"Uppdatera"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Standardinställning för nätverk"</item>
+    <item msgid="7876195870037833661">"Dölj nummer"</item>
+    <item msgid="1108394741608734023">"Visa nummer"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Numret till röstbrevlåda har ändrats."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Det gick inte att ändra numret till röstbrevlådan."\n"Kontakta operatören om problemet kvarstår."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Det gick inte att ändra numret för vidarebefordran."\n"Kontakta din operatör om problemet kvarstår."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Det gick inte att hämta och spara inställningarna för numret för vidarebefordran."\n"Vill du byta till den nya operatören istället?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Du har inte gjort några ändringar."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Välj tjänst för röstbrevlådan"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Min operatör"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobila nätverksinställningar"</string>
+    <string name="label_available" msgid="1181658289009300430">"Tillgängliga nätverk"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Söker…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Hittade inga nätverk."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Sök efter nätverk"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Ett fel uppstod när vi sökte efter nätverk."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrerar på <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ditt SIM-kort tillåter inte anslutning till detta nätverk."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Det går inte att ansluta till det här nätverket just nu. Försök igen senare."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrerad på nätverk."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Välj en nätverksoperatör"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Sök efter alla tillgängliga nätverk"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Välj automatiskt"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Välj önskat nätverk automatiskt"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering ..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Nätverksläge"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Ändra nätverksläge"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Föredraget nätverksläge"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Föredraget nätverksläge: Föredrar WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Föredraget nätverksläge: Endast GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Föredraget nätverksläge: Endast WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Föredraget nätverksläge: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Föredraget nätverksläge: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Föredraget nätverksläge: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Föredraget nätverksläge: Endast CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Föredraget nätverksläge: Endast EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Föredraget nätverksläge: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Föredraget nätverksläge: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Föredraget nätverksläge: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Föredraget nätverksläge: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Föredraget nätverksläge: globlat"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Föredraget nätverksläge: LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalt"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Endast EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA utan EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo auto"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA auto"</item>
+    <item msgid="7913148405605373434">"Endast WCDMA"</item>
+    <item msgid="1524224863879435516">"Endast GSM"</item>
+    <item msgid="3817924849415716259">"Föredrar GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data är aktiverat"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Aktivera dataåtkomst via mobilt nätverk"</string>
+    <string name="roaming" msgid="8871412572928323707">"Dataroaming"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Anslut till datatjänster vid roaming"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Anslut till datatjänster vid roaming"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Du förlorade dataanslutningen eftersom du lämnade ditt hemnätverk utan att aktivera dataroaming."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Tillåta dataroaming? Observera att detta kan leda till höga kostnader!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Alternativ för GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA-alternativ"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Dataanvändning"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Använda data under nuvarande period"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Dataanvändningsperiod"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Datahastighetspolicy"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Läs mer"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maxvärdet har överskridits"\n"Datahastigheten har sänkts till <xliff:g id="USED_1">%2$d</xliff:g> kbit/s"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Datahastigheten sänks till <xliff:g id="USED">%1$d</xliff:g> kbit/s om dataanvändningsgränsen överskrids"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Mer information om operatörens dataanvändningspolicy för mobilnätverket"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cell Broadcast SMS aktiverat"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cell Broadcast SMS inaktiverat"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Inställningar för Cell Broadcast SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Nödsändning"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Nödsändning aktiverat"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Nödsändning inaktiverad"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administration"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administration aktiverat"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administration inaktiverad"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Underhåll"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Underhåll aktiverat"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Underhåll inaktiverat"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Allmänna nyheter"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Ekonominyheter"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportnyheter"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Nöjesnyheter"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokala nyheter aktiverade"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokala nyheter inaktiverade"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionalt"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionala nyheter aktiverade"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionala nyheter inaktiverade"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nationellt"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nationella nyheter aktiverade"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nationella nyheter har inaktiverats"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internationellt"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Internationella nyheter aktiverade"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Internationella nyheter inaktiverade"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Språk"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Välj språk för nyheterna"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Engelska"</item>
+    <item msgid="1151988412809572526">"Franska"</item>
+    <item msgid="577840534704312665">"Spanska"</item>
+    <item msgid="8385712091143148180">"Japanska"</item>
+    <item msgid="1858401628368130638">"Koreanska"</item>
+    <item msgid="1933212028684529632">"Kinesiska"</item>
+    <item msgid="1908428006803639064">"Hebreiska"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Språk"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokala väderprognoser"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokala väderprognoser aktiverade"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokala väderprognoser inaktiverade"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Trafikrapporter för området"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Trafikrapporter för området aktiverade"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Trafikrapporter för området inaktiverade"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Flygtider för lokal flygplats"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Flygtider för lokal flygplats aktiverade"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Flygtider för lokal flygplats inaktiverade"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restauranger"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restauranger aktiverade"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restauranger inaktiverade"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Logi"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Logi aktiverat"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Logi inaktiverat"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Detaljhandelskatalog"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Detaljhandelskatalog aktiverad"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Detaljhandelskatalog inaktiverad"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Annonsering"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Annonsering aktiverat"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Annonsering inaktiverat"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Aktiekurser"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Aktiekurser aktiverade"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Aktiekurser inaktiverade"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Jobbannonser"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Jobbannonser aktiverade"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Jobbannonser inaktiverade"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicin, hälsa och sjukvård"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicin, hälsa och sjukvård aktiverade"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicin, hälsa och sjukvård inaktiverade"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tekniknyheter"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tekniknyheter aktiverade"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tekniknyheter inaktiverade"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-kategori"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Multikategori aktiverad"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Multikategori inaktiverad"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Använd endast 2G-nätv."</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Sparar batteri"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Systemval"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Ändra CDMA-roamingläge"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Systemval"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Endast hemma"</item>
+    <item msgid="1205664026446156265">"Automatiskt"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA-prenumeration"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Växla mellan RUIM/SIM och NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"prenumeration"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivera enhet"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Ställ in datatjänst"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fasta nummer"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN-lista"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN-aktivering"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Fasta nummer är aktiverade"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Fasta nummer är inaktiverade"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Aktivera FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Inaktivera FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Ändra PIN2-kod"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Inaktivera FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Aktivera FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Hantera fasta nummer"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Ändra PIN-kod för FDN-åtkomst"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Hantera nummerlistan"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Sekretess för Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Aktivera avancerat sekretessläge"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY-läge"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Ange TTY-läge"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Försök igen automatiskt"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Aktivera läget Försök igen automatiskt"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Lägg till kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Redigera kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Ta bort kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Ange PIN2-kod"</string>
+    <string name="name" msgid="7329028332786872378">"Namn"</string>
+    <string name="number" msgid="7905950798349903858">"Nummer"</string>
+    <string name="save" msgid="4094274636321939086">"Spara"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Lägg fast nummer"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Lägger till fast nummer…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Ett fast nummer har lagts till."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Redigera fast nummer"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Uppdaterar det fasta numret…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Det fasta numret är uppdaterat."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Ta bort fast nummer"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Tar bort fast nummer…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Det fasta numret har tagits bort."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN uppdaterades inte eftersom du skrev en felaktig PIN-kod."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN uppdaterades inte eftersom numret inte får ha mer än 20 siffror."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN uppdaterades inte. Antingen har du angivit fel PIN2, eller så avvisades telefonnumret."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Läser från SIM-kort…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Inga kontakter på SIM-kortet."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Välj vilka kontakter som ska importeras"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Om du vill importera kontakter från SIM-kortet måste du inaktivera flygplansläget."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Aktivera/inaktivera SIM-kortets PIN-kod"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Ändra SIM-kortets PIN-kod"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM-kortets PIN-kod:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Gammal PIN-kod"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Ny PIN-kod"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Bekräfta ny PIN-kod"</string>
+    <string name="badPin" msgid="8955102849303984935">"Den gamla PIN-koden som du angav är felaktig. Försök igen."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN-koderna du skrev matchar inte. Försök igen."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Ange en PIN-kod med 4 till 8 siffror."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Inaktivera SIM-kortets PIN-kod"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Aktivera PIN-kod"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Vänta…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM-kortets PIN-kod är aktiverad."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM-kortets PIN-kod är inaktiverad."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Du angav fel PIN-kod."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM-kortets PIN-kod har ändrats."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Lösenordet är felaktigt och SIM-kortet har spärrats! PUK2 krävs."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Gammal PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Ny PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Bekräfta ny PIN2-kod"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2-koden du angav är felaktig. Försök igen."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Den gamla PIN2-koden som du angav är felaktig. Försök igen."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2-koderna som du angav matchar inte. Försök igen."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Ange en PIN2-kod med 4 till 8 siffror."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Ange en PUK2-kod med 8 siffror."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 har ändrats."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Ange PUK2-kod"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Lösenordet är felaktigt. Ange en annan PIN2-kod och försök igen."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Lösenordet är felaktigt och SIM-kortet har spärrats. PUK2 krävs."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Färdig"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferenssamtal <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nummer till röstbrevlåda"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Ringer"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Försöker igen"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenssamtal"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Inkommande samtal"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Samtal avslutat"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Parkerat"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Lägger på"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"I samtal"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mitt nummer är <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Ringer"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missat samtal"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Missade samtal"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> missade samtal"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Missat samtal från <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Pågående samtal"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Parkerat"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Inkommande samtal"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Ny röstbrevlåda"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Ny röstbrevlåda (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Ring <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nummer till röstbrevlåda okänt"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Ingen tjänst"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Det valda nätverket (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) är inte tillgängligt"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Lägg på"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Ring upp"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Meddelande"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Om du vill ringa ett samtal måste du först inaktivera flygplansläge."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Inte registrerat på nätverk."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Inget mobilt nätverk är tillgängligt."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Samtalet har inte skickats. Du måste ange ett giltigt nummer."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Samtalet har inte skickats."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Startar sekvens för MMI-kod…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Inget stöd för tjänsten."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Det gick inte att växla mellan samtal."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Det gick inte att koppla isär samtalen."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Det gick inte överföra samtal."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Det gick inte att ringa konferenssamtal."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Det gick inte att avvisa samtal."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Det gick inte att släppa samtal."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Internetsamtal"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nödsamtal"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Sätter på radion…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Fungerar inte i detta område. Försöker igen…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Samtalet har inte skickats. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> är inte ett nödsamtalsnummer!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Samtalet har inte skickats. Ring ett nödsamtalsnummer!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Använd tangentbordet om du vill ringa"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Parkera"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Avsluta"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Knappsats"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Ljud av"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Lägg till samtal"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Koppla ihop samtal"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Växla"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Hantera samtal"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Hantera konferens"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Ljud"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videosamtal"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importera"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Importera alla"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Importera SIM-kontakter"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importera från Kontakter"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Hörapparater"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Aktivera kompatibilitet med hörapparat"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY av"</item>
+    <item msgid="3971695875449640648">"TTY är full"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF-signaler"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Ange längd på DTMF-signaler"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Lång"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Nätverksmeddelande"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivera telefonen"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Du måste ringa ett särskilt samtal för att aktivera telefontjänsten. "\n\n" Tryck på \"Aktivera\" och lyssna på instruktionerna om hur du aktiverar telefonen."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Vill du hoppa över aktiveringen?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Om du hoppar över aktiveringen kan du inte ringa samtal eller ansluta till mobila datanätverk (men du kan ansluta till Wi-Fi-nätverk). Du kommer att påminnas om att aktivera telefonen varje gång du sätter på den, tills du har aktiverat den."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Hoppa över"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktivera"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonen är aktiverad."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem med aktivering"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Följ de talade instruktionerna tills du här att aktiveringen är slutförd."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Högtalare"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Vänta medan mobilen programmeras."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Det gick inte att programmera"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefonen är nu aktiverad. Det kan ta upp till 15 minuter innan tjänsten startar."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonen har inte aktiverats. "\n"Du kanske måste hitta en plats med bättre täckning (nära ett fönster eller utomhus). "\n\n"Försök igen eller ring kundtjänst om du vill ha fler alternativ."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"FÖR MÅNGA MISSLYCKADE SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Tillbaka"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Försök igen"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Nästa"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Starta läget Återuppringning vid nödsamtal"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Läget Återuppringning vid nödsamtal"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Dataanslutning inaktiverad"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Inga dataanslutningar på <xliff:g id="COUNT">%s</xliff:g> minut"</item>
+    <item quantity="other" msgid="3122217344579273583">"Inga dataanslutningar på <xliff:g id="COUNT">%s</xliff:g> minuter"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefonen kommer att vara i läget Återuppringning vid nödsamtal i <xliff:g id="COUNT">%s</xliff:g> minut. I det här läget kan inga appar som kräver en dataanslutning användas. Vill du avsluta nu?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefonen kommer att vara i läget Återuppringning vid nödsamtal i <xliff:g id="COUNT">%s</xliff:g> minuter. I det här läget kan inga appar som kräver en dataanslutning användas. Vill du avsluta nu?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Den valda åtgärden är inte tillgänglig i läget Återuppringning vid nödsamtal. Telefonen kommer att vara i det här läget i <xliff:g id="COUNT">%s</xliff:g> minut. Vill du avsluta nu?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Den valda åtgärden är inte tillgänglig i läget Återuppringning vid nödsamtal. Telefonen kommer att vara i det här läget i <xliff:g id="COUNT">%s</xliff:g> minuter. Vill du avsluta nu?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Den valda åtgärden är inte tillgänglig under nödsamtal."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Avslutar läget Återuppringning vid nödsamtal"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ja"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Nej"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Ta bort permanent"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Tjänst"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfiguration"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Har inte angetts&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Övriga samtalsinställningar"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontaktbild"</string>
+    <string name="goPrivate" msgid="865837794424530980">"gör privat"</string>
+    <string name="selectContact" msgid="781975788478987237">"välj kontakt"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Inställningar för Internetsamtal"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Konton för Internetsamtal (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Konton"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Ta emot inkommande samtal"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Sänker batteriförbrukningen"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Använd Internetsamtal"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Använd Internetsamtal (endast Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"För alla samtal när datanätverk är tillgängligt"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Endast för Internetsamtal"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Fråga för varje samtal"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"För alla samtal"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Ring samtal"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Använd detta konto för Internetsamtal:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Använd för alla Internetsamtal"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Du kan ändra vilket konto som ska användas som standard för Internetsamtal. Valet görs under Telefon &gt; Inställningar &gt; Inställningar för Internetsamtal &gt; Konton."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Mobilsamtal"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Internetsamtal"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Inget konto för Internetsamtal"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Det finns inget konto för Internetsamtal på den här mobilen. Vill du lägga till ett nu?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Lägg till"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Lägg till konto"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Ta bort konto"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP-konton"</string>
+    <string name="saving_account" msgid="52903398217017954">"Kontot sparas ..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Kontot tas bort ..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Spara"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Släng"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Stäng profilen"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Stäng"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Primärt konto. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Kontrollerar status..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Registrerar ..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Försöker fortfarande ..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Tar inte emot samtal."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Kontoregistreringen avbröts eftersom det inte finns någon Internetanslutning."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Kontoregistreringen avbröts eftersom det inte finns någon Wi-Fi-anslutning."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Det gick inte att registrera kontot."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Tar emot samtal."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Det gick inte att registrera kontot: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); försöker igen senare"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Det gick inte att registrera kontot: felaktigt användarnamn eller lösenord."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Det gick inte att registrera kontot. Kontrollera servernamnet."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Kontot används för närvarande i appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Information om SIP-kontot"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Information om SIP-kontot"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Användarnamn"</string>
+    <string name="password_title" msgid="3323555249068171531">"Lösenord"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Visningsnamn"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Utgående proxyadress"</string>
+    <string name="port_title" msgid="5952939408078626657">"Portnummer"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Transporttyp"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Skicka \"behåll aktiv\""</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Använd som primärt konto"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Används för utgående samtal"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Valfria inställningar"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Användarnamn vid autentisering"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Användarnamn som används vid autentisering"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Har inte angetts&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Samma som användarnamn&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Valfri&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tryck om du vill visa alla"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▷ Tryck om du vill dölja alla"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> är ett obligatoriskt fält som måste fyllas i."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Portnumret ska vara mellan 1000 och 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Ingen Internetanslutning"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Ingen Wi-Fi-anslutning"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Kontrollera Internetanslutningen om du vill ringa Internetsamtal."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Enheten måste vara ansluten till ett Wi-Fi-nätverk för att du ska kunna ringa Internetsamtal (använd inställningarna under Trådlöst och nätverk)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Inget stöd för Internetsamtal"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Automatiskt"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Skicka alltid"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Röstsamtal stöds inte"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan inte prata nu. Läget?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Jag ringer tillbaka alldeles strax."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Jag ringer dig senare."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan inte prata nu. Ring senare!"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Skriv ett eget svar ..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Snabbsvar"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Redigera snabbsvar"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Snabbsvar"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Återställ standardappen"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Meddelandet har skickats till <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"ett"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"två"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tre"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"fyra"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"fem"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sex"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"sju"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"åtta"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"nio"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"stjärna"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"noll"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pund"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"ring upp"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backsteg"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Högtalartelefon aktiverad."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Samtalets ljud avstängt."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Svara"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Skicka SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Avvisa"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrera"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrera"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ljud"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standardsignal (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ringsignal"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Mobilen vibrerar när det ringer"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Knappljud"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Autoslutförande på knappsatsen"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringsignal och vibrera"</string>
+</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
new file mode 100644
index 0000000..2f0b7ef
--- /dev/null
+++ b/res/values-sw/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Data ya Simu"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Simu"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Kipigaji cha Dhararu"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Simu"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Orodha ya FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Haijulikani"</string>
+    <string name="private_num" msgid="6713286113000232309">" Number isiyojulikana"</string>
+    <string name="payphone" msgid="1931775086311769314">"Simu ya kulipia"</string>
+    <string name="onHold" msgid="9035493194749959955">"Inangoja"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Simu inatumika"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Mtandao unatumika"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Hakuna jibu, muda umekwisha"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Seva haiwezi kufikiwa"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nambari haifikiwi"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Jina la mtumiaji au nenosiri sio sahihi"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Ilipigwa kutoka nje ya mtandao"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Hitilafu ya seva: Tafadhali jaribu tena baadaye."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Hakuna mtandao"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Kiwango cha ACM kimezidishwa"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio imezima"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Hakuna SIM au kuna hitilafu ya SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Eneo ambalo halina huduma"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Simu zinazopigwa zimezuiliwa na FDN"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Huwezi kupiga simu za kutoka wakati kupiga simu kumezuiwa."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Simu zote zimezuiwa na kidhibiti ufikiaji."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Simu za dharura zimezuiwa na kidhibiti ufikiaji."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Simu za kawaida zimezuiwa na kidhibiti ufikiaji."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Nambari batili"</string>
+    <string name="confCall" msgid="1904840547188336828">"Simu ya kongamano"</string>
+    <string name="call_lost" msgid="317670617901479594">"Simu imepotea."</string>
+    <string name="ok" msgid="3811371167865772377">"Sawa"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Msimbo wa MMI  umeanza"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Msimbo wa USSD unafungua"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Msimbo wa MMI umeghairiwa"</string>
+    <string name="cancel" msgid="5044513931633602634">"Ghairi"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Ujumbe wa USSD lazima uwe kati ya herufi <xliff:g id="MIN_LEN">%d</xliff:g> na <xliff:g id="MAX_LEN">%d</xliff:g>. Tafadhali jaribu tena."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Dhibiti simu ya kongamano"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Spika"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Kipaza sauti cha kichwani"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Viskizi vya maskio pasiwaya"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Tuma toni zinazofuata? "\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Inatuma toni"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Tuma"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ndiyo"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Hapana"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Badilisha kibambo egemezi na"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nambari ya sauti inayokosekana"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Hakuna nambari ya ujumbe wa sauti iliyohifadhiwa katika SIM kadi."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Ongeza nambari"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Kadi yako ya simu imefunguliwa. Simu yangu inafungua…."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN ya kufungua mtandao wa SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Fungua"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Kataa"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Inaomba mtandao ufunguliwe…."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Ombi la kufungua mtandao halijafaulu."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Umefaulu kufungua mtandao."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Mipangilio ya simu ya GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Mipangilio ya simu ya CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Majina ya Milango ya Kufikia"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Mipangilio ya mtandao"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Barua ya sauti"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Kampuni zinazotoa huduma"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Mipangilio ya simu"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Mipangilio ya ziada"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Mipangilio ya ziada ya simu ya GSM tu"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Mipangilio ya ziada ya simu ya CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Mipangilio ya ziada ya simu ya CDMA tu"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Mipangilio ya huduma ya mtandao"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Kitambulisho cha mpigaji SIM"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Inapakia mipangilio..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nambari imefichwa kwa simu unayopiga"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Namba inaonekana kwa simu zinazopigwa"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Tumia mipangilio ya kiendesha chaguo-msingi kuonyesha namba kwa simu zinazopigwa"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Simu inasubiriwa"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Wakati wa simu, niarifu juu ya simu zinazoingia"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Wakati wa simu, niarifu kuhusu simu zinazoingia"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Mipangilio ya kusambaza simu"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Kusambaza simu"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Sambaza kila wakati"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Kila wakati tumia nambari hii"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Inasambaza  simu zote"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Inasambaza simu zote kwa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Nambari haipatikani"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Imelemazwa"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Sambaza wakati unashughulika"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Wakati namba inatumika"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Inasambaza kwa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Imelemazwa"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Mtoa huduma wako haauni ulemezaji wa kusambaza simu wakati simu yako inashughuli."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Sambaza wakati haipokelewi"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Weka namba wakati haijajibiwa"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Inasambaza kwa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Imelemazwa"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Mtoa huduma wako haauni ulemezaji wa kusambaza simu wakati simu yako haijibu."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Sambaza wakati haifikiwi"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Wakati namba haipatikani"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Inasambaza kwa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Imelemazwa"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Mtoa huduma wako haauni ulemezaji wa kusambaza simu wakati simu yako haifikiwi."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Mipangilio ya simu"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Hitlafu ya mipangilio ya kupiga simu"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Inasoma mipangilio…."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Inaboresha mipangilio…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Inageuza mipangilio..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Jibu lisilotarajiwa kutoka kwa mtandao."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Hitilafu ya Mtandao au SIM kadi"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Mpangilio wa programu ya simu yako wa Kupigia Nambari Fulani Pekee umewashwa. Kutokana na hayo, baadhi ya vipengele vinavyohusiana na simu havifanyi kazi."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Washa redio kabla ya kutazama mipangilio hii."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Sawa"</string>
+    <string name="enable" msgid="1059008390636773574">"Washa"</string>
+    <string name="disable" msgid="7274240979164762320">"Zima"</string>
+    <string name="change_num" msgid="239476305819844391">"Sasisha"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Chaguo-msingi la mtandao"</item>
+    <item msgid="7876195870037833661">"Ficha nambari"</item>
+    <item msgid="1108394741608734023">"Onyesha nambari"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Nambari ya ujumbe wa sauti haijabadilishwa"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Haikuweza kubadilisha namba ya ujumbe wa sauti."\n"Wasiliana na mtoa huduma wako shida hii ikiendelea."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Haikuweza kubadilisha namba ya kusambaza."\n"Wasiliana na mtoa huduma wako shida hii ikiendelea."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Haikuweza kuepua na kuhifadhi mipangilio ya nambari ya  usambazaji. "\n" Hata hivyo swichi kwa mtoahuduma  mpya?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Hakuna mabadiliko yaliyofanywa"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Chagua huduma ya barua ya sauti"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Mtoa huduma wangu"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mipangilio ya mtandao wa simu"</string>
+    <string name="label_available" msgid="1181658289009300430">"Mitandao inayopatikana"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Inatafuta…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Hakuna mitandao iliyopatikana."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Tafuta mitandao"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Hitilafu wakati wa utafutaji wa mitandao."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Inasajili kwa <xliff:g id="NETWORK">%s</xliff:g>….."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM kadi yako hairuhusu muunganisho wa mtandao huu."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Haiwezi kuunganisha na mtandao huu hivi sasa. Jaribu tena baadaye."</string>
+    <string name="registration_done" msgid="495135664535876612">"Imesajiliwa katika mtandao"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Chagua mtoa huduma"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Tafuta mitandao yote inayopatikana"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Chagua kiotomatiki"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Chagua mtandao unaoupendelea kiotomatiki"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Usajili otomatiki..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Hali ya Mtandao"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Badilisha gumzo ya utendaji wa mtandao"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"hali ya mtandao unaopendelewa"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Modi pendekezwa ya mtandao: WCDMA pendekezwa"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Modi pendekezwa ya mtandao: GSM  pekee"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Modi pendekezwa ya mtandao: WCDMA pekee"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Modi pendekezwa ya mtandao: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Modi pendekezwa ya mtandao: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Modi pendekezwa ya mtandao: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Modi pendekezwa ya mtandao: CDMA pekee"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Modi pendekezwa ya mtandao:  EvDo pekee"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Hali ya mtandao inayopendelewa: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Hali ya mtandao inayopendelewa: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Hali ya mtandao inayopendelewa: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Hali ya mtandao inayopendelewa: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Hali ya mtandao inayopendelewa: Ulimwenguni Kote"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Hali ya mtandao inayopendelewa: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Ulimwenguni Kote"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo pekee"</item>
+    <item msgid="1508557726283094448">"CDMA w/o EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo otomatiki"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA otomatiki"</item>
+    <item msgid="7913148405605373434">"WCDMA pekee"</item>
+    <item msgid="1524224863879435516">"GSM pekee"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA inapendelewa"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Data imewashwa"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Wezesha data ifikiwe kupitia mtandao wa Simu"</string>
+    <string name="roaming" msgid="8871412572928323707">"Utumiaji data nje ya mtandao wako wa kawaida"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Unganisha huduma ya data wakati niko nje ya mtandao wangu wa kawaida"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Unganisha huduma ya data wakati niko nje ya mtandao wangu wa kawaida"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Umepoteza muunganisho wa data kwa sababu uliondoka kwenye mtandao wako wa kawaida ukiwa umezima utumiaji data nje ya mtandao wa kawaida."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Ungependa kuruhusu matumizi ya data nje ya mtandao wako wa kawaida? Huenda ukatozwa ada iliyo juu!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Chaguo za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Chaguo za CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Matumizi ya data"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Data iliyotumika katika kipindi cha sasa"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Muda wa matumizi ya data"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Sera ya kasi ya data"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Pata maelezo zaidi"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ya<xliff:g id="USED_2">%3$s</xliff:g> muda wa kiwango cha juu"\n"Muda unaofuata unaanza baada ya siku<xliff:g id="USED_3">%4$d</xliff:g>(<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (asilimia <xliff:g id="USED_1">%2$d</xliff:g>) ya upeo wa muda wa <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Upeo wa <xliff:g id="USED_0">%1$s</xliff:g> umepitwa"\n"Kasi ya data imepunguzwa hadi kilobaiti <xliff:g id="USED_1">%2$d</xliff:g> kwa sekunde"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ya mzunguko imekamilika"\n"Muda ufuatao unaanza baada ya siku <xliff:g id="USED_1">%2$d</xliff:g> (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Kasi ya data imepunguzwa hadi kilibaiti <xliff:g id="USED">%1$d</xliff:g> kwa sekunde kama kiwango cha matumizi ya data kimepitwa"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Maelezo zaidi kuhusu sera ya matumizi ya data ya mtandao wa mtoa huduma wako"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS ya Matangazo ya Simu"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS ya Kutangaza Seli"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS ya Kutangaza Seli imewezeshwa"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS ya Kutangaza Seli imelemazwa"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Mipangilio ya SMS ya Matangazo ya Simu"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Tangazo la Dharura"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Utangazaji wa Dharura umewezeshwa"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Tangazo la Dharura limelemazwa"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Usimamizi"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Usimamizi umewezeshwa"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Usimamizi umelemazwa"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Matengenezo"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Matengenezo yamewezeshwa"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Ukarabati umelemazwa"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Habari za Jumla"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Habari za Biashara na za Fedha"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Habari za Michezo"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Habari za Burudani"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Ya nchini"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Habari za nchini zimewezeshwa"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Habari za nchini zimelemazwa"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Mkoa"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Habari za mkoa zimewezeshwa"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Habari za Mkoa zimelemazwa"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Kitaifa"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Habari za kitaifa zimewezeshwa"</string>
+    <string name="national_disable" msgid="326018148178601166">"Habari za kitaifa zimelemazwa"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Kimataifa"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Habari za kimataifa zimewezeshwa"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Habari za kimataifa zimelemazwa"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Lugha"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Chagua lugha ya habari"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Kiingereza"</item>
+    <item msgid="1151988412809572526">"Kifaransa"</item>
+    <item msgid="577840534704312665">"Kihispania"</item>
+    <item msgid="8385712091143148180">"Kijapani"</item>
+    <item msgid="1858401628368130638">"Kikorea"</item>
+    <item msgid="1933212028684529632">"Kichina"</item>
+    <item msgid="1908428006803639064">"Kiyahudi"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Lugha"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Hali ya hewa ya Nchini"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Hali ya hewa ya Nchini imewezeshwa"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Hali ya hewa ya eneo imelemazwa"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Ripoti za Trafiki za Eneo"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Ripoti za Trafiki ya Eneo zimewezeshwa"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Ripoti za Trafiki ya Eneo zimelemazwa"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Ratiba za Ndege katiks Uwanja wa Ndege wa Eneo"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Ratiba za Ndege zinazotoka Uwanja wa ndege wa nchini zimewezeshwa"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Ratiba za Ndege zinazotoka Uwanja wa ndege wa nchini zimelemazwa"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Mikahawa"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Mikahawa imewezeshwa"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Mikahawa imelemazwa"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Nyumba"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Nyumba zimewezeshwa"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Nyumba zimelemzwa"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Saraka ya Rejareja"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Saraka ya Rejareja imewezeshwa"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Saraka ya Rejareja imelemazwa"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Matangazo"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Matangazo yamewezeshwa"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Matangazo yamelemazwa"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Nukuu za Hisa"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Nukuu za Hisa zimewezeshwa"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Nukuu za Hisa zimelemazwa"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Nafasi za Ajira"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Nafasi za Ajira zimewezeshwa"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Nafasi za Ajira zimelemazwa"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Tiba, Afya, na Hospitali"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Tiba, Afya, na Hospitali imewezeshwa"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Tiba, Afya, na Hospitali imelemazwa"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Habari za Teknolojia"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Habari za Teknolojia zimewezeshwa"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Habari za Teknolojia zimelemazwa"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Kategoria anuwai"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Kategoria anuwai imewezeshwa"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Kategoria anuwai imelemazwa"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Tumia mitandao ya 2G pekee"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Huokoa nishati ya betri"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Chagua mfumo"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Badilisha hali ya urandaji ya CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Chagua mfumo"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Nyumbani tu"</item>
+    <item msgid="1205664026446156265">"Otomatiki"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Usajili wa CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Badilisha kati ya RUIM/SIM na NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"usajili"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Wezesha kifaa"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Sanidi huduma ya data"</string>
+    <string name="fdn" msgid="7878832555095183202">"Nambari zilizopangiwa za Upigaji"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Orodha ya FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Uwezeshaji wa FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Nambari za upigaji simu zilizobanwa zimelemazwa"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Nambari za upigaji simu zilizobanwa zimelemazwa"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Wezesha FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Lemaza FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Badilisha PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Lemaza FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Wezesha FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Dhibiti nambari Za Upigaji simu Zilizobanwa"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Badilisha nenosiri la kufikia FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Dhibiti orodha ya nambari ya simu"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Faragha ya sauti"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Wezesha gumzo ya faragha iliyoboreshwa"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Hali ya TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Weka hali ya TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Jaribu tena Kiotomatiki"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Wezesha hali ya kujaribu tena Kiotomatiki"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Ongeza anwani"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Hariri anwani"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Futa anwani"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Chapa PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Jina"</string>
+    <string name="number" msgid="7905950798349903858">"Nambari"</string>
+    <string name="save" msgid="4094274636321939086">"Hifadhi"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Ongeza nambari za upigaji simu uliobanwa"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Inaongeza nambari ya upigaji uliobanwa..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Nambari ya upigaji simu uliobanwa imeongezwa."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Hariri nambari za kudumu"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Inasasisha nambari ya upigaji simu uliobanwa..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Nambari ya upigaji simu uliobanwa imesasishwa."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Futa namba ya upigaji simu ya kudumu"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Inafuta nambari ya upigaji simu uliobanwa..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Nambari ya upigaji simu uliobanwa imefutwa"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN haikusasishwa kwa sababu uliweka PIN isiyo sahihi."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN haikusasishwa kwa sababu namba haiwezi kuzidisha herufi 20."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN haikusasishwa. PIN2 haikuwa sahihi, au namba ya simu ilikataliwa."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Inasoma kutoka kwa SIM kadi"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Hakuna anwani kwenye kadi yako ya SIM."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Chagua anwani za kuagiza"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Ili kuleta anwani kutoka kwa SIM kadi, kwanza zima hali ya Ndege."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Wezesha/zima nenosiri la SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Badilisha nenosiri la SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN ya SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN ya zamani"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN mpya"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Thibitisha PIN mpya"</string>
+    <string name="badPin" msgid="8955102849303984935">"PIN ya zamani uliyochapa sio sahihi. Jaribu tena."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN ulizochapa hazilingani. Jaribu tena."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Chapisha nenosiri lenye nambari kati ya 4 na 8."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Lemaza Nensiri la SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Wezesha Nenosiri la SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Tafadhali subiri…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN ya SIM imewezeshwa."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN ya SIM imelemazwa."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN uliyochapa haikuwa sahihi."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Umefaulu kubadilisha PIN ya SIM."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Nenosiri sio sahihi, SIM imefungwa! PUK2 imeombwa."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Nenosiri la zamani"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Nenosiri la 2 mpya"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Thibitisha nenosiri la pili mpya"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 uliyocharaza sio sahihi. Jaribu tena."</string>
+    <string name="badPin2" msgid="1041576234483629991">"PIN2 ya zamani uliyochapa sio sahihi. Jaribu tena."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2 ulizocharaza haziambatani. Jaribu tena."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Chapisha nenosiri la 2 yaani nambari 4 hadi 8."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Chapisha PUK2 ambayo ina namba 8."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 imefaulu kubadilishwa."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Andika msimbo wa PUK ya 2."</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Nenosiri sio sahihi. Badilisha PIN2 na ujaribu tena."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Nenosiri sio sahihi, SIM imefungwa. PUK2 imeombwa."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Kwisha"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Simu ya kongamano <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nambari ya ujumbe wa sauti"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Inapiga"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Inajaribu tena"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Simu ya kongamano"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Simu inayoingia"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Simu imekamilika"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Inangoja"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Kukata simu"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Katika simu"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Nambari yangu ni <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Inapiga"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Simu isiyojibiwa"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Simu zisizojibiwa"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> simu ambazo hazijajibiwa"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Simu isiyojibiwa kutoka <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Simu inayoendelea"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Inangoja"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Simu inayoingia"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Ujumbe mpya wa sauti"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Barua mpya ya sauti <xliff:g id="COUNT">%d</xliff:g>"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Piga <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nambari ya ujumbe wa sauti haijulikani."</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Hakuna huduma"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Mtandao uliochaguliwa <xliff:g id="OPERATOR_NAME">%s</xliff:g> haupatikani"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Kata simu"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Mpigie"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Ujumbe"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Kupiga simu, kwanza zima hali ya ndege."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Haijasajiliwa kwa mitandao"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mtandao wa simu haupatikani."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Simu haijatumwa, hakuna nambari halali iliyoingizwa."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Simu haijatumwa."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Inaanzisha msururu wa MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Kifaa ambacho hakijahiliwa."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Imeshindwa kubadilisha simu"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Imeshindwa kutenganisha simu."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Imeshindwa kutuma simu"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Imeshindwa kupigia watu wengi."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Imeshindwa kukataa simu."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Imeshindwa kuachilia simu."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">" Simu ya wavuti"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Simu ya dharura"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Inawasha redio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Uko mahali pasipokuwa na huduma, inajaribu tena…."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Simu haijatumwa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> sio nambari ya dharura!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Simu haijatumwa. Piga nambari ya dharura!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Tumia kichapishi kubonyeza"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Shikilia"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Mwisho"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Kibao cha kupiga"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Nyamazisha"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Ongeza simu"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Changanyisha simu"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Badili"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Dhibiti simu"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Dhibiti kongamano"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Kusikika"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Hangout ya Video"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Ingiza"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Leta zote"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Inaleta anwani za SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ingiza kutoka kwa anwani"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Vifaa vya kusaidia kusikia"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Washa utangamano wa kifaa cha kusaidia kusikia"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Zima TTY"</item>
+    <item msgid="3971695875449640648">"TTY Kamili"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Toni za DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Weka urefu wa toni za DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Kawaida"</item>
+    <item msgid="2883365539347850535">"Ndefu"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Ujumbe wa mtandao"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Wezesha simu yako"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Simu maalum inahitaji kupigwa ili kuamilisha huduma ya simu yako. "\n\n" Baada ya kubonyeza \"Amilisha\", sikiliza maagizo yaliyotolewa ili kuamilisha simu yako."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Ruka uwezeshaji?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Kama utaruka kuwezesha, hauwezi kupiga simu au kuunganisha kwa mitandao ya data ya simu (ingawaje unaweza kuunganisha kwa mitandao-hewa). Hadi uiwezeshe simu yako, utaulizwa uiwezeshe kila utakapoiwasha."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Ruka"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Washa"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Simu imeamilishwa."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Tatizo na uamilisho"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Fuata maagizo yanayotamkwa hadi usikie kwamba uwezeshaji umekamilika."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Spika"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Subiri wakati simu yako inapoprogramiwa."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Usanidi haukufanikiwa"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Simu yako imeamilishwa sasa. Huenda ikachukua hadi dakika 15 kwa huduma kuanza."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Simu yako haikuamilishwa. "\n" Huenda ukahitaji kupata eneo lenye mtandao bora (karibu na dirisha, au nje). "\n\n"Jaribu tena au piga simu kwa huduma ya wateja kwa chaguo zaidi."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"USHINDE ZAIDI WA SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Nyuma"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Jaribu tena"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Ifuatayo"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Umeingia katika gumzo ya kupiga tena simu ya Dharura"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"hali ya kupiga tena simu ya Dharura"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Muunganisho wa data umelemazwa"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Hakuna muunganisho wa data kwa dakika <xliff:g id="COUNT">%s</xliff:g>"</item>
+    <item quantity="other" msgid="3122217344579273583">"Hakuna data ya muunganisho kwa dakika <xliff:g id="COUNT">%s</xliff:g>"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Simu itakuwa katika hali ya Kupiga tena Simu ya Dharura kwa dakika <xliff:g id="COUNT">%s</xliff:g>. Ukiwa katika hali hii hakuna programu zinazotumia muunganisho wa data zinazoweza kutumika. Je, unataka kutoka sasa?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Simu itakuwa katika hali ya Kupiga tena Simu ya Dharura kwa dakika <xliff:g id="COUNT">%s</xliff:g>. Ukiwa katika hali hii hakuna programu zinazotumia muunganisho wa data zinazoweza kutumika. Je, unataka kutoka sasa?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Tendo lililochaguliwa halipatikana wakati iko katika hali ya kupiga tena simu ya dharura. Simu itakuwa katika hali hii kwa dakika <xliff:g id="COUNT">%s</xliff:g>. Je, unataka kutoka sasa?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Kitendo kilichochaguliwa hakipatikani katika hali ya Kupiga Tena Simu ya Dharura. Simu itakuwa katika hali hii kwa dakika <xliff:g id="COUNT">%s</xliff:g>. Je, unataka kutoka sasa?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Kitendo kilichochaguliwa hakipatikani ikiwa katika simu ya dharura."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Inatoka kwa hali ya Kupiga tena simu ya Dharura"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Ndiyo"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Hapana"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Kataa"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Huduma"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Sanidi"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Haijawekwa&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Mipangilio mingine ya simu"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Kupiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"picha ya anwani"</string>
+    <string name="goPrivate" msgid="865837794424530980">"nenda kwa faragha"</string>
+    <string name="selectContact" msgid="781975788478987237">"chagua anwani"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Mipangilio ya simu za wavuti"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Akaunti za upigaji simu za wavuti (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Akaunti"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Pokea simu zinazoingia"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Hupunguza maisha ya betri"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Tumia upigaji simu wa wavuti"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Tumia upigaji simu ya wavuti (mtandao-hewa tu)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Kwa simu zote wakati mtandao wa data unapatikana"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Kwa simu za wavuti tu"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Uliza kwa kila simu"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Kwa simu zote"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Piga simu"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Tumia akaunti ya upigaji simu za wavuti:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Tumia kila wakati kupiga simu za wavuti"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Unaweza kubadilisha ni akaunti gani ya kupiga simu ya mtandao itatumika kimsingi kutoka kwa Simu &gt; Mipangilio &gt; mipangilio ya kupiga simu ya mtandao &gt; Skrini ya akaunti."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Kupiga simu ya mkononi"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Simu ya wavuti"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Hakuna akaunti ya upigaji simu wa Mtandao"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Hakuna akaunti za kupiga simu za mtandao kwenye simu hii. Je, unataka kuongeza moja sasa?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Ongeza"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Ongeza akaunti"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Ondoa akaunti"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Akaunti za SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Inahifadhi akaunti..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Inaondoa akaunti..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Hifadhi"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Tupa"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Funga wasifu"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Sawa"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Funga"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Akaunti ya msingi: <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Inakakuga hali..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Inasajili..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Bado inajaribu..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Haipokei simu."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Usajili wa akaunti umesimamishwa kwa sababu hakuna muunganisho wa Mtandao."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Usajili wa akaunti umekomeshwa kwa sababu hakuna muunganisho wa Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Usajili wa akaunti haujafanikiwa."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Inapokea simu."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Usajili wa akaunti haujafaulu: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; nitajaribu baadaye"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Usajili wa akaunti hujafaulu: Jina la mtumiaji au nenosiri sio sahihi."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Usajili wa akaunti haujafaulu: Kagua jina la seva."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Akaunti hii inatumika kwa sasa na programu ya <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Maelezo ya akaunti ya SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Maelezo ya akaunti ya SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Seva"</string>
+    <string name="username_title" msgid="2479375923477682328">"Jina la mtumiaji"</string>
+    <string name="password_title" msgid="3323555249068171531">"Nenosiri"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Jina la Uonyesho"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Anwani ya seva mbadala ya kutoka"</string>
+    <string name="port_title" msgid="5952939408078626657">"Nambari ya mlango"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Aina ya usafiri"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Tuma weka-hai"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Weka kama akaunti ya msingi"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Hutumika kwa simu zinazotoka"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Mipangilio ya hiari"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Jina la mtumiaji la uthibitishaji"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Jina la mtumiaji hutumika kwa uthibitishaji"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Haijawekwa&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Sawa na jina la mtumiaji&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&amp;lt Ni hiari &gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Gusa ili kuonyesha yote"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Guza ili kuficha zote"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> inahitajika na haiwezi kuachwa wazi."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Nambari ya kituo tarishi inafaa kuwa kati ya 1000 na 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Hakuna muunganisho wa wavuti"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Hakuna muunganisho wa mtandao-hewa"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Ili kupiga simu ya mtandao, kagua muunganisho wako wa Mtandao kwanza."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Lazima uwe umeunganishwa kwa mtandao wa Wi-Fi ili kupiga simu za mtandao(tumia pasi waya &amp; Mipangilio ya mtandao)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Upigaji simu za wavuti hauhimiliwi"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Otomatiki"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Tuma kila wakati"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Upigaji simu za sauti hauhimiliwi"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Siwezi kuongea sasa. Kuna nini?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nitakupigia mara moja."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nitakupigia baadaye."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Siwezi kuongea sasa. Nipigie baadaye?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Andika yako binafsi..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Majibu ya haraka"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Hariri majibu ya haraka"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Majibu ya haraka"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Weka upya programu chaguo-msingi"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Ujumbe uliotumwa kwa <xliff:g id="PHONE_NUMBER">%s</xliff:g> ."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"moja"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"mbili"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tatu"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"nne"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"tano"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sita"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"saba"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"nane"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"tisa"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"nyota"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"sufuri"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pauni"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"piga simu"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"nafasi ya nyuma"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Spika za simu zimewezeshwa"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Simu imezimwa."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Jibu"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Tuma SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Kataa"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Mtetemo"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Mtetemo"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sauti"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Sauti chaguo-msingi (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Mlio wa simu"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Tetema wakati wa kuita"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Toa sauti vitufe vya kupiga vinapoguswa"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Jaza kitufe cha kupiga kiotomatiki"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Malio wa simu na Mtetemo"</string>
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
new file mode 100644
index 0000000..41a526a
--- /dev/null
+++ b/res/values-th/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"ข้อมูลมือถือ"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"โทรศัพท์"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"โปรแกรมโทรออกฉุกเฉิน"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"โทรศัพท์"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"รายการ FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"ไม่ทราบ"</string>
+    <string name="private_num" msgid="6713286113000232309">"หมายเลขส่วนตัว"</string>
+    <string name="payphone" msgid="1931775086311769314">"โทรศัพท์สาธารณะ"</string>
+    <string name="onHold" msgid="9035493194749959955">"พักสาย"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"สายไม่ว่าง"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"เครือข่ายไม่ว่าง"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"ไม่มีการตอบกลับ หมดเวลา"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"ไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"ไม่สามารถติดต่อเลขหมายนี้ได้"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"โทรจากนอกเครือข่าย"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"ข้อผิดพลาดของเซิร์ฟเวอร์ โปรดลองอีกครั้งในภายหลัง"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"ไม่มีสัญญาณ"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"เกินจำนวนสูงสุดของ ACM แล้ว"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"ปิดวิทยุ"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"ไม่มีซิมหรือเกิดข้อผิดพลาดกับซิม"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"นอกพื้นที่ให้บริการ"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"การโทรออกถูกจำกัดโดย FDN"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"โทรออกไม่ได้เมื่อระงับการโทรไว้"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"การโทรทั้งหมดถูกจำกัดโดยการควบคุมการเข้าถึง"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"การโทรฉุกเฉินถูกจำกัดโดยการควบคุมการเข้าถึง"</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"การโทรปกติถูกจำกัดโดยการควบคุมการเข้าถึง"</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"หมายเลขไม่ถูกต้อง"</string>
+    <string name="confCall" msgid="1904840547188336828">"การประชุมสาย"</string>
+    <string name="call_lost" msgid="317670617901479594">"สายหลุดไป"</string>
+    <string name="ok" msgid="3811371167865772377">"ตกลง"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"เริ่มรหัส MMI แล้ว"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"กำลังรันรหัส USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"ยกเลิกรหัส MMI แล้ว"</string>
+    <string name="cancel" msgid="5044513931633602634">"ยกเลิก"</string>
+    <string name="enter_input" msgid="1810529547726803893">"ข้อความ USSD ต้องมีจำนวนอักขระระหว่าง <xliff:g id="MIN_LEN">%d</xliff:g> และ <xliff:g id="MAX_LEN">%d</xliff:g> อักขระ โปรดลองอีกครั้ง"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"จัดการการประชุมสาย"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"ลำโพง"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"ชุดหูฟังโทรศัพท์"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"ชุดหูฟังแบบมีสาย"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"บลูทูธ"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"ส่งโทนเสียงต่อไปนี้หรือไม่ "\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"กำลังส่งโทนเสียง"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"ส่ง"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"ใช่"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"ไม่"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"แทนที่อักขระแทนด้วย"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"ไม่มีหมายเลขข้อความเสียง"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"ไม่มีหมายเลขข้อความเสียงจัดเก็บอยู่ในซิมการ์ด"</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"เพิ่มหมายเลข"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"ยกเลิกการปิดกั้นซิมการ์ดแล้ว กำลังปลดล็อกโทรศัพท์ของคุณ..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN ปลดล็อกเครือข่ายซิม"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"ปลดล็อก"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"เลิกแสดง"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"กำลังขอปลดล็อกเครือข่าย..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"คำขอปลดล็อกเครือข่ายไม่สำเร็จ"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"ปลดล็อกเครือข่ายไม่สำเร็จ"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"การตั้งค่าการโทร GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"การตั้งค่าการโทร CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"ชื่อจุดเข้าใช้งาน"</string>
+    <string name="settings_label" msgid="3876743539816984008">"การตั้งค่าเครือข่าย"</string>
+    <string name="voicemail" msgid="8693759337917898954">"ข้อความเสียง"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"ผู้ให้บริการเครือข่าย"</string>
+    <string name="call_settings" msgid="6112441768261754562">"การตั้งค่าการโทร"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"การตั้งค่าเพิ่มเติม"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"การตั้งค่าการโทรเฉพาะ GSM เพิ่มเติม"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"การตั้งค่าการโทร CDMA เพิ่มเติม"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"การตั้งค่าการโทรเฉพาะ CDMA เพิ่มเติม"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"การตั้งค่าบริการเครือข่าย"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"หมายเลขผู้โทร"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"กำลังโหลดการตั้งค่า…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"หมายเลขที่ซ่อนในสายโทรออก"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"หมายเลขที่แสดงในสายโทรออก"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"ใช้การตั้งค่าเริ่มต้นของผู้ให้บริการเพื่อแสดงหมายเลขของฉันขณะโทรออก"</string>
+    <string name="labelCW" msgid="6120513814915920200">"สายเรียกซ้อน"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"แจ้งฉันเมื่อมีสายเรียกเข้าระหว่างการโทร"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"แจ้งฉันเมื่อมีสายเรียกเข้าระหว่างการโทร"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"การตั้งค่าการโอนสาย"</string>
+    <string name="labelCF" msgid="2574386948026924737">"การโอนสาย"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"โอนสายทุกครั้ง"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"ใช้หมายเลขนี้ทุกครั้ง"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"โอนสายทั้งหมด"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"โอนสายทั้งหมดไปที่ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"หมายเลขใช้งานไม่ได้"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"ถูกปิดใช้งาน"</string>
+    <string name="labelCFB" msgid="218938523102207587">"โอนสายเมื่อสายไม่ว่าง"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"หมายเลขเมื่อสายไม่ว่าง"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"โอนสายไปที่ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"ถูกปิดใช้งาน"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"ผู้ให้บริการของคุณไม่สนับสนุนการปิดใช้งานการโอนสายเมื่อสายไม่ว่าง"</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"โอนสายเมื่อไม่มีผู้รับ"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"หมายเลขเมื่อไม่ได้รับสาย"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"โอนสายไปที่ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"ถูกปิดใช้งาน"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"ผู้ให้บริการของคุณไม่สนับสนุนการปิดใช้งานการโอนสายเมื่อไม่มีผู้รับสาย"</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"โอนสายเมื่อติดต่อไม่ได้"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"หมายเลขเมื่อติดต่อไม่ได้"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"โอนสายไปที่ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ถูกปิดใช้งาน"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ผู้ให้บริการของคุณไม่สนับสนุนการปิดใช้งานการโอนสายเมื่อติดต่อไม่ได้"</string>
+    <string name="updating_title" msgid="6146755386174019046">"การตั้งค่าการโทร"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"ข้อผิดพลาดในการตั้งค่าการโทร"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"กำลังอ่านการตั้งค่า…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"กำลังอัปเดตการตั้งค่า..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"กำลังย้อนกลับการตั้งค่า…"</string>
+    <string name="response_error" msgid="6674110501330139405">"พบการตอบกลับที่ไม่คาดหมายจากเครือข่าย"</string>
+    <string name="exception_error" msgid="7027667130619518211">"ข้อผิดพลาดของเครือข่ายหรือซิมการ์ด"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"เนื่องจากมีการเปิดใช้การตั้งค่าการจำกัดหมายเลขโทรออกของแอปโทรศัพท์ จึงเป็นผลให้คุณลักษณะที่เกี่ยวกับการโทรบางอย่างไม่ทำงาน"</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"เปิดวิทยุก่อนดูการตั้งค่าเหล่านี้"</string>
+    <string name="close_dialog" msgid="2365884406356986917">"ตกลง"</string>
+    <string name="enable" msgid="1059008390636773574">"ใช้งาน"</string>
+    <string name="disable" msgid="7274240979164762320">"ปิดการใช้งาน"</string>
+    <string name="change_num" msgid="239476305819844391">"อัปเดต"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"ค่าเริ่มต้นของเครือข่าย"</item>
+    <item msgid="7876195870037833661">"ซ่อนหมายเลข"</item>
+    <item msgid="1108394741608734023">"แสดงหมายเลข"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"เปลี่ยนหมายเลขข้อความเสียงแล้ว"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"ไม่สามารถเปลี่ยนหมายเลขข้อความเสียง"\n"ติดต่อผู้ให้บริการของคุณหากปัญหานี้ยังคงอยู่"</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"ไม่สามารถเปลี่ยนหมายเลขที่จะโอน"\n"ติดต่อผู้ให้บริการของคุณหากปัญหานี้ยังคงอยู่"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"ไม่สามารถดึงและบันทึกการตั้งค่าจำนวนการส่งต่อในปัจจุบัน "\n"ยังคงต้องการสลับไปยังผู้ให้บริการใหม่หรือไม่"</string>
+    <string name="no_change" msgid="3186040086622435212">"ไม่มีการเปลี่ยนแปลง"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"เลือกบริการข้อความเสียง"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"ผู้ให้บริการของฉัน"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"การตั้งค่าเครือข่ายมือถือ"</string>
+    <string name="label_available" msgid="1181658289009300430">"เครือข่ายที่ใช้งานได้"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"กำลังค้นหา…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"ไม่พบเครือข่าย"</string>
+    <string name="search_networks" msgid="1601136049300882441">"ค้นหาเครือข่าย"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"พบข้อผิดพลาดขณะค้นหาเครือข่าย"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"กำลังลงทะเบียนบน <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"ซิมการ์ดของคุณไม่อนุญาตให้เชื่อมต่อกับเครือข่ายนี้"</string>
+    <string name="connect_later" msgid="2308119155752343975">"ไม่สามารถเชื่อมต่อเครือข่ายนี้ได้ในขณะนี้ ลองอีกครั้งในภายหลัง"</string>
+    <string name="registration_done" msgid="495135664535876612">"ลงทะเบียนบนเครือข่ายแล้ว"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"เลือกผู้ให้บริการเครือข่าย"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"ค้นหาเครือข่ายทั้งหมดที่ใช้ได้"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"เลือกโดยอัตโนมัติ"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"เลือกเครือข่ายที่ต้องการอัตโนมัติ"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"การลงทะเบียนอัตโนมัติ..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"โหมดเครือข่าย"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"เปลี่ยนโหมดปฏิบัติการของเครือข่าย"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"โหมดเครือข่ายที่ต้องการ"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"โหมดเครือข่ายที่ต้องการ: ต้องการ WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"โหมดเครือข่ายที่ต้องการ: GSM เท่านั้น"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"โหมดเครือข่ายที่ต้องการ: WCDMA เท่านั้น"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"โหมดเครือข่ายที่ต้องการ: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"โหมดเครือข่ายที่ต้องการ: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"โหมดเครือข่ายที่ต้องการ: CDMA เท่านั้น"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"โหมดเครือข่ายที่ต้องการ: EvDo เท่านั้น"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"โหมดเครือข่ายที่ต้องการ: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"โหมดเครือข่ายที่ต้องการ: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"โหมดเครือข่ายที่ต้องการ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"โหมดเครือข่ายที่ต้องการ: ทั่วโลก"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"โหมดเครือข่ายที่ต้องการ: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"ทั่วโลก"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo เท่านั้น"</item>
+    <item msgid="1508557726283094448">"CDMA ที่ไม่มี EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo อัตโนมัติ"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA อัตโนมัติ"</item>
+    <item msgid="7913148405605373434">"WCDMA เท่านั้น"</item>
+    <item msgid="1524224863879435516">"GSM เท่านั้น"</item>
+    <item msgid="3817924849415716259">"ต้องการ GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"เปิดใช้งานข้อมูลแล้ว"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"เปิดใช้งานการเข้าถึงข้อมูลบนเครือข่ายมือถือ"</string>
+    <string name="roaming" msgid="8871412572928323707">"การโรมมิ่งข้อมูล"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"เชื่อมต่อบริการข้อมูลขณะโรมมิ่ง"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"เชื่อมต่อบริการข้อมูลขณะโรมมิ่ง"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"การเชื่อมต่อข้อมูลของคุณหายไปเนื่องจากคุณออกจากเครือข่ายที่บ้านโดยปิดการโรมมิ่งข้อมูลไว้"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"การเปิดโรมมิ่งข้อมูลอาจทำให้คุณเสียค่าใช้จ่ายมาก!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"ตัวเลือก GSM//UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"ตัวเลือก CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"การใช้ข้อมูล"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"ข้อมูลที่ใช้ในช่วงเวลาปัจจุบัน"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"ช่วงเวลาการใช้ข้อมูล"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"นโยบายอัตราการส่งข้อมูล"</string>
+    <string name="throttle_help" msgid="243651091785169900">"เรียนรู้เพิ่มเติม"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) จากช่วงสูงสุด <xliff:g id="USED_2">%3$s</xliff:g> "\n"ช่วงถัดไปจะเริ่มในอีก <xliff:g id="USED_3">%4$d</xliff:g> วัน (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) จากช่วงสูงสุด <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>เกินจำนวนสูงสุด"\n"อัตราการส่งข้อมูลถูกลดเหลือ<xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ของรอบผ่านไป "\n" ช่วงถัดไปจะเริ่มในอีก <xliff:g id="USED_1">%2$d</xliff:g> วัน (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"อัตราการส่งข้อมูลถูกลดเหลือ <xliff:g id="USED">%1$d</xliff:g> Kb/s เมื่อใช้ข้อมูลเกินขีดจำกัดแล้ว"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"ข้อมูลเพิ่มเติมเกี่ยวกับนโยบายการใช้ข้อมูลของเครือข่ายมือถือจากผู้ให้บริการของคุณ"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS แจ้งเครือข่ายที่ใช้งาน"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS แจ้งเครือข่ายที่ใช้งาน"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"เปิดการใช้งาน SMS แจ้งเครือข่ายที่ใช้งานแล้ว"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"ปิดการใช้งาน SMS แจ้งเครือข่ายที่ใช้งานไว้"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"การตั้งค่า SMS แจ้งเครือข่ายที่ใช้งาน"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"การกระจายข้อมูลฉุกเฉิน"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"เปิดการใช้งานการกระจายข้อมูลฉุกเฉินแล้ว"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"ปิดการใช้งานการกระจายข้อมูลฉุกเฉินไว้"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"การบริหาร"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"เปิดใช้งานการบริหารแล้ว"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"ปิดใช้งานการบริหาร"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"การดูแลรักษา"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"เปิดการใช้งานการบำรุงรักษาแล้ว"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"ปิดใช้งานการดูแลรักษา"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"ข่าวทั่วไป"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"ข่าวธุรกิจและการเงิน"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"ข่าวกีฬา"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"ข่าวบันเทิง"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"ท้องถิ่น"</string>
+    <string name="local_enable" msgid="6370463247609136359">"เปิดใช้งานข่าวท้องถิ่นแล้ว"</string>
+    <string name="local_disable" msgid="4405691986943795798">"ปิดใช้งานข่าวท้องถิ่นแล้ว"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"ภูมิภาค"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"เปิดใช้งานข่าวภูมิภาค"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"ปิดใช้งานข่าวภูมิภาค"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"ในประเทศ"</string>
+    <string name="national_enable" msgid="1172443648912246952">"เปิดใช้งานข่าวในประเทศแล้ว"</string>
+    <string name="national_disable" msgid="326018148178601166">"ปิดใช้งานข่าวสารในประเทศ"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"ต่างประเทศ"</string>
+    <string name="international_enable" msgid="5855356769925044927">"เปิดใช้งานข่าวสารต่างประเทศแล้ว"</string>
+    <string name="international_disable" msgid="2850648591041088931">"ข่าวต่างประเทศถูกปิดการใช้งาน"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"ภาษา"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"เลือกภาษาสำหรับข่าว"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"อังกฤษ"</item>
+    <item msgid="1151988412809572526">"ฝรั่งเศส"</item>
+    <item msgid="577840534704312665">"สเปน"</item>
+    <item msgid="8385712091143148180">"ญี่ปุ่น"</item>
+    <item msgid="1858401628368130638">"เกาหลี"</item>
+    <item msgid="1933212028684529632">"จีน"</item>
+    <item msgid="1908428006803639064">"ฮีบรู"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"ภาษา"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"พยากรณ์อากาศท้องถิ่น"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"การใช้งานพยากรณ์อากาศท้องถิ่น"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"ปิดใช้งานพยากรณ์อากาศท้องถิ่น"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"รายงานการจราจรในพื้นที่"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"เปิดการใช้งานรายงานการจราจรในพื้นที่"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"ปิดใช้งานรายงานการจราจรในพื้นที่"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"ตารางเที่ยวบินในสนามบินท้องถิ่น"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"เปิดใช้งานตารางเที่ยวบินในสนามบินท้องถิ่นแล้ว"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"ปิดใช้งานตารางเที่ยวบินในสนามบินท้องถิ่นแล้ว"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"ร้านอาหาร"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"เปิดใช้งานร้านอาหารแล้ว"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"ปิดใช้งานร้านอาหาร"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"ที่พัก"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"เปิดใช้งานที่พักแล้ว"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"ปิดใช้งานที่พักแล้ว"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"ไดเรกทอรีค้าปลีก"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"เปิดใช้งานไดเรกทอรีค้าปลีกแล้ว"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"ปิดใช้งานไดเรกทอรีค้าปลีก"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"โฆษณา"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"เปิดใช้งานโฆษณาแล้ว"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"ปิดใช้งานโฆษณา"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"ราคาหุ้น"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"เปิดใช้งานราคาหุ้นแล้ว"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"ปิดการใช้งานราคาหุ้น"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"โอกาสการจ้างงาน"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"เปิดใช้งานโอกาสการจ้างงานแล้ว"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"ปิดใช้งานโอกาสการจ้างงาน"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"การแพทย์ สุขภาพ และโรงพยาบาล"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"เปิดใช้งานการแพทย์ สุขภาพ และโรงพยาบาลแล้ว"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"การแพทย์ สุขภาพ และโรงพยาบาลถูกปิดใช้งาน"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"ข่าวเทคโนโลยี"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"เปิดใช้งานข่าวเทคโนโลยีแล้ว"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"ปิดใช้งานข่าวเทคโนโลยี"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"หลายหมวดหมู่"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"เปิดใช้งานหลายหมวดหมู่แล้ว"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"ปิดใช้งานหลายหมวดหมู่"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"ใช้เฉพาะเครือข่าย 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"ประหยัดแบตเตอรี่"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"การเลือกระบบ"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"เปลี่ยนโหมดการเชื่อมต่อกับเครือข่าย CDMA อื่น"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"การเลือกระบบ"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"โทรกลับบ้านเท่านั้น"</item>
+    <item msgid="1205664026446156265">"อัตโนมัติ"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"การสมัครรับข้อมูล CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"เปลี่ยนระหว่าง RUIM/SIM และ NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"การสมัครรับข้อมูล"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"เปิดใช้งานอุปกรณ์"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"ตั้งค่าบริการข้อมูล"</string>
+    <string name="fdn" msgid="7878832555095183202">"การจำกัดหมายเลขโทรออก"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"รายการ FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"การเปิดใช้งาน FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"เปิดใช้งานการจำกัดหมายเลขโทรออกไว้"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"ปิดใช้งานการจำกัดหมายเลขโทรออกไว้"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"เปิดใช้งาน FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"ปิดใช้งาน FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"เปลี่ยน PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"ปิดใช้งาน FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"เปิดใช้งาน FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"จัดการการกำจัดหมายเลขโทรออก"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"เปลี่ยน PIN สำหรับการเข้าถึง FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"จัดการรายการหมายเลขโทรศัพท์"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"ความเป็นส่วนตัวในการโทรด้วยเสียง"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"เปิดใช้งานโหมดเพิ่มความเป็นส่วนตัว"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"โหมด TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"ตั้งค่าโหมด TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"ลองซ้ำอัตโนมัติ"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"เปิดใช้งานโหมดลองซ้ำอัตโนมัติ"</string>
+    <string name="menu_add" msgid="1882023737425114762">"เพิ่มที่อยู่ติดต่อ"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"แก้ไขที่อยู่ติดต่อ"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"ลบที่อยู่ติดต่อ"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"พิมพ์ PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"ชื่อ"</string>
+    <string name="number" msgid="7905950798349903858">"หมายเลข"</string>
+    <string name="save" msgid="4094274636321939086">"บันทึก"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"เพิ่มการจำกัดหมายเลขโทรออก"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"กำลังเพิ่มการกำจัดหมายเลขโทรออก…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"เพิ่มการจำกัดหมายเลขโทรออกแล้ว"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"แก้ไขการจำกัดหมายเลขโทรออก"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"กำลังอัปเดตการจำกัดหมายเลขโทรออก…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"อัปเดตการจำกัดหมายเลขโทรออกแล้ว"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"ลบการจำกัดหมายเลขโทรออก"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"กำลังลบการจำกัดหมายเลขโทรออก…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"ลบการจำกัดหมายเลขโทรออกแล้ว"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN ไม่อัปเดตเพราะคุณป้อน PIN ไม่ถูกต้อง"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN ไม่อัปเดตเพราะหมายเลขจะมีจำนวนเกิน 20 หลักไม่ได้"</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"ไม่ได้อัปเดต FDN เพราะ PIN2 ไม่ถูกต้องหรือหมายเลขโทรศัพท์ถูกปฏิเสธ"</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"กำลังอ่านจากซิมการ์ด…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"ไม่มีที่อยู่ติดต่อบนซิมการ์ดของคุณ"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"เลือกสมุดโทรศัพท์ที่จะนำเข้า"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"ในการนำเข้าผู้ติดต่อจากซิมการ์ด ให้ปิดโหมดบนเครื่องบินก่อน"</string>
+    <string name="enable_pin" msgid="5422767284133234860">"เปิด/ปิดใช้งาน PIN ของซิม"</string>
+    <string name="change_pin" msgid="9174186126330785343">"เปลี่ยน PIN ของซิม"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN ของซิม:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"PIN เก่า"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"PIN ใหม่"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"ยืนยัน PIN ใหม่"</string>
+    <string name="badPin" msgid="8955102849303984935">"PIN เก่าที่คุณพิมพ์ไม่ถูกต้อง โปรดลองอีกครั้ง"</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN ที่คุณพิมพ์ไม่ตรงกัน โปรดลองอีกครั้ง"</string>
+    <string name="invalidPin" msgid="5981171102258684792">"พิมพ์ PIN ซึ่งเป็นเลข 4-8 หลัก"</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"ปิดใช้งานรหัส PIN ของซิม"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"เปิดใช้งาน PIN ของซิม"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"โปรดรอสักครู่..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"เปิดใช้งาน PIN ของซิมแล้ว"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"ปิดใช้งาน PIN ของซิมแล้ว"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"PIN ที่คุณพิมพ์ไม่ถูกต้อง"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"เปลี่ยน PIN ของซิมสำเร็จแล้ว"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"รหัสผ่านไม่ถูกต้อง ซิมถูกล็อก! ขอ PUK2"</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"PIN2 เก่า"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"PIN2 ใหม่"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"ยืนยัน PIN2 ใหม่"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"PUK2 ที่คุณพิมพ์ไม่ถูกต้อง โปรดลองอีกครั้ง"</string>
+    <string name="badPin2" msgid="1041576234483629991">"PIN2 เก่าที่คุณพิมพ์ไม่ถูกต้อง โปรดลองอีกครั้ง"</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2 ที่คุณพิมพ์ไม่ตรงกัน โปรดลองอีกครั้ง"</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"พิมพ์ PIN2 ซึ่งเป็นเลข 4-8 หลัก"</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"พิมพ์ PUK2 ซึ่งเป็นเลข 8 หลัก"</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"เปลี่ยน PIN2 เรียบร้อยแล้ว"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"พิมพ์รหัส PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"รหัสผ่านไม่ถูกต้อง เปลี่ยน PIN2 แล้วลองอีกครั้ง"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"รหัสผ่านไม่ถูกต้อง ซิมถูกล็อก ขอ PUK2"</string>
+    <string name="doneButton" msgid="2859593360997984240">"เสร็จสิ้น"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"การประชุมสาย <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"หมายเลขข้อความเสียง"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"กำลังโทรออก"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"กำลังทดลองซ้ำ"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"การประชุมสาย"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"สายเข้า"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"วางสายแล้ว"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"พักสาย"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"กำลังวางสาย"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"กำลังใช้สาย"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"หมายเลขของฉันคือ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"กำลังโทรออก"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> สายที่ไม่ได้รับ"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"สายที่ไม่ได้รับจาก <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"โทรต่อเนื่อง"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"พักสาย"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"สายเรียกเข้า"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"ข้อความเสียงใหม่"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"ข้อความเสียงใหม่ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"หมุนหมายเลข <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ไม่ทราบหมายเลขข้อความเสียง"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"ไม่มีบริการ"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"เครือข่ายที่เลือกไว้ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ใช้งานไม่ได้"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"วางสาย"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"โทรกลับ"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"ข้อความ"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"หากต้องการโทรออก ให้ปิดโหมดใช้งานบนเครื่องบินก่อน"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"ยังไม่ได้ลงทะเบียนบนเครือข่าย"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"เครือข่ายมือถือใช้งานไม่ได้"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"ไม่ได้โทรออก ไม่ได้ป้อนหมายเลขที่ถูกต้อง"</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"ไม่ได้โทรออก"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"กำลังเริ่มต้นลำดับ MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"บริการไม่ได้รับการสนับสนุน"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"สลับสายไม่ได้"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"แยกสายไม่ได้"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"โอนสายไม่ได้"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ประชุมทางโทรศัพท์ไม่ได้"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"ปฏิเสธสายไม่ได้"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"ปล่อยสายไม่ได้"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"การโทรทางอินเทอร์เน็ต"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"หมายเลขฉุกเฉิน"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"กำลังเปิดวิทยุ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"นอกพื้นที่ให้บริการ กำลังลองซ้ำ..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"ไม่ได้โทรออก <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ไม่ใช่หมายเลขฉุกเฉิน!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"ไม่ได้โทรออก หมุนหมายเลขฉุกเฉิน!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"ใช้แป้นพิมพ์กดหมายเลขโทรศัพท์"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"พักสาย"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"สิ้นสุด"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"แป้นหมายเลข"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"ปิดเสียง"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"เพิ่มการโทร"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"รวมสาย"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"สลับ"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"จัดการการโทร"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"จัดการการประชุม"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"เสียง"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"แฮงเอาท์วิดีโอ"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"นำเข้า"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"นำเข้าทั้งหมด"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"กำลังนำเข้าสมุดโทรศัพท์ในซิม"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"นำเข้าจากสมุดโทรศัพท์"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"เครื่องช่วยฟัง"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"เปิดการช่วยฟัง"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"ปิด TTY"</item>
+    <item msgid="3971695875449640648">"TTY เต็ม"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"เสียงสัญญาณ DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"ตั้งค่าความยาวเสียงสัญญาณ DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"ปกติ"</item>
+    <item msgid="2883365539347850535">"ยาว"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"ข้อความจากเครือข่าย"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"เปิดการใช้งานโทรศัพท์ของคุณ"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"ต้องทำการโทรพิเศษเพื่อเปิดใช้บริการโทรศัพท์ของคุณ "\n\n"หลังจากกด “เปิดการใช้งาน” ให้ฟังคำแนะนำเพื่อเปิดใช้บริการโทรศัพท์ของคุณ"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"ข้ามการเปิดใช้งานหรือไม่"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"หากคุณข้ามการเปิดใช้งาน คุณจะโทรออกหรือเชื่อมต่อเครือข่ายข้อมูลมือถือไม่ได้ (แม้จะเชื่อมต่อเครือข่าย WiFi ได้ก็ตาม) และระบบจะขอให้คุณเปิดใช้งานทุกครั้งที่คุณเปิดเครื่องจนกว่าคุณจะเปิดใช้งานโทรศัพท์"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"ข้าม"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"เปิดการใช้งาน"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"เปิดใช้งานโทรศัพท์แล้ว"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"พบปัญหาในการเปิดใช้งาน"</string>
+    <string name="ota_listen" msgid="162923839877584937">"ทำตามคำแนะนำที่ได้ยินจนกว่าคุณจะได้ยินว่าการเปิดใช้งานเสร็จสมบูรณ์แล้ว"</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"ลำโพง"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"รอสักครู่ขณะที่กำลังตั้งโปรแกรมโทรศัพท์ของคุณ"</string>
+    <string name="ota_failure" msgid="4311299546379674378">"ตั้งโปรแกรมไม่สำเร็จ"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"เปิดการใช้งานโทรศัพท์ของคุณแล้ว คุณอาจต้องรอไม่เกิน 15 นาทีเพื่อให้บริการเริ่มทำงาน"</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"โทรศัพท์ของคุณไม่เปิดใช้งาน"\n"คุณอาจต้องหาพื้นที่ที่มีสัญญาณดีกว่านี้ (ใกล้หน้าต่างหรือออกไปข้างนอก)"\n\n"ลองใหม่อีกครั้งหรือติดต่อศูนย์บริการลูกค้าเพื่อรับฟังตัวเลือกเพิ่มเติม"</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"SPC ส่วนเกินล้มเหลว"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"ย้อนกลับ"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"ลองใหม่อีกครั้ง"</string>
+    <string name="ota_next" msgid="3904945374358235910">"ถัดไป"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"เข้าสู่โหมดติดต่อกลับฉุกเฉิน"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"โหมดติดต่อกลับฉุกเฉิน"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"ปิดใช้งานการเชื่อมต่อเครือข่าย"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"ไม่มีการเชื่อมต่อข้อมูลนาน <xliff:g id="COUNT">%s</xliff:g> นาที"</item>
+    <item quantity="other" msgid="3122217344579273583">"ไม่มีการเชื่อมต่อข้อมูลนาน <xliff:g id="COUNT">%s</xliff:g> นาที"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT">%s</xliff:g> นาที ในระหว่างที่อยู่ในโหมดนี้ จะไม่สามารถใช้แอปพลิเคชันที่ใช้การเชื่อมต่อข้อมูลได้ คุณต้องการจะออกเดี๋ยวนี้หรือไม่"</item>
+    <item quantity="other" msgid="8617116564023933114">"โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT">%s</xliff:g> นาที ในระหว่างที่อยู่ในโหมดนี้ จะไม่สามารถใช้แอปพลิเคชันที่ใช้การเชื่อมต่อข้อมูลได้ คุณต้องการจะออกเดี๋ยวนี้หรือไม่"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"การทำงานที่เลือกจะไม่สามารถใช้ได้เมื่ออยู่ในโหมดติดต่อกลับฉุกเฉิน โทรศัพท์จะอยู่ในโหมดนี้เป็นเวลา <xliff:g id="COUNT">%s</xliff:g> นาที คุณต้องการจะออกเดี๋ยวนี้หรือไม่"</item>
+    <item quantity="other" msgid="6115622137771382224">"การทำงานที่เลือกจะไม่สามารถใช้ได้เมื่ออยู่ในโหมดติดต่อกลับฉุกเฉิน โทรศัพท์จะอยู่ในโหมดนี้เป็นเวลา <xliff:g id="COUNT">%s</xliff:g> นาที คุณต้องการจะออกเดี๋ยวนี้หรือไม่"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"การทำงานที่เลือกใช้ไม่ได้ในระหว่างโทรฉุกเฉิน"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"กำลังออกจากโหมดติดต่อกลับฉุกเฉิน"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"ใช่"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"ไม่"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"เลิกแสดง"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"บริการ"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"การตั้งค่า"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"การตั้งค่าการโทรอื่นๆ"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"ภาพของรายชื่อติดต่อ"</string>
+    <string name="goPrivate" msgid="865837794424530980">"เข้าสู่โหมดส่วนตัว"</string>
+    <string name="selectContact" msgid="781975788478987237">"เลือกรายชื่อติดต่อ"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"การตั้งค่าการโทรทางอินเทอร์เน็ต"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"บัญชีการโทรทางอินเทอร์เน็ต (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"บัญชี"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"รับสายเรียกเข้า"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"ลดอายุการใช้งานแบตเตอรี่"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"ใช้การโทรทางอินเทอร์เน็ต"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"ใช้การโทรทางอินเทอร์เน็ต (WiFi เท่านั้น)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"สำหรับทุกสายเมื่อเครือข่ายข้อมูลใช้งานได้"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"สำหรับการโทรทางอินเทอร์เน็ตเท่านั้น"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"ถามทุกครั้งที่โทรออก"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"สำหรับการโทรออกทั้งหมด"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"โทรออก"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"ใช้บัญชีการโทรทางอินเทอร์เน็ต:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"ใช้ทุกครั้งที่โทรออกทางอินเทอร์เน็ต"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"คุณสามารถเปลี่ยนบัญชีการโทรทางอินเทอร์เน็ตที่จะใช้เป็นค่าเริ่มต้นได้จากหน้าจอโทรศัพท์ &gt; ตั้งค่า &gt; การตั้งค่าการโทรทางอินเทอร์เน็ต &gt; บัญชี"</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"โทรออกด้วยโทรศัพท์มือถือ"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"การโทรทางอินเทอร์เน็ต"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"ไม่มีบัญชีการโทรทางอินเทอร์เน็ต"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"ไม่มีบัญชีการโทรทางอินเทอร์เน็ตบนโทรศัพท์นี้ คุณต้องการเพิ่มบัญชีตอนนี้หรือไม่"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"เพิ่ม"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"เพิ่มบัญชี"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"นำบัญชีออก"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"บัญชี SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"กำลังบันทึกบัญชี..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"กำลังนำบัญชีออก..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"บันทึก"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"ยกเลิก"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"ปิดโปรไฟล์"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"ตกลง"</string>
+    <string name="close_profile" msgid="6886968271423155284">"ปิด"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"บัญชีหลัก <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"กำลังตรวจสอบสถานะ..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"กำลังลงทะเบียน..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"กำลังพยายามอยู่..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"ไม่รับสาย"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"การลงทะเบียนบัญชีหยุดทำงานเนื่องจากไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"การลงทะเบียนบัญชีหยุดทำงานเนื่องจากไม่มีการเชื่อมต่อ WiFi"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"การลงทะเบียนบัญชีไม่สำเร็จ"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"รับสาย"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"การลงทะเบียนบัญชีไม่สำเร็จ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>) จะลองใหม่ในภายหลัง"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"การลงทะเบียนบัญชีไม่สำเร็จ: ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"การลงทะเบียนบัญชีไม่สำเร็จ: ตรวจสอบชื่อเซิร์ฟเวอร์"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"ขณะนี้บัญชีนี้ถูกใช้งานอยู่โดยแอปพลิเคชัน <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"รายละเอียดบัญชี SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"รายละเอียดบัญชี SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"เซิร์ฟเวอร์"</string>
+    <string name="username_title" msgid="2479375923477682328">"ชื่อผู้ใช้"</string>
+    <string name="password_title" msgid="3323555249068171531">"รหัสผ่าน"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"ชื่อที่แสดง"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"ที่อยู่พร็อกซีขาออก"</string>
+    <string name="port_title" msgid="5952939408078626657">"หมายเลขพอร์ต"</string>
+    <string name="transport_title" msgid="8253139511847746640">"ประเภทการส่งผ่านข้อมูล"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"ส่งแบบ keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"ตั้งค่าเป็นบัญชีหลัก"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"ใช้สำหรับการโทรออก"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"การตั้งค่าที่เป็นตัวเลือก"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"ชื่อผู้ใช้สำหรับตรวจสอบสิทธิ์"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"ชื่อผู้ใช้ที่ใช้ในการตรวจสอบสิทธิ์"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;เหมือนกับชื่อผู้ใช้&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;ตัวเลือก&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ แตะเพื่อแสดงทั้งหมด"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ แตะเพื่อซ่อนทั้งหมด"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"ต้องระบุ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> และไม่สามารถปล่อยว่างได้"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"หมายเลขพอร์ตควรอยู่ระหว่าง 1000 ถึง 65534"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"ไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"ไม่มีการเชื่อมต่อ WiFi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"หากต้องการโทรออกทางอินเทอร์เน็ต ให้ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณก่อน"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"คุณจำเป็นต้องเชื่อมต่อกับเครือข่าย WiFi สำหรับการโทรทางอินเทอร์เน็ต (ใช้การตั้งค่าระบบไร้สายและเครือข่าย)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"ไม่สนับสนุนการโทรทางอินเทอร์เน็ต"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"อัตโนมัติ"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"ส่งเสมอ"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"ไม่สนับสนุนการโทรออกด้วยเสียง"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ตอนนี้คุยไม่ได้ มีอะไรหรือเปล่า"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"เดี๋ยวจะโทรกลับทันที"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"เดี๋ยวจะโทรหาทีหลัง"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ตอนนี้คุยไม่ได้ โทรมาใหม่ได้ไหม"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"เขียนคำตอบของคุณเอง..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"คำตอบด่วน"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"แก้ไขคำตอบด่วน"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"คำตอบด่วน"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"รีเซ็ตแอปพลิเคชันเริ่มต้น"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"ส่งข้อความไปยัง <xliff:g id="PHONE_NUMBER">%s</xliff:g> แล้ว"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"หนึ่ง"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"สอง"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"สาม"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"สี่"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"ห้า"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"หก"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"เจ็ด"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"แปด"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"เก้า"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"ดาว"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"ศูนย์"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"ปอนด์"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"หมุนหมายเลข"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"ถอยหลัง"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"เปิดใช้งานลำโพงแล้ว"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"ปิดเสียงการโทร"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"คำตอบ"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"ส่ง SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"ปฏิเสธ"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"สั่น"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"สั่น"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"เสียง"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"เสียงเริ่มต้น (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"เสียงเรียกเข้าโทรศัพท์"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"สั่นเมื่อมีสายเข้า"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"เสียงแตะแป้นหมายเลข"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"ช่วยเติมอัตโนมัติในแป้นหมายเลข"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"เสียงเรียกเข้าและสั่น"</string>
+</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
new file mode 100644
index 0000000..c82309b
--- /dev/null
+++ b/res/values-tl/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Data sa Mobile"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telepono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Pang-emergency na Dialer"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telepono"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Listahan ng FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Di-kilala"</string>
+    <string name="private_num" msgid="6713286113000232309">"Pribadong numero"</string>
+    <string name="payphone" msgid="1931775086311769314">"Pay phone"</string>
+    <string name="onHold" msgid="9035493194749959955">"Naka-hold"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Abala ang linya"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Abala ang network"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Walang pagtugon, na-time out"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Hindi maabot ang server"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Hindi maabot ang numero"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Maling username o password"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Tumawag mula sa labas ng metwork"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Error sa server. Pakisubukang muli sa ibang pagkakataon."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Walang signal"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Lumagpas na sa limitasyon ng ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Naka-off ang radyo"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Walang SIM, o error sa SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Lugar na Hindi Nagseserbisyo"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Pinaghihigpitan ng FDN ang mga papalabas na tawag."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Hindi ka makakagawa ng mga papalabas na tawag habang naka-on ang pag-bar ng tawag."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Pinaghihigpitan ang lahat ng mga tawag ng kontrol sa access."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Pinaghihigpitan ang mga pang-emergency na tawag ng kontrol sa access."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Pinaghihigpitan ang mga normal na tawag ng kontrol sa access."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Hindi wastong numero"</string>
+    <string name="confCall" msgid="1904840547188336828">"Conference na tawag"</string>
+    <string name="call_lost" msgid="317670617901479594">"Nawala ang tawag."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Sinimulan ang MMI code"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Tumatakbo ang USSD code…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Kinansela ang MMI code"</string>
+    <string name="cancel" msgid="5044513931633602634">"Kanselahin"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Dapat na nasa pagitan ng <xliff:g id="MIN_LEN">%d</xliff:g> at <xliff:g id="MAX_LEN">%d</xliff:g> (na) character ang mensaheng USSD. Pakisubukang muli."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Pamahalaan ang conference call"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handset earpiece"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Wired na headset"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Ipadala ang mga sumusunod na tone?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Nagpapadala ng mga tono"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Ipadala"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Oo"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Hindi"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Palitan ang wild character ng"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nawawala ang numero ng voicemail"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Walang nakaimbak na numero ng voicemail sa SIM card."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Magdagdag ng numero"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Naalis sa pagkaka-block ang iyong SIM card. Nag-a-unlock ang iyong telepono…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN na pang-unlock ng SIM network"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"I-unlock"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Balewalain"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Humihiling ng pag-unlock sa network…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Hindi matagumpay ang kahilingan na i-unlock ang network."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Matagumpay ang pag-unlock ng network."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Mga setting ng tawag ng GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Mga setting ng CDMA na tawag"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Mga Pangalan ng Lugar ng Access"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Mga Setting ng Network"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mga network operator"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Mga setting ng tawag"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Mga karagdagang setting"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Mga karagdagang setting ng tawag na GSM lang"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Mga karagdagang setting ng pagtawag sa CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Mga karagdagang setting ng tawag na CDMA lang"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Mga setting ng serbisyo ng network"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Caller ID"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Nilo-load ang mga setting…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nakatago ang numero sa mga papalabas na tawag"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Ipinapakitang numero sa mga papalabas na tawag"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Gamitin ang mga default na setting ng operator upang ipakita ang aking numero sa mga papalabas na tawag"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Call waiting"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Habang nasa isang tawag, i-notify ako ng mga papasok na tawag"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Habang nasa isang tawag, i-notify ako ng mga papasok na tawag"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Mga setting ng pagpapasa ng tawag"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Pagpapasa ng Tawag"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Palaging ipasa"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Palaging gamitin ang numerong ito"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Ipinapasa ang lahat ng mga tawag"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Pinapasa ang lahat ng mga tawag sa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Hindi available ang numero"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Hindi pinagana"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Ipasa kapag abala"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Numero kapag abala"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Pinapasa sa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Hindi pinagana"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Hindi sinusuportahan ng iyong operator ang hindi pagpapagana sa pagpasa ng tawag kapag abala ang iyong telepono."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Ipasa kapag hindi nasagot"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Numero kapag hindi nasagot"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Pinapasa sa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Hindi pinagana"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Hindi sinusuportahan ng iyong operator ang hindi pagpapagana sa pagpasa ng tawag kapag hindi sumasagot ang iyong telepono."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Ipasa kapag hindi maabot"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Numero kapag hindi maabot"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Pinapasa sa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Hindi pinagana"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Hindi sinusuportahan ng iyong carrier ang hindi pagpapagana ng pagpasa ng tawag kapag hindi maabot ang iyong telepono."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Mga setting ng tawag"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Error sa mga setting ng tawag"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Binabasa ang mga setting…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ina-update ang mga setting…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Ibinabalik ang mga setting…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Hindi inaasahang tugon mula sa network."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Error sa Network o SIM card."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Naka-on ang setting ng mga Fixed Dialing Number ng iyong app ng Telepono. Bilang resulta, hindi gumagana ang ilang tampok na nauugnay sa pagtawag."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Mangyaring i-on ang radyo bago tingnan ang mga setting na ito."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Paganahin"</string>
+    <string name="disable" msgid="7274240979164762320">"Huwag Paganahin"</string>
+    <string name="change_num" msgid="239476305819844391">"I-update"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Default ng network"</item>
+    <item msgid="7876195870037833661">"Itago ang numero"</item>
+    <item msgid="1108394741608734023">"Ipakita ang numero"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Binago ang numero ng voicemail."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Hindi mabago ang numero ng voicemail."\n"Makipag-ugnay sa iyong carrier kung magpapatuloy ang ganitong problema."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Hindi mabago ang pagpapasahang numero."\n"Makipag-ugnay sa iyong carrier kung magpapatuloy ang ganitong problema."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Hindi mabawi at ma-save ang mga setting ng kasalukuyang numero sa pagpapasa."\n"Lumipat sa bagong provider?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Walang ginawang mga pagbabago."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Piliin ang serbisyo ng voicemail"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Aking carrier"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mga setting ng mobile network"</string>
+    <string name="label_available" msgid="1181658289009300430">"Mga available na network"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Naghahanap…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Walang nakitang mga network."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Maghanap ng mga network"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Error habang naghahanap ng mga network."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Nirerehistro sa <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Hindi pinapayagan ng iyong SIM card ang koneksyon sa network na ito."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Hindi makakonekta sa network na ito sa ngayon. Subukang muli sa ibang pagkakataon."</string>
+    <string name="registration_done" msgid="495135664535876612">"Nakarehistro sa network."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Pumili ng network operator"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Hanapin ang lahat ng mga available na network"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Awtomatikong pumili"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Awtomatikong pumili ng ninanais na network"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Awtomatikong pagpaparehistro..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Network Mode"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Baguhin ang network operating mode"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Ninanais na network mode"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mas gustong mode ng network: WCDMA ang mas gusto"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mas gustong mode ng network: GSM lamang"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Mas gustong mode ng network: WCDMA lamang"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Mas gustong mode ng network: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Mas gustong mode ng network: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Mas gustong mode ng network: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Mas gustong mode ng network: CDMA lamang"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Mas gustong mode ng network: EvDo lamang"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Gustong mode ng network: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Gustong mode ng network: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Gustong mode ng network: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Gustong mode ng network: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Gustong mode ng network: Pangkalahatan"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Gustong mode ng network: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Pangkalahatan"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"EvDo lang"</item>
+    <item msgid="1508557726283094448">"CDMA na walang EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo auto"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA auto"</item>
+    <item msgid="7913148405605373434">"WCDMA lang"</item>
+    <item msgid="1524224863879435516">"GSM lang"</item>
+    <item msgid="3817924849415716259">"Ninanais ang GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Pinagana ang data"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Paganahin ang access sa data sa Mobile network"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roaming ng data"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Kumonekta sa mga serbisyo ng data kapag nagro-roam"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Kumonekta sa mga serbisyo ng data kapag nagro-roam"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Nawalan ka ng pagkonekta sa data dahil iniwan mo ang iyong home network na naka-off ang roaming ng data."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Payagan ang roaming ng data? Maaari kang makakuha ng malaking pagsingil sa roaming!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Mga pagpipilian sa GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Mga pagpipiliian sa CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Paggamit ng data"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Ginamit na data sa kasalukuyang panahon"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Panahon ng paggamit ng data"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Patakaran ng rate ng data"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Matuto nang higit pa"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ng <xliff:g id="USED_2">%3$s</xliff:g> maximum na tagal ng panahon"\n"Magsisimula ang susunod na tagal ng panahon sa loob ng <xliff:g id="USED_3">%4$d</xliff:g> (na) araw (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ng <xliff:g id="USED_2">%3$s</xliff:g> maximum na period"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Ang <xliff:g id="USED_0">%1$s</xliff:g> na maximum ay lumagpas sa"\n"Binabaan ang rate ng data sa <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ng cycle ay lumagpas sa"\n"Magsisimula ang susunod na tagal ng panahon sa loob ng <xliff:g id="USED_1">%2$d</xliff:g> (na) araw (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Ibinaba ang rate ng data sa <xliff:g id="USED">%1$d</xliff:g> Kb/s kung nalagpasan ang limitasyon sa paggamit ng data"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Higit pang impormasyon tungkol sa patakaran sa paggamit ng data sa mobile network ng iyong carrier"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Pinagana ang Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Hindi pinagana ang Cell Broadcast SMS"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Mga setting ng Cell Broadcast SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Pang-emergency na Broadcast"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Pinagana ang Pang-emergency na Broadcast"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Hindi pinagana ang Pang-emergency na Broadcast"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administratibo"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Pinagana ang pang-administratibo"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Hindi pinagana ang Pang-administratibo"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Maintenance"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Pinagana ang maintenance"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Hindi pinagana ang maintenance"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Pangkalahatang Balita"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Balitang Negosyo at Pampinansya"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Mga Balitang Pampalakasan"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Balitang Entertainment"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokal"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Pinagana ang lokal na balita"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Hindi pinagana ang lokal na balita"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Pangrehiyon"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Pinagana ang pangrehiyong balita"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Hindi pinagana ang pangrehiyong balita"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Pambansa"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Pinagana ang pambansang balita"</string>
+    <string name="national_disable" msgid="326018148178601166">"Hindi pinagana ang pambansang balita"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Pinagana ang mga international na balita"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Hindi pinagana ang international na balita"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Wika"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Piliin ang wika ng balita"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Ingles"</item>
+    <item msgid="1151988412809572526">"French"</item>
+    <item msgid="577840534704312665">"Espanyol"</item>
+    <item msgid="8385712091143148180">"Japanese"</item>
+    <item msgid="1858401628368130638">"Korean"</item>
+    <item msgid="1933212028684529632">"Chinese"</item>
+    <item msgid="1908428006803639064">"Hebrew"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Mga Wika"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokal na Panahon"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Pinagana ang Lokal na Panahon"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Hindi pinagana ang Lokal na Panahon"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Mga Ulat ng Trapiko sa Lugar"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Pinagana ang Mga Ulat ng Trapiko sa Lugar"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Hindi pinagana ang Mga Ulat ng Trapiko sa Lugar"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Mga Iskedyul ng Flight ng Lokal na Airport"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Pinagana ang Mga Iskedyul ng Flight ng Lokal na Airport"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Hindi pinagana ang Mga Iskedyul ng Flight ng Lokal na Airport"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Mga Restaurant"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Pinagana ang mga restaurant"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Hindi pinagana ang mga restaurant"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Mga Lodging"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Pinagana ang mga lodging"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Hindi pinagana ang mga lodging"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Retail na Direktoryo"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Pinagana ang Retail na Direktoryo"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Hindi pinagana ang Retail na Direktoryo"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Mga Advertisement"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Pinagana ang mga advertisement"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Hindi pinagana ang mga advertisement"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Mga Quote ng Stock"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Pinagana ang Mga Quote ng Stock"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Hindi pinagana ang Mga Quote ng Stock"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Mga Pagkakataon sa Pagtatrabaho"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Pinagana ang Mga Pagkakataon sa Pagtatrabaho"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Hindi pinagana ang Mga Pagkakataon sa Pagtatrabaho"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medikal, Kalusugan at Ospital"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Pinagana ang Medikal, Kalusugan at Ospital"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Hindi pinagana ang Medikal, Kalusugan at Ospital"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Balita sa Teknolohiya"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Pinagana ang Balita sa Teknolohiya"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Hindi pinagana ang Balita sa Teknolohiya"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-category"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Pinagana ang multi-category"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Hindi pinagana ang multi-category"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Gumamit lang ng mga 2G network"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Nakakatipid ng baterya"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Pagpili ng system"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Baguhin ang mode ng pag-roam ng CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Pagpili ng system"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Home lang"</item>
+    <item msgid="1205664026446156265">"Awtomatiko"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Subscription ng CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Palitan sa pagitan ng RUIM/SIM at NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscription"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"I-activate ang device"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"I-set up ang serbisyo ng data"</string>
+    <string name="fdn" msgid="7878832555095183202">"Mga Fixed Dialing Number"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Listahan ng FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Pag-activate ng FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Pinagana ang Mga Fixed Dialing Number"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Hindi pinagana ang Mga Fixed Dialing Number"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Paganahin ang FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Huwag paganahin ang FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Baguhin ang PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Huwag paganahin ang FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Paganahin ang FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Pamahalaan ang Mga Fixed Dialing Number"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Palitan ang PIN para sa access sa FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Pamahalaan ang listahan ng numero ng telepono"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privacy ng Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Paganahin ang pinahusay na privacy mode"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY mode"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Itakda ang TTY mode"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Awtomatikong Muling Pagsubok"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Paganahin ang mode ng Awtomatikong muling pagsubok"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Magdagdag ng contact"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"I-edit ang contact"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Tanggalin ang contact"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"I-type ang PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Pangalan"</string>
+    <string name="number" msgid="7905950798349903858">"Numero"</string>
+    <string name="save" msgid="4094274636321939086">"I-save"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Magdagdag ng fixed dialing number"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Nagdaragdag ng fixed dialing number…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Idinagdag ang fixed dialing number."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"I-edit ang fixed dialing number"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ina-update ang fixed dialing number…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Na-update ang Fixed dialing number."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Tanggalin ang fixed dialing number"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Tinatanggal ang fixed dialing number…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Tinanggal ang fixed dialing number."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Hindi na-update ang FDN dahil maling PIN ang iyong na-type."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Hindi pa na-update ang FDN dahil hindi maaaring humigit sa 20 digit ang numero."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Hindi na-update ang FDN. Hindi wasto ang PIN2, o tinanggihan ang numero ng telepono."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Nagbabasa mula sa SIM card…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Walang mga contact sa iyong SIM card."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Piliin ang mga contact upang i-import"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Upang mag-import ng mga contact mula sa SIM card, i-turn off muna ang mode ng Airplane."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Paganahin/huwag paganahin ang PIN ng SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Baguhin ang PIN ng SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN ng SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Lumang PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Bagong PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Kumpirmahin ang bagong PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Mali ang na-type mong lumang PIN. Subukang muli."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Hindi tumugma ang na-type mong mga PIN. Subukang muli."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Mag-type ng PIN na 4 hanggang 8 numero."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Huwag paganahin ang PIN ng SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Paganahin ang PIN ng SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Pakihintay…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Pinagana ang PIN ng SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Hindi pinagana ang PIN ng SIM."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Mali ang na-type mong PIN."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Matagumpay na nabago ang PIN ng SIM."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Mali ang password, na-lock ang SIM! hinihiling ang PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Lumang PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Bagong PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Kumpirmahin ang bagong PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Mali ang na-type mong PUK2. Subukang muli."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Mali ang na-type mong lumang PIN2. Pakisubukang muli."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Hindi tumugma ang na-type mong mga PIN2. Subukang muli."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Mag-type ng PIN2 na 4 hanggang 8 numero."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Mag-type ng PUK2 na 8 numero."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Matagumpay na napalitan ang PIN2."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"I-type ang PUK2 code"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Mali ang password. Pakibago ang PIN2 at subukang muli."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Mali ang password, na-lock ang SIM. Hinihiling ang PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Tapos na"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Conference na tawag <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Numero ng voicemail"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Dina-dial"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Sinusubukang muli"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Conference na tawag"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Papasok na tawag"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Winakasan ang Tawag"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Naka-hold"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Binababa"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Nasa tawag"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Ang aking numero ay <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Dina-dial"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Hindi nasagot na tawag"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Mga hindi nasagot na tawag"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (na) hindi nasagot na tawag"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Hindi nasagot na tawag mula kay <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Kasalukuyang tawag"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Naka-hold"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Papasok na tawag"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Bagong voicemail"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Bagong voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"I-dial ang <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Hindi kilala ang numero ng voicemail"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Walang serbisyo"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Hindi available ang mga piniling network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>)"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Ibaba"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Tawagan"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Padalhan ng mensahe"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Upang tumawag, paki-off ang Airplane mode."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Hindi nakarehistro sa network."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Hindi available ang mobile network."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Hindi naipadala ang tawag, walang ipinasok na wastong numero."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Hindi naipadala ang tawag."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Sinisimulan ang pagkakasunud-sunod ng MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Hindi suportadong serbisyo."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Hindi nagawang maglipat ng mga tawag."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Hindi nagawang ihiwalay ang tawag."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Hindi nagawang ilipat ang tawag."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hindi nagawang i-conference ang mga tawag."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Hindi nagawang tanggihan ang tawag."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Hindi nagawang mapalabas ang (mga) tawag."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Tawag sa internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency na tawag"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ino-on ang radyo…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Lugar na hindi nagseserbisyo, sinusubukang muli…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Hindi naipadala ang tawag. hindi pang-emergency na numero ang <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Hindi naipadala ang tawag. Mag-dial ng pang-emergency na numero!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Gamitin ang keyboard upang mag-dial"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"I-hold"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Wakasan"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Dialpad"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"I-mute"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Magdagdag ng tawag"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Pagsamahin ang mga tawag"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Pagpalitin"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Pamahalaan ang mga tawag"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Pamahalaan ang conference"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video call"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"I-import"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"I-import lahat"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Ini-import ang mga contact sa SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"I-import mula sa mga contact"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Mga hearing aid"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"I-on ang compatibility ng hearing aid"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"I-off ang TTY"</item>
+    <item msgid="3971695875449640648">"Puno ang TTY"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Mga tone ng DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Itakda ang haba ng mga DTMF tone"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Mahaba"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Mensahe ng network"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"I-activate ang iyong telepono"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Kailangang maisagawa ang isang espesyal na tawag upang i-activate ang iyong serbisyo ng telepono. "\n\n"Pagkatapos pindutin ang “I-activate”, makinig sa mga ibinigay na tagubilin upang i-activate ang iyong telepono."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Laktawan ang pag-activate?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Kung lalaktawan mo ang pag-activate, hindi ka makakagawa ng mga tawag o makakakonekta sa mga mobile data network (ngunit makakakonekta ka sa mga Wi-Fi network). Hanggang sa i-activate mo ang iyong telepono, hihilingin sa iyong i-activate ito sa bawat pagkakataon na i-on mo ito."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Laktawan"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"I-activate"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Na-activate na ang telepono."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problema sa pag-activate"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Sundin ang mga isinalitang tagubilin hanggang sa marinig mo na kumpleto na ang pag-activate."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Speaker"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Maghintay habang pino-program ang iyong telepono."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Hindi matagumpay ang Pag-program"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Na-activate na ang iyong telepono. Maaaring tumagal nang hanggang 15 minuto upang magsimula ang serbisyo."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Hindi na-activate ang iyong telepono. "\n"Maaaring kailanganin mong maghanap ng lugar na may mas mahusay na sakop (malapit sa bintana, o sa labas). "\n\n"Subukang muli o tumawag sa serbisyo sa customer para sa higit pang pagpipilian."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"MGA SOBRANG PAGKABIGO NG SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Bumalik"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Subukan muli"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Susunod"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Ipinasok na Emergency Callback Mode"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Emergency Callback Mode"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Hindi pinagana ang koneksyon ng data"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Walang koneksyon ng data sa loob ng <xliff:g id="COUNT">%s</xliff:g> (na) minuto"</item>
+    <item quantity="other" msgid="3122217344579273583">"Walang koneksyon ng data sa loob ng <xliff:g id="COUNT">%s</xliff:g> (na) minuto"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Magiging nasa mode ng Emergency Callback ang telepono sa <xliff:g id="COUNT">%s</xliff:g> (a) minuto. Habang nasa mode na ito walang magagamit na apps na gumagamit ng koneksyon ng data. Gusto mo bang umalis ngayon?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Magiging nasa mode ng Emergency Callback ang telepono sa <xliff:g id="COUNT">%s</xliff:g> (na) minuto. Habang nasa mode na ito walang magagamit na apps na gumagamit ng koneksyon ng data. Gusto mo bang umalis ngayon?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Hindi available ang napiling pagkilos habang nasa mode ng Emergency Callback. Magiging nasa ganitong mode ang telepono sa <xliff:g id="COUNT">%s</xliff:g> (na) minuto. Gusto mo bang umalis ngayon?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Hindi available ang napiling pagkilos habang nasa mode ng Emergency Callback. Magiging nasa ganitong mode ang telepono sa <xliff:g id="COUNT">%s</xliff:g> (na) minuto. Gusto mo bang umalis ngayon?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Hindi available ang piniling pagkilos habang nasa pang-emergency na tawag."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Lumalabas sa mode na Emergency Callback"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Oo"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Hindi"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Balewalain"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Serbisyo"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Setup"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Hindi nakatakda&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Iba pang mga setting ng tawag"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"larawan ng contact"</string>
+    <string name="goPrivate" msgid="865837794424530980">"maging pribado"</string>
+    <string name="selectContact" msgid="781975788478987237">"pumili ng contact"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Mga setting ng tawag sa Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Mga account sa pagtawag sa Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Mga Account"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Tumanggap ng mga papasok na tawag"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Binabawasan ang buhay ng baterya"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Gumamit ng pagtawag sa Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Gumamit ng pagtawag sa Internet (Wi-Fi lang)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Para sa lahat ng mga tawag kapag available ang data network"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Para sa mga tawag sa Internet lang"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Hingin ang bawat tawag"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Para sa lahat ng mga tawag"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Tumawag"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Gumamit ng account sa pagtawag sa Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Palaging gamitin upang gumawa ng mga tawag sa Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Maaari mong baguhin kung anong account ng pagtawag sa Internet ang default na gagamitin mula sa Telepono &gt; Mga Setting &gt; Mga setting ng tawag sa internet &gt; screen ng Mga account."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Tawag sa cell phone"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Tawag sa internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Walang account sa pagtawag sa Internet"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Walang mga account sa pagtawag sa Internet sa teleponong ito. Gusto mo bang magdagdag ng isa ngayon?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Idagdag"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Magdagdag ng account"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Alisin ang account"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Mga SIP account"</string>
+    <string name="saving_account" msgid="52903398217017954">"Sine-save ang account..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Inaalis ang account..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"I-save"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Itapon"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Isara ang profile"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Isara"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Pangunahing account. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Tinitingnan ang katayuan..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Inirerehistro..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Sinusubukan pa rin..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Hindi tumatanggap ng mga tawag."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Nahinto ang pagpaparehistro ng account dahil walang koneksyon sa Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Nahinto ang pagpaparehistro ng account dahil walang koneksyon sa Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Hindi matagumpay ang pagpaparehistro ng account."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Tumatanggap ng mga tawag."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Nabigo ang pagpaparehistro ng account: Susubukan ng (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sa ibang pagkakataon"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Nabigo ang pagpaparehistro ng account: Maling username o password."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Nabigo ang pagpaparehistro sa account: Tingnan ang pangalan ng server."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Kasalukuyang ginagamit ang account na ito ng app ng <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Mga detalye ng SIP account"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Mga detalye ng SIP account"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Server"</string>
+    <string name="username_title" msgid="2479375923477682328">"Username"</string>
+    <string name="password_title" msgid="3323555249068171531">"Password"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Display name"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Address ng papalabas na proxy"</string>
+    <string name="port_title" msgid="5952939408078626657">"Numero ng port"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Uri ng paglilipat"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Magpadala ng keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Itakda bilang pangunahing account"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Ginagamit para sa mga papalabas na tawag"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Mga opsyonal na setting"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Username sa pagpapatunay"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Ginamit ang username para sa pagpapatunay"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Hindi nakatakda&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Katulad ng username&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Opsyonal&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Pindutin upang ipakita lahat"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Pindutin upang itago ang lahat"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Kinakailangan ang <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>, hindi maaaring iwanang blangko."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Dapat na nasa pagitan ng 1000 at 65534 ang numero ng port."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Walang koneksyon sa Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Walang koneksyon sa Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Upang tumawag sa Internet, suriin muna ang iyong koneksyon sa Internet."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Kailangan mong maging konektado sa isang Wi-Fi network para sa mga tawag sa Internet (gamitin ang mga setting ng Wireless &amp; Network)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Hindi suportado ang pagtawag sa Internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Awtomatiko"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Palaging ipadala"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Hindi suportado ang voice calling"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Di masagot ngayon. Ano meron?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tawagan kita ulit."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Tawagan kita mamaya."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Di masagot ngayon. Tawag ka mamaya?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Sumulat ng sarili mong tugon…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Mga mabilisang tugon"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"I-edit ang mga mabilisang tugon"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Mabilisang tugon"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"I-reset ang default na app"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Naipadala ang mensahe sa <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"isa"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"dalawa"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"tatlo"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"apat"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"lima"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"anim"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"pito"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"walo"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"siyam"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"star"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"zero"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"pound"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"Mag-dial"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Pinapagana ang speakerphone."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Naka-mute ang tawag."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Sagutin"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Magpadala ng SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Tanggihan"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Mag-vibrate"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Mag-vibrate"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Tunog"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Default na tunog (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ringtone ng telepono"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"I-vibrate kapag nagri-ring"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Mga tone ng pagpindot sa dial pad"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Pag-autocomplete ng dial pad"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone at Pag-vibrate"</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
new file mode 100644
index 0000000..6eb07c9
--- /dev/null
+++ b/res/values-tr/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobil Veriler"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Acil Durum Çeviricisi"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"SAN listesi"</string>
+    <string name="unknown" msgid="6878797917991465859">"Bilinmiyor"</string>
+    <string name="private_num" msgid="6713286113000232309">"Özel numara"</string>
+    <string name="payphone" msgid="1931775086311769314">"Ankesörlü telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Beklemede"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Hat meşgul"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Ağ meşgul"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Yanıt yok, zaman aşımı oluştu"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Sunucuya ulaşılamıyor"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Numaraya ulaşılamıyor"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Hatalı kullanıcı adı veya şifre"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Çağrı, ağın dışından yapıldı"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Sunucu hatası. Daha sonra tekrar deneyin."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Sinyal yok"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM sınırı aşıldı"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radyo kapalı"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"SIM kart yok veya SIM hatası"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Hizmet alanı dışında"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Giden çağrılar SAN tarafından kısıtlandı."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Çağrı engelleme açıkken arama yapamazsınız"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Tüm çağrılar erişim denetimi tarafından kısıtlandı."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Acil durum çağrıları erişim denetimi tarafından kısıtlandı."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normal çağrılar erişim denetimi tarafından kısıtlanmış."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Geçersiz numara"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferans görüşmesi"</string>
+    <string name="call_lost" msgid="317670617901479594">"Çağrı istemeden sonlandırıldı."</string>
+    <string name="ok" msgid="3811371167865772377">"Tamam"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI kodu başlatıldı"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD kodu çalışıyor…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI kodu iptal edildi"</string>
+    <string name="cancel" msgid="5044513931633602634">"İptal"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD mesajları <xliff:g id="MIN_LEN">%d</xliff:g>-<xliff:g id="MAX_LEN">%d</xliff:g> arası karakter içermelidir. Lütfen tekrar deneyin."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Konferans görüşmesini yönet"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Hoparlör"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Mobil cihaz kulaklığı"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Kablolu kulaklık"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Şu zil sesleri gönderilsin mi?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Sayı tonları gönderiliyor"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Gönder"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Evet"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Hayır"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Joker karakteri şununla değiştir:"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Eksik sesli mesaj numarası"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartta depolanan sesli mesaj numarası yok."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Numara ekle"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"SIM kartınızın engellemesi kaldırıldı. Telefonunuzun kilidi açılıyor..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM ağı kilit açma PIN kodu"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Kilit Aç"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Kapat"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Ağ kilidini açma isteği yapılıyor..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Ağ kilidi açma isteği başarısız."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Ağ kilidi açılamadı."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM çağrı ayarları"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA çağrı ayarları"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Erişim Noktası Adları"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Ağ ayarları"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Sesli mesaj"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Ağ operatörleri"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Çağrı ayarları"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ek ayarlar"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Yalnızca GSM çağrısı ek ayarları"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Ek CDMA çağrı ayarları"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Yalnızca CDMA çağrısı ek ayarları"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Ağ hizmeti ayarları"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Arayan Kimliği"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Ayarlar yükleniyor..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Giden çağrılarda numara gizli"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Giden çağrılarda numara görüntüleniyor"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Giden çağrılarda numaramı görüntülemek için varsayılan operatör ayarlarını kullan"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Çağrı bekletme"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Bir çağrı sırasında, gelen çağrıları bana bildir"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Bir çağrı sırasında, gelen çağrıları bana bildir"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Çağrı yönlendirme ayarları"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Çağrı yönlendirme"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Her zaman yönlendir"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Daima bu numarayı kullan"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Tüm çağrılar yönlendiriliyor"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Tüm çağrılar şuraya yönlendiriliyor: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numara kullanılamıyor"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Devre dışı"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Meşgul olduğunda yönlendir"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Meşgulken kullanılacak numara"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Şuraya yönlendiriliyor: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Devre dışı"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operatörünüz, telefonunuz meşgul olduğunda çağrı yönlendirmenin devre dışı bırakılmasını desteklemiyor."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Yanıtlanmadığında yönlendir"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Yanıtlanmadığında kullanılacak numara"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Şuraya yönlendiriliyor: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Devre dışı"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operatörünüz, telefonunuz yanıt vermediğinde çağrı yönlendirmenin devre dışı bırakılmasını desteklemiyor."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Ulaşılamadığında yönlendir"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Ulaşılamadığında kullanılacak numara"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Şuraya yönlendiriliyor: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Devre dışı"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatörünüz, telefonunuza ulaşılamadığında çağrı yönlendirmenin devre dışı bırakılmasını desteklemiyor."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Çağrı ayarları"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Çağrı ayarları hatası"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Ayarlar okunuyor..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ayarlar güncelleniyor..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Ayarlar geri alınıyor..."</string>
+    <string name="response_error" msgid="6674110501330139405">"Ağdan beklenmeyen yanıt."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Ağ veya SIM kart hatası."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Telefon uygulamanızın Sabit Arama Numaraları ayarı açık. Bu nedenle çağrıyla ilgili bazı özellikler çalışmıyor."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Bu ayarları görüntülemeden önce radyoyu açın."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Tamam"</string>
+    <string name="enable" msgid="1059008390636773574">"Etkinleştir"</string>
+    <string name="disable" msgid="7274240979164762320">"Devre Dışı Bırak"</string>
+    <string name="change_num" msgid="239476305819844391">"Güncelle"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Ağ varsayılanı"</item>
+    <item msgid="7876195870037833661">"Numarayı gizle"</item>
+    <item msgid="1108394741608734023">"Numarayı göster"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Sesli mesaj numarası değiştirildi."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Sesli mesaj numarası değiştirilemedi."\n"Bu sorun devam ederse operatörünüzle bağlantı kurun."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Yönlendirme numarası değiştirilemedi."\n"Bu sorun devam ederse operatörünüzle bağlantı kurun."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Mevcut yönlendirme numarası ayarları alınıp kaydedilemedi."\n"Yine de yeni sağlayıcıya geçilsin mi?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Hiçbir değişiklik yapılmadı."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Sesli mesaj hizmetini seç"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Operatörüm"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Mobil ağ ayarları"</string>
+    <string name="label_available" msgid="1181658289009300430">"Kullanılabilir ağlar"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Aranıyor..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Hiçbir ağ bulunamadı."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Ağları ara"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Ağlar aranırken hata oluştu."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> ağına kaydediliyor..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM kartınız bu ağa bağlanmaya izin vermiyor."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Şu an bu ağa bağlanılamıyor. Daha sonra tekrar deneyin."</string>
+    <string name="registration_done" msgid="495135664535876612">"Ağa kaydedildi."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Bir ağ operatörü seçin"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Kullanılabilen tüm ağları ara"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Otomatik olarak seç"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Tercih edilen ağı otomatik olarak seç"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Otomatik kayıt..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Ağ Modu"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Ağın çalışma modunu değiştir"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Tercih edilen ağ modu"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Tercih edilen ağ modu: WCDMA tercih edilir"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Tercih edilen ağ modu: Yalnızca GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Tercih edilen ağ modu: Yalnızca WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Tercih edilen ağ modu: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Tercih edilen ağ modu: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Tercih edilen ağ modu: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Tercih edilen ağ modu: Yalnızca CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Tercih edilen ağ modu: Yalnızca EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Tercih edilen ağ modu: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Tercih edilen ağ modu: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Tercih edilen ağ modu: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Tercih edilen ağ modu: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Tercih edilen ağ modu: Dünya Genelinde"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Tercih edilen ağ modu: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Dünya Genelinde"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Yalnızca EvDo"</item>
+    <item msgid="1508557726283094448">"EvDo olmadan CDMA"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo otomatik"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA otomatik"</item>
+    <item msgid="7913148405605373434">"Yalnızca WCDMA"</item>
+    <item msgid="1524224863879435516">"Yalnızca GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA tercih edilen"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Veri etkin"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Mobil ağ üzerinden veri erişimini etkinleştir"</string>
+    <string name="roaming" msgid="8871412572928323707">"Veri dolaşımı"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Dolaşırken veri hizmetlerine bağlan"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Dolaşırken veri hizmetlerine bağlan"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Veri dolaşımı kapalıyken ev ağınızdan ayrıldığınız için veri bağlantısını kaybettiniz."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Veri dolaşımına izin verilsin mi? Kayda değer dolaşım ücretleri ödeyebilirsiniz!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Seçenekleri"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA Seçenekleri"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Veri kullanımı"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Geçerli dönemde kullanılan veri"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Veri kullanım dönemi"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Veri hızı politikası"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Daha fazla bilgi edinin"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (٪<xliff:g id="USED_1">%2$d</xliff:g>) / <xliff:g id="USED_2">%3$s</xliff:g> dönem maksimumu"\n"Bir sonraki dönem <xliff:g id="USED_3">%4$d</xliff:g> gün sonra başlıyor (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"Maksimum dönem <xliff:g id="USED_0">%1$s</xliff:g> (٪<xliff:g id="USED_1">%2$d</xliff:g>) / <xliff:g id="USED_2">%3$s</xliff:g>"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Maksimum değer <xliff:g id="USED_0">%1$s</xliff:g> aşıldı"\n"Veri hızı <xliff:g id="USED_1">%2$d</xliff:g> Kb/s\'ye düşürüldü"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Dönemin tamamlanan bölümü:٪ <xliff:g id="USED_0">%1$d</xliff:g>"\n"Bir sonraki dönem <xliff:g id="USED_1">%2$d</xliff:g> gün sonra başlıyor (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Veri kullanım sınırı aşılırsa veri hızı <xliff:g id="USED">%1$d</xliff:g> Kb/s\'ye düşürülür"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Operatörünüzün mobil ağ üzerinden veri kullanımı politikası hakkında daha fazla bilgi edinin"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Hücre Yayını SMS\'i"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Hücre Yayını SMS\'i"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Hücre Yayını SMS\'si etkinleştirildi"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Hücre Yayını SMS\'si devre dışı bırakıldı"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Hücre Yayını SMS ayarları"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Acil Durum Yayını"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Acil Durum Yayını etkinleştirildi"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Acil Durum Yayını devre dışı bırakıldı"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"İdari"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"İdari seçeneği etkinleştirildi"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"İdari seçeneği devre dışı bırakıldı"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Bakım"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Bakım etkinleştirildi"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Bakım devre dışı bırakıldı"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Genel Haberler"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"İşletme ve Finans Haberleri"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Spor Haberleri"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Eğlence Haberleri"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Yerel"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Yerel haberler etkinleştirildi"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Yerel haberler devre dışı bırakıldı"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Bölgesel"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Bölgesel haberler etkinleştirildi"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Bölgesel haberler devre dışı bırakıldı"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Ulusal"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Ulusal haberler etkinleştirildi"</string>
+    <string name="national_disable" msgid="326018148178601166">"Ulusal haberler devre dışı bırakıldı"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Uluslararası"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Uluslararası haberler etkinleştirildi"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Uluslararası haberler devre dışı bırakıldı"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Dil"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Haber dilini seçin"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"İngilizce"</item>
+    <item msgid="1151988412809572526">"Fransızca"</item>
+    <item msgid="577840534704312665">"İspanyolca"</item>
+    <item msgid="8385712091143148180">"Japonca"</item>
+    <item msgid="1858401628368130638">"Korece"</item>
+    <item msgid="1933212028684529632">"Çince"</item>
+    <item msgid="1908428006803639064">"İbranice"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Diller"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Yerel Hava Durumu"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Yerel Hava Durumu etkinleştirildi"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Yerel Hava Durumu devre dışı bırakıldı"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Bölge Trafik Raporları"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Bölge Trafik Raporları etkinleştirildi"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Bölge Trafik Raporları devre dışı bırakıldı"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Yerel Havaalanı Uçuş Tarifeleri"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Yerel Havaalanı Uçuş Tarifeleri etkinleştirildi"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Yerel Havaalanı Uçuş Tarifeleri devre dışı bırakıldı"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restoranlar"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restoranlar etkinleştirildi"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restoranlar devre dışı bırakıldı"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Konaklamalar"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Konaklama etkinleştirildi"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Konaklama devre dışı bırakıldı"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Perakende Dizini"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Perakende Dizini etkinleştirildi"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Perakende Dizini devre dışı bırakıldı"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Reklamlar"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Reklamlar etkinleştirildi"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Reklamlar devre dışı bırakıldı"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Hisse Senetleri"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Hisse Senetleri etkinleştirildi"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Hisse Senetleri devre dışı bırakıldı"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"İş İmkanları"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"İş İmkanları etkinleştirildi"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"İş İmkanları devre dışı bırakıldı"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Tıp, Sağlık ve Hastane"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Tıp, Sağlık ve Hastane seçenekleri etkinleştirildi"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Tıp, Sağlık ve Hastane seçeneği devre dışı bırakıldı"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Teknoloji Haberleri"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Teknoloji Haberleri etkinleştirildi"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Teknoloji Haberleri devre dışı bırakıldı"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Çoklu kategori"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Çoklu kategori etkinleştirildi"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Çoklu kategori devre dışı bırakıldı"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Yalnızca 2G ağlarını kullan"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Pil tasarrufu sağlar"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Sistem seç"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMA dolaşım modunu değiştir"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Sistem seçin"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Yalnızca ev"</item>
+    <item msgid="1205664026446156265">"Otomatik"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA aboneliği"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/SIM ve NV arasında değiştir"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonelik"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Cihazı etkinleştir"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Veri hizmetini ayarla"</string>
+    <string name="fdn" msgid="7878832555095183202">"Sabit Arama Numaraları"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"SAN listesi"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"SAN etkinleştirme"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Sabit Arama Numaraları etkin"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Sabit Arama Numaraları devre dışı"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"SAN\'yi etkinleştir"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"SAN\'yi devre dışı bırak"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"PIN2 kodunu değiştir"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"SAN\'yi devre dışı bırak"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"SAN\'yi etkinleştir"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Sabit Arama Numaralarını Yönet"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"SAN erişimi için PIN kodunu değiştir"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Telefon numarası listesini yönet"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Ses gizliliği"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Gelişmiş gizlilik modunu etkinleştir"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY modu"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY modunu ayarla"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Otomatik yeniden deneme"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Otomatik Yeniden Deneme modunu etkinleştir"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Kişi ekle"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Kişiyi düzenle"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Kişiyi sil"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"PIN2\'yi yazın"</string>
+    <string name="name" msgid="7329028332786872378">"Ad"</string>
+    <string name="number" msgid="7905950798349903858">"Numara"</string>
+    <string name="save" msgid="4094274636321939086">"Kaydet"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Sabit arama numarası ekle"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Sabit arama numarası ekleniyor..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Sabit arama numarası eklendi."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Sabit arama numarasını düzenle"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Sabit arama numarası güncelleniyor..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Sabit arama numarası güncellendi."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Sabit arama numarasını sil"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Sabit arama numarası siliniyor..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Sabit arama numarası silindi."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Yanlış PIN girdiğiniz için FDN güncellenmedi."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Sayı 20 basamaktan uzun olamayacağından FDN güncellenmedi."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN güncellenmedi. PIN2 doğru değildi veya telefon numarası reddedildi."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIM karttan okunuyor..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM kartınızda hiçbir kişi yok."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"İçe aktarılacak kişileri seçin"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Kişileri SIM karttan içe aktarmak için, önce Uçak modunu kapatın."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"SIM PIN Kodunu Etkinleştir/Devre Dışı Bırak"</string>
+    <string name="change_pin" msgid="9174186126330785343">"SIM PIN Kodunu Değiştir"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN kodu:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Eski PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Yeni PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Yeni PIN kodunu doğrula"</string>
+    <string name="badPin" msgid="8955102849303984935">"Yazdığınız eski PIN doğru değil. Tekrar deneyin."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Yazdığınız PIN\'ler eşleşmiyor. Tekrar deneyin."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"4 ila 8 haneli bir PIN yazın."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"SIM PIN kodunu devre dışı bırak"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"SIM PIN Kodunu Etkinleştir"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Lütfen bekleyin..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM PIN kodu etkin."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM PIN kodu devre dışı."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Yazdığınız PIN hatalı."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"SIM PIN kodu başarıyla değiştirildi."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Şifre hatalı, SIM kilitlendi! PUK2 isteniyor."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Eski PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Yeni PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Yeni PIN2 kodunu doğrula"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Yazdığınız PUK2 doğru değil. Tekrar deneyin."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Yazdığınız eski PIN2 doğru değil. Tekrar deneyin."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Yazdığınız PIN2 kodları eşleşmiyor. Tekrar deneyin."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"4 ila 8 haneli bir PIN2 kodu yazın."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"8 haneli bir PUK2 yazın."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2 başarıyla değiştirildi."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"PUK2 kodunu yazın"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Şifre hatalı. PIN2 kodunu değiştirin ve tekrar deneyin."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Şifre hatalı, SIM kilitlendi! PUK2 isteniyor."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Bitti"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferans görüşmesi <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Sesli mesaj numarası"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Çevriliyor"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Tekrar deniyor"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferans görüşmesi"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Gelen çağrı"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Çağrı sonlandırıldı"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Beklemede"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Sonlandırılıyor"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Çağrı halinde"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Numaram: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Çevriliyor"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Cevapsız çağrı"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Cevapsız çağrılar"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cevapsız çağrı"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Cevapsız çağrı: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Devam eden çağrılar"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Beklemede"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Gelen çağrı"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Yeni sesli mesaj"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Yeni sesli mesaj (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Çevir: <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Sesli mesaj numarası bilinmiyor"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Hizmet yok"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Seçili ağ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) kullanılamıyor"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Kapat"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Geri ara"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesaj gönder"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Bir çağrı yapmak için öncelikle Uçak modunu kapatın."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ağda kayıtlı değil."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobil ağ kullanılamıyor."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Çağrı gönderilmedi. Geçerli numara girilmedi."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Çağrı gönderilmedi."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI dizisi başlatılıyor..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Desteklenmeyen hizmet."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Çağrılar arasında geçiş yapılamıyor."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Çağrı ayrılamıyor."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Çağrı aktarılamıyor."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Çağrılar konferans görüşmesi olarak birleştirilemiyor."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Çağrı reddedilemiyor."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Çağrılar serbest bırakılamıyor."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"İnternet çağrısı"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Acil durum çağrısı"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radyo açılıyor..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Hizmet alanı dışında, tekrar deneniyor..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Çağrı gönderilmedi, <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bir acil durum numarası değil!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Çağrı gönderilmedi. Bir acil durum numarası çevirin!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Çevirmek için klavyeyi kullan"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Beklet"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Sonlandır"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tuş takımı"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Sesi Kapat"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Çağrı ekle"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Çağrıları birleştir"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Değiştir"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Aramaları yönet"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Konferansı yönet"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Ses"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video görüşmesi"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"İçe aktar"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Tümünü içe aktar"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"SIM kişileri içe aktarılıyor"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Kişilerden içe aktar"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"İşitme cihazları"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"İşitme cihazı uyumluluğunu aç"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY Kapalı"</item>
+    <item msgid="3971695875449640648">"TTY Tam"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tonları"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF seslerinin uzunluğunu ayarla"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normal"</item>
+    <item msgid="2883365539347850535">"Uzun"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Ağ mesajı"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Telefonunuzu aktive edin"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Telefon hizmetinizin aktive edilmesi için özel bir çağrı yapılması gerekiyor. "\n\n"“Aktive Et”e bastıktan sonra, telefonunuzun aktive edilmesi için sağlanan talimatları dinleyin."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Etkinleştirme atlansın mı?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Etkinleştirmeyi atlarsanız, arama yapamaz veya mobil veri ağlarına bağlanamazsınız (yine de Kablosuz ağlara bağlanabilirsiniz). Telefonunuzu etkinleştirinceye kadar, telefonu her açışınızda ürünü etkinleştirip etkinleştirmeyeceğiniz sorulur."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Atla"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Etkinleştir"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon etkinleştirildi."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Aktivasyon sorunu"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Etkinleştirmenin tamamlandığını duyuncaya kadar söylenen talimatları izleyin."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Hoparlör"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Telefonunuz programlanırken lütfen bekleyin."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Programlama başarısız"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefonunuz şimdi aktive edildi. Hizmetin başlaması 15 dakika sürebilir."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonunuz etkinleştirilemedi. "\n"Daha iyi çeken bir yer (pencere kenarı veya dış mekan) bulmanız gerekebilir. "\n\n"Tekrar deneyin veya daha fazla seçenek için müşteri hizmetlerini arayın."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"AŞIRI SPC HATASI"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Geri"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Tekrar dene"</string>
+    <string name="ota_next" msgid="3904945374358235910">"İleri"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Acil Geri Arama Moduna Girildi"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Acil Geri Arama Modu"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Veri bağlantısı devre dışı bırakıldı"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"<xliff:g id="COUNT">%s</xliff:g> dakika boyunca veri bağlantısı yok"</item>
+    <item quantity="other" msgid="3122217344579273583">"<xliff:g id="COUNT">%s</xliff:g> dakika boyunca veri bağlantısı yok"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Telefon <xliff:g id="COUNT">%s</xliff:g> dakika boyunca Acil Geri Arama modunda olacaktır. Bu moddayken, veri bağlantısı kullanan uygulamalar kullanılamaz. Şimdi çıkmak istiyor musunuz?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Telefon <xliff:g id="COUNT">%s</xliff:g> dakika boyunca Acil Geri Arama modunda olacaktır. Bu moddayken, veri bağlantısı kullanan uygulamalar kullanılamaz. Şimdi çıkmak istiyor musunuz?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Seçilen işlem Acil Geri Arama modunda kullanılamaz. Telefon <xliff:g id="COUNT">%s</xliff:g> dakika boyunca bu modda kalacak. Şimdi çıkmak istiyor musunuz?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Seçilen işlem Acil Geri Arama modunda kullanılamaz. Telefon <xliff:g id="COUNT">%s</xliff:g> dakika boyunca bu modda kalacak. Şimdi çıkmak istiyor musunuz?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Seçilen işlem, acil durum çağrısında kullanılamaz."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Acil Geri Arama Modundan çıkılıyor"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Evet"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Hayır"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Kapat"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Hizmet"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Kurulum"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ayarlanmadı&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Diğer çağrı ayarları"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kişi fotoğrafı"</string>
+    <string name="goPrivate" msgid="865837794424530980">"özele git"</string>
+    <string name="selectContact" msgid="781975788478987237">"kişi seçin"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"İnternet üzerinden çağrı ayarları"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"İnternet çağrısı (SIP) hesapları"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Hesaplar"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Gelen çağrıları al"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Pil ömrünü kısaltır"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"İnternet çağrısını kullan"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"İnternet çağrısı kullan (yalnızca kablosuz)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Veri ağı uygun durumdayken yapılan tüm çağrılar için"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Yalnızca İnternet numaraları için"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Her çağrı için sor"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Tüm çağrılar için"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Çağrı yap"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"İnternet çağrısı hesabını kullan:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Her zaman İnternet çağrıları yapmak için kullan"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Varsayılan olarak hangi İnternet çağrısı hesabının kullanılacağını Telefon &gt; Ayarlar &gt; İnternet çağrısı ayarları &gt; Hesaplar ekranını kullanarak değiştirebilirsiniz."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Cep telefonu çağrısı"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"İnternet çağrısı"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"İnternet çağrısı hesabı yok"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Bu telefonda hiç İnternet çağrısı hesabı yok. Şimdi eklemek ister misiniz?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Ekle"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Hesap ekle"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Hesabı kaldır"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP hesapları"</string>
+    <string name="saving_account" msgid="52903398217017954">"Hesap kaydediliyor..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Hesap kaldırılıyor..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Kaydet"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Sil"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Profili kapat"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"Tamam"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Kapat"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Birincil hesap. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Durum denetleniyor..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Kayıt olunuyor..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Denemeye devam ediliyor..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Çağrıları almıyor."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"İnternet bağlantısı olmadığı için hesap kaydı durduruldu."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Kablosuz bağlantı olmadığından hesap kayıt işlemi durduruldu."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Hesap kaydı başarısız oldu."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Çağrıları alıyor."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Hesap kaydı başarısız oldu: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); daha sonra tekrar denenecek"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Hesap kaydı başarısız oldu: Yanlış kullanıcı adı veya şifre."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Hesap kaydı başarısız oldu: Sunucu adını kontrol edin."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Bu hesap şu anda <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> uygulaması tarafından kullanılıyor."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP hesabı ayrıntıları"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP hesabı ayrıntıları"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Sunucu"</string>
+    <string name="username_title" msgid="2479375923477682328">"Kullanıcı adı"</string>
+    <string name="password_title" msgid="3323555249068171531">"Şifre"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Görüntülenen ad"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Giden proxy adresi"</string>
+    <string name="port_title" msgid="5952939408078626657">"Bağlantı noktası numarası"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Aktarım türü"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Canlı tutma mesajı gönder"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Birincil hesap olarak ayarla"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Giden çağrılar için kullanılır"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"İsteğe bağlı ayarlar"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Kimlik doğrulama kullanıcı adı"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Kimlik doğrulama için kullanılan kullanıcı adı"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Ayarlanmadı&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Kullanıcı adıyla aynı&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;İsteğe bağlı&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Tümünü göstermek için dokunun"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Tümünü gizlemek için dokunun"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> gerekli, bu alan boş bırakılamaz."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Bağlantı noktası numarası 1000 ile 65534 arasında olmalıdır."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"İnternet bağlantısı yok"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Kablosuz bağlantı yok"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"İnternet çağrısı yapmak için öncelikle İnternet bağlantınızı denetleyin."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"İnternet çağrıları için bir Kablosuz ağa bağlı olmalısınız (Kablosuz ve Ağ ayarlarını kullanın)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"İnternet çağrısı desteklenmiyor"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Otomatik"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Her zaman gönder"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Sesli arama desteklenmiyor"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Şimdi konuşamam. Ne oldu?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Seni hemen geri arayacağım."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Seni daha sonra ararım."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Şimdi konuşamam. Daha sonra arar mısın?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Kendi yanıtınızı oluşturun…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Hızlı yanıtlar"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Hızlı yanıtları düzenle"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Hızlı yanıt"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Varsayılan uygulamayı sıfırla"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mesaj, <xliff:g id="PHONE_NUMBER">%s</xliff:g> numaralı telefona gönderildi."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"bir"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"iki"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"üç"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"dört"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"beş"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"altı"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"yedi"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"sekiz"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"dokuz"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"yıldız"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"sıfır"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"kare"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"çevir"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"geri tuşu"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Hoparlör etkin."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Çağrı sesi kapatıldı."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Yanıtla"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS gönder"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Reddet"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Titreşim"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Titreşim"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ses"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Varsayılan ses (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefon zil sesi"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Çalarken titret"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Tuşlara basınca ses çıksın"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Tuş takımı otomatik tamamlama"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Zil Sesi ve Titreşim"</string>
+</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
new file mode 100644
index 0000000..963b667
--- /dev/null
+++ b/res/values-uk/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Мобільні дані"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Аварійний телефон"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Телефон"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Список FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Невідомий"</string>
+    <string name="private_num" msgid="6713286113000232309">"Приватний номер"</string>
+    <string name="payphone" msgid="1931775086311769314">"Таксофон"</string>
+    <string name="onHold" msgid="9035493194749959955">"Очікує"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Лінія зайнята"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Мережа зайнята"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Нема відп., час очік.мин."</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Сервер недоступний"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Номер недоступний"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Неправ. ім\'я корист-ча чи пароль"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Виклик із-поза меж мережі"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Помилка сервера. Спроб. пізніше."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Немає сигналу"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Перевищено ліміт ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Вимк. радіо"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Помилка SIM-карти або SIM-карта відсутня"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Поза межами дії служби"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Вихідні дзвінки обмежено FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Ви не можете здійснювати вихідні виклики, коли ввімкнено заборону викликів."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Усі дзвінки обмежено контролем доступу."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Аварійні виклики обмежено контролем доступу."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Звичайні виклики обмежено контролем доступу."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Недійсний номер"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конференц-виклик"</string>
+    <string name="call_lost" msgid="317670617901479594">"Виклик утрачено."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Код MMI запущено"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Запуск. код USSD..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Код MMI скасовано"</string>
+    <string name="cancel" msgid="5044513931633602634">"Скасувати"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Кількість символів повідомлення USSD має становити від <xliff:g id="MIN_LEN">%d</xliff:g> до <xliff:g id="MAX_LEN">%d</xliff:g>. Повторіть спробу."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Керувати конференц-викликом"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Динамік"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Гарнітура Bluetooth"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Дротова гарнітура"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Надісл. наступні сигнали?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Надсилання сигналів"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Надісл."</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Так"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ні"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Замінити довільний символ на"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Відстун. номер голос. пошти"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карті немає збереж. номерів голос. пошти."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Додати номер"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Вашу SIM-карту розблоковано. Ваш телефон розблоковується..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Розбл. PIN-код мережі SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Розблок."</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Відхилити"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Запитув. розблок. мережі..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Не здійсн. запит розблокування мережі"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Мережу успішно розблоковано."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Налаштування викликів GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Налашт. викл. в CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Назва точки доступу"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Налашт-ння мережі"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Голос. пошта"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+    <string name="networks" msgid="8873030692174541976">"Оператори мережі"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Виклики"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Додаткові налаштування"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Лише додаткові налаштування GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Додаткові налаштування для викликів CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Додаткові налаштування лише для викликів CDMA"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Налашт-ня мережевої служби"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Номер абонента"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Завантаження налаштувань…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Номер приховано у вихідних дзвінках"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Номер відображ. у вихідних дзвінках"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Використ. налаштув. оператора для показу мого номера для вихідних дзвінків"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Паралельний виклик"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Під час дзвінка сповіщати про вхідні дзвінки"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Під час дзвінка сповіщати про вхідні дзвінки"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Налаштування переадресації виклику"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Переадрес. виклику"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Завжди пересилати"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Завжди викор. цей номер"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Пересил. всіх викликів"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Пересилання всіх викликів на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Номер недоступний"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Вимкнено"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Пересил., коли зайн."</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Номер., коли зайн."</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Пересилання на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Вимкнено"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Ваш оператор не підтримує вимкнення переадресації викликів, коли телефон зайнятий."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Пересилати, якщо не відпов."</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Номер., якщо не відпов."</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Пересилання на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Вимкнено"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Ваш оператор не підтримує вимкнення переадресації викликів, коли телефон не відповідає."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Пересилати, коли недоступ."</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Номер., якщо недосяжн."</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Пересилання на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Вимкнено"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ваш оператор не підтримує вимкнення переадресації викликів, коли телефон недосяжний."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Налаштування викликів"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Помилка налаштування викликів"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Читання налаштувань…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Оновлення налаштувань…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Відновл. налашт-нь…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Неочікувана відповідь від мережі"</string>
+    <string name="exception_error" msgid="7027667130619518211">"Помилка мережі чи SIM-карти."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Налаштування номерів фіксованого набору програми \"Телефон\" увімкнено. Унаслідок цього деякі функції, пов’язані з викликами, не працюють."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Увімкніть радіо, перш ніж переглядати ці налаштування."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Увімкнути"</string>
+    <string name="disable" msgid="7274240979164762320">"Вимкнути"</string>
+    <string name="change_num" msgid="239476305819844391">"Оновити"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Налаштування мережі за умовчанням"</item>
+    <item msgid="7876195870037833661">"Сховати номер"</item>
+    <item msgid="1108394741608734023">"Показ. номер"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Номер голос. пошти змінено."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Не вдалося змінити номер голосової пошти."\n"Зв’яжіться зі своїм оператором, якщо проблема не зникне."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Не вдалося змінити номер переадресації."\n"Зв’яжіться зі своїм оператором, якщо проблема не зникне."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Не вдалося отримати та зберегти поточні налаштування номера переадресації."\n"Усе одно переключитися на нового оператора?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Не здійсн. жодних змін."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Вибер. службу голос. пошти"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Мій оператор"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Налаштування мобільної мережі"</string>
+    <string name="label_available" msgid="1181658289009300430">"Доступні мережі"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Пошук…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Не знайд. жодних мереж."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Пошук мереж"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Помилка під час пошуку мереж."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Реєстрування у <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не дозволяє під’єднання до цієї мережі."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Зараз неможливо під’єднатися до цієї мережі. Повторіть спробу пізніше."</string>
+    <string name="registration_done" msgid="495135664535876612">"Зареєстровано у мережі"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Виберіть оператора мережі"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Пошук усіх доступних мереж"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Вибирати автоматично"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Автоматично вибирати основну мережу"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Автоматична реєстрація..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Режим мережі"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Змінити режим роботи мережі"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Рекоменд. режим мережі"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Рекомендований режим мереж: бажано WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Рекомендований режим мереж: лише GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Рекомендований режим мереж: лише WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Рекомендований режим мереж: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Рекомендований режим мереж: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Рекомендований режим мереж: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Рекомендований режим мереж: лише CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Рекомендований режим мереж: лише EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Рекомендований режим мережі: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Рекомендований режим мережі: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Рекомендований режим мережі: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Рекомендований режим мережі: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Рекомендований режим мережі: загальний"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Рекомендований режим мережі: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Загальний"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Лише EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA без EvDo"</item>
+    <item msgid="4341433122263841224">"Авто CDMA/EvDo"</item>
+    <item msgid="5958053792390386668">"Авто GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Лише WCDMA"</item>
+    <item msgid="1524224863879435516">"Лише GSM"</item>
+    <item msgid="3817924849415716259">"Рекомендовано GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Передавання даних"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Дозволити передавання даних через мобільну мережу"</string>
+    <string name="roaming" msgid="8871412572928323707">"Роумінг даних"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Підключ. до служб даних під час роумінгу"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Підключ. до служб даних під час роумінгу"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Доступ до даних утрачено, оскільки ви вийшли з домашньої мережі з вимкненим роумінгом даних."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Дозвол. роумінг даних? З вас можуть стягн. значну плату за нього!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Параметри GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Параметри CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Викор. даних"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Дані, вик. під час поточ. пер."</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Період викор. даних"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Пол. шв. перед. дан."</string>
+    <string name="throttle_help" msgid="243651091785169900">"Докладніше"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з <xliff:g id="USED_2">%3$s</xliff:g> макс. пеірод"\n"Наступний період поч. через <xliff:g id="USED_3">%4$d</xliff:g> дн. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з<xliff:g id="USED_2">%3$s</xliff:g> максим. періоду"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> макс. перевищ."\n"Шв. перед. дан. скор. до <xliff:g id="USED_1">%2$d</xliff:g> КБ/сек"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ з циклу здійсн."\n"Наст. період почин. через <xliff:g id="USED_1">%2$d</xliff:g> дн. (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Шв. перед. скор. до <xliff:g id="USED">%1$d</xliff:g> КБ/сек, якщо перев. ліміт викор. даних"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Докладніше про політику викор. даних мобільної мережі вашого оператора"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"Ф-ц. Cell Broadcast SMS"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Ф-ц. Cell Broadcast SMS"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Ф-ц/ Cell Broadcast SMS увімк."</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Ф-цію Cell Broadcast SMS вимк."</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Налашт. ф-ц. Cell Broadcast SMS"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Аварійний зв\'язок"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Аварійний зв\'язок увімкнено"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Аварійне зв\'язок вимкнено"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Адміністрування"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Адміністрування увімк."</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Адміністрування вимкн."</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Обслуговування"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Обслуговування увімкн."</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Обслуговування вимк."</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Загальні новини"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Бізнесові та фінансові новини"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Новини спорту"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Новини шоу-бізнесу"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Місц."</string>
+    <string name="local_enable" msgid="6370463247609136359">"Місцеві новини увімк."</string>
+    <string name="local_disable" msgid="4405691986943795798">"Місцеві новини вимкнено"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Регіонал."</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Регіонал. новини увімк."</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Регіональні новини вимкн."</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Націон."</string>
+    <string name="national_enable" msgid="1172443648912246952">"Нац. новини увімкн."</string>
+    <string name="national_disable" msgid="326018148178601166">"Нац. новини вимкнено"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Міжнародні"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Міжнародні новини увімкнено"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Міжнародні новини вимкнуто"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Мова"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Виберіть мову для новин"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Англійська"</item>
+    <item msgid="1151988412809572526">"Французька"</item>
+    <item msgid="577840534704312665">"Іспанська"</item>
+    <item msgid="8385712091143148180">"Японська"</item>
+    <item msgid="1858401628368130638">"Корейська"</item>
+    <item msgid="1933212028684529632">"Китайська"</item>
+    <item msgid="1908428006803639064">"Іврит"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Мови"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Місцева погода"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Місц. погоду увімк."</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Місцеву погоду вимкнено"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Звіти про дор. рух в місц."</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Звіти про дор. рух в місц."</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Звіти про дор. рух в місц. вимк."</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Розклади польотів місц. аеропорту"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Розклади польотів місц. аеропорту увімк."</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Розклади польотів місц. аеропорту вимк."</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Ресторани"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Ресторани увімкнено"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Ресторани вимкнено"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Винайм житла"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Винайм житла увімк."</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Винайм житла вимк."</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Каталог роздріб. торг."</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Каталог роздр. торг. ввімк."</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Каталог роздріб. торг. вимк."</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Реклама"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Рекламу увімкнено"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Рекламу вимкнено."</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Біржові котирув."</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Біржові котирув. ввімк."</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Біржові котирув. вимкн."</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Кар\'єрні можливості"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Кар\'єрні можливості увімкнено"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Кар\'єрні можливості вимкнено"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Медицина, здоров’я та лікарні"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Медицина, здоров’я та лікарні – увімкнено"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Медицина, здоров’я та лікарні – вимкнено"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Новини технології"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Новини техніки увімкнено"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Новини технологій"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Мультикатегорія"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Мультикатегорію увімкн."</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Мультикатегорію вимкнено"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Лише мережі 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Використовувати мережі 2G для економії заряду акумулятора"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Вибір системи"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Змінити режим CDMA-роумінгу"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Вибір системи"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Лише Головна"</item>
+    <item msgid="1205664026446156265">"Автоматично"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Підписка CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Змінити RUIM/SIM-карту на NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"підписка"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Активувати пристрій"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Налашт. службу пересил. даних"</string>
+    <string name="fdn" msgid="7878832555095183202">"Номери фіксованого набору"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Список FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Активація FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Номери фіксованого набору увімкнено"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Номери фіксованого набору вимкнено"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Увімк. FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Вимк. FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Змінити PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Вимк. FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Увімк. FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Керув. номерами фікс. набору"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Змінити PIN-код для доступу FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Керув. списком номерів тел."</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Конфіденційність Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Увімкн. режим розшир. конфіденц."</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Режим TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Устан. режим TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Автоповтор"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Увімкнути режим автоповтору"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Додати контакт"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Змінити контакт"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Видалити контакт"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Введіть PIN2-код"</string>
+    <string name="name" msgid="7329028332786872378">"Ім\'я"</string>
+    <string name="number" msgid="7905950798349903858">"Номер"</string>
+    <string name="save" msgid="4094274636321939086">"Зберег."</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Додати номер фіксов. набору"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Додавання номеру фікс. набору…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Номер фікс. набору додано."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Редаг. номер фіксов. набору"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Оновлення номеру фікс. набору…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Номер фікс. набору оновлено."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Видалити номер фікс. набору"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Видалення номеру фікс. набору…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Номер фікс. набору видалено."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Фіксований номер (FDN) не оновлено, оскільки введено неправильний PIN-код."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Фіксований номер (FDN) не оновлено, оскільки кількість цифр не може перевищувати 20."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Фіксований номер (FDN) не оновлено. PIN2-код неправильний або номер телефону відхилено."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Читання з SIM-карти…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"У SIM-карті немає контактів."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Виберіть контакти для імпорту"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Щоб імпортувати контакти із SIM-карти, спершу вимкніть режим польоту."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Увімк./вимк. PIN-код SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Змін. PIN-код SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN-код SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Старий PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Новий PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Підтверд. новий PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Введений попередній PIN-код не правильний. Повторіть спробу."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"Введені PIN-коди не збігаються. Повторіть спробу."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Введіть PIN-код з цифр від 4 до 8."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Вимк. PIN-код SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Вимк. PIN-код SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Зачекайте…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"PIN-код SIM-карти ввімкнено."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"PIN-код SIM-карти вимкнено."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Введений PIN-код не правильний."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"PIN-код SIM-карти змінено."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Пароль неправильний, SIM-картку заблок! Необх. PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Старий PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Новий PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Підтверд. новий PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Введений PUK2 не правильний. Повторіть спробу."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Введений попередній PIN2-код не правильний. Повторіть спробу."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Введені PIN2-коди не збігаються. Повторіть спробу."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Введіть PIN2-код з цифр від 4 до 8."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Введіть PUK2 з 8 чисел."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"PIN2-код змінено."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Введіть PUK2-код"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Пароль не правильний. Змініть PIN2-код і повторіть спробу."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Пароль не правильний. SIM-карту заблоковано. Потрібен PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Готово"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конференц-виклик <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Номер голос. пошти"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Набір"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Повт. підкл."</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конференц-виклик"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Вхідний дзвінок"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Виклик заверш."</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Очікує"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Класти слухавку"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Вхід. викл."</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Мій номер: <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Набір"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущ. виклик"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропущ. дзвінки"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Пропущ. дзвінк: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропущ. виклик від <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Поточний виклик"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Очікує"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Вхідний дзвінок"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нова голос. пошта"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нова голос. пошта (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Набрати <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Невідомий номер голос. пошти"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Нема служби"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Вибрана мережа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недоступна"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Завершити виклик"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Передзвонити"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Повідомлення"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Щоб установ. з\'єднання, споч. вимк. режим польоту."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Не зареєстровано в мережі."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Мобільна мережа недоступна."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Виклик не надіслано, не збережено дійсний номер."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Виклик не надісл."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Запуск ряду MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Непідтримувана служба"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Неможл. переключ. виклики."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Неможл. розділити дзвінок."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Неможл. переслати дзвінок."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Неможл. створ. конференц-викл."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Неможл. відхилити дзвінок."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Неможл. роз\'єднати виклики."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Інтернет-дзвінок"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Аварійний виклик"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Увімкнення радіо…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Поза межами дії служби, повтор..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Виклик не надіслано. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не є екстреним номером!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Виклик не надіслано. Наберіть екстрений номер!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Викор. клав. для набору"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Утрим."</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Закінч."</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Цифр. клав."</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Вимк. зв."</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Дод. виклик"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Об’єдн. дзвінки"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Поміняти"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Керув. викликами"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Керувати конференц."</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Звук"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Відеодзвінок"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Імпорт."</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Імпорт. всі"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Імпорт контактів SIM-карти"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Імпортув. з контактів"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Слухові апарати"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Увімкнути функцію НАС"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY вимк."</item>
+    <item msgid="3971695875449640648">"TTY повн."</item>
+    <item msgid="1937509904407445684">"HCO TTY"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Сигнали DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Установити довжину сигналів DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Звичайний"</item>
+    <item msgid="2883365539347850535">"Довгий"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Повідомлення мережі"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Активуйте свій телефон"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Щоб активувати службу вашого тел., треба зробити спеціальний дзвінок. "\n\n"Натиснувши \"Активувати\", прослухайте інструкції, надані для активації телефону."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Пропуст. активацію?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Якщо ви пропустите активацію, то не зможете розміщ. виклик чи підключ. до даних моб. мереж (хоча можете підключ. до мереж Wi-Fi). Вас проситимуть активувати тел. щоразу, коли ви його вмикаєте, поки це не викон."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Пропуст."</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Активувати"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Телефон активовано."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Проблема з активацією"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Виконайте голосові інструкції доки не почуєте, що активацію не буде завершено."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Промовець"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Зачекайте, поки ваш телефон програмується."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Помилка програмування"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Телефон тепер активовано. Для запуску сервісу може знадобитися до 15 хвилин."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Ваш телефон не активовано. "\n"Можливо, потрібно знайти місце з кращим покриттям (біля вікна чи надворі). "\n\n"Повторіть спробу чи подзвоніть у службу обслуговування, щоб дізнатися про інші варіанти."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"ПОМИЛКИ НАДЛИШКУ SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Назад"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Повтор."</string>
+    <string name="ota_next" msgid="3904945374358235910">"Далі"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Увійд. в реж. авар. зворот. виклику"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Реж. авар. зворот. виклику"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Передавання даних вимкнено"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Немає передав. даних протягом <xliff:g id="COUNT">%s</xliff:g> хв."</item>
+    <item quantity="other" msgid="3122217344579273583">"Немає передав. даних протягом <xliff:g id="COUNT">%s</xliff:g> хв."</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Телефон буде в режимі екстреного зворотного виклику <xliff:g id="COUNT">%s</xliff:g> хв. У цьому режимі неможливо користуватися програмами, які використовують передавання даних. Вийти зараз?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Телефон буде в режимі екстреного зворотного виклику <xliff:g id="COUNT">%s</xliff:g> хв. У цьому режимі неможливо користуватися програмами, які використовують передавання даних. Вийти зараз?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Вибрана дія не доступна в режимі екстреного зворотного виклику. Телефон буде в цьому режимі <xliff:g id="COUNT">%s</xliff:g> хв. Вийти зараз?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Вибрана дія не доступна в режимі екстреного зворотного виклику. Телефон буде у цьому режимі <xliff:g id="COUNT">%s</xliff:g> хв. Вийти зараз?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Вибрана дія не доступна під час екстреного виклику."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Вихід із режиму екстреного зворотного виклику"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Так"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ні"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Відхилити"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Служба"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Налаштування"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не встановлено&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Інші налаштування виклику"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Виклик здійснюється за допомогою <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"фото контакта"</string>
+    <string name="goPrivate" msgid="865837794424530980">"конфіденц."</string>
+    <string name="selectContact" msgid="781975788478987237">"вибрати контакт"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Налаштування Інтернет-дзвінків"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Облікові записи для Інтернет-дзвінків (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Облікові записи"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Отримувати вхідні дзвінки"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Підвищує споживання заряду акумулятора"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Використовувати Інтернет-дзвінки"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Використовувати Інтернет-дзвінки (лише Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Для всіх дзвінків, коли доступна мережа передавання даних"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Лише для Інтернет-дзвінків"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Запитувати для кожного дзвінка"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Для всіх дзвінк."</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Здійснити дзвінок"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Використовувати обліковий запис для Інтернет-дзвінків:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Завжди використовувати для здійснення Інтернет-дзвінків"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Обліковий запис для інтернет-викликів можна змінити на екрані Телефон &gt; Налаштування &gt; Налаштування інтернет-викликів &gt; Облікові записи, щоб використовувати його за умовчанням."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Дзвінок з мобільного телефону"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Інтернет-дзвінок"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Немає облікового запису для Інтернет-дзвінків"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"У цьому телефоні немає облікових записів для інтернет-викликів. Додати зараз?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Додати"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Додати обліковий запис"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Видалити обліковий запис"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Облікові записи SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Збереження облікового запису..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Видалення облікового запису..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Зберегти"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Відхилити"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Закрити профіль"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Закрити"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Основний обліковий запис. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Перевірка стану..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Реєстрація..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Повторна спроба..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Виклики не отримуються."</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Реєстрацію облікового запису зупинено, оскільки відсутнє з’єднання з Інтернетом."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Реєстрацію облікового запису зупинено, оскільки відсутнє з’єднання з мережею Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Обліковий запис не зареєстровано."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Виклики отримуються."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Обліковий запис не зареєстровано: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Спробуємо пізніше"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Обліковий запис не зареєстровано: неправильне ім’я користувача чи пароль."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Обліковий запис не зареєстровано: перевірте ім’я сервера."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Зараз цей обліковий запис використовується програмою <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Деталі облікового запису SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Деталі облікового запису SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Сервер"</string>
+    <string name="username_title" msgid="2479375923477682328">"Ім’я користувача"</string>
+    <string name="password_title" msgid="3323555249068171531">"Пароль"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Відображуване ім\'я"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Адреса проксі-сервера вихідних дзвінків"</string>
+    <string name="port_title" msgid="5952939408078626657">"Номер порту"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Тип транспортування"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Надсилання для підтримки з\'єднання"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Установити як основний обліковий запис"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Використовується для вихідних дзвінків"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Додаткові налаштування"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Ім\'я користувача для автентифікації"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Ім\'я користувача, використане для автентифікації"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Не налаштовано&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Таке саме, як ім\'я користувача&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Додатково&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Торкніться, щоб показати всі"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Торкніться, щоб сховати всі"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"Поле <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> обов’язкове, воно не може бути порожнім."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Номер порту має бути між 1000 і 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Відсутнє з\'єднання з Інтернетом"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Відсутнє з\'єднання Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Щоб здійснити інтернет-виклик, спершу перевірте своє з’єднання з Інтернетом."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Для здійснення інтернет-викликів потрібне з’єднання з мережею Wi-Fi (скористайтеся налаштуваннями Бездротовий зв’язок і мережі)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Інтернет-дзвінки не підтримуються"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Автоматично"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Завжди надсилати"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Голосові дзвінки не підтримуються"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Не можу говорити. У чому справа?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Я зараз передзвоню."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Я передзвоню пізніше."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Не можу говорити. Передзвоніть."</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Напишіть власну відповідь..."</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Швидкі відповіді"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Редагувати швидкі відповіді"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Швидка відповідь"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Скинути програму за умовчанням"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Повідомлення надіслано на номер <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"один"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"два"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"три"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"чотири"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"п’ять"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"шість"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"сім"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"вісім"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"дев’ять"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"зірочка"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"нуль"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"решітка"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"дзвонити"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Гучний зв’язок увімкнено."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Звук виклику вимкнено."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Відповісти"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Надіслати SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Відхилити"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вібросигнал"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вібросигнал"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Звук за умовчанням (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Сигнал дзвінка телефону"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вібрувати під час дзвінка"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Звук клавіш"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Автозавершення для цифрової клавіатури"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Сигнал дзвінка та вібросигнал"</string>
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
new file mode 100644
index 0000000..3a854f5
--- /dev/null
+++ b/res/values-vi/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Dữ liệu di động"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Điện thoại"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Trình quay số Khẩn cấp"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Điện thoại"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Danh sách FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Không xác định"</string>
+    <string name="private_num" msgid="6713286113000232309">"Số cá nhân"</string>
+    <string name="payphone" msgid="1931775086311769314">"Điện thoại tự động"</string>
+    <string name="onHold" msgid="9035493194749959955">"Đang chờ"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Đường dây bận"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Mạng bận"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Không có phản hồi, đã hết thời gian chờ"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Máy chủ không thể truy cập được"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Số không thể truy cập được"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Tên người dùng hoặc mật khẩu không chính xác"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Được gọi từ ngoài mạng"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Lỗi máy chủ. Hãy thử lại sau."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Không có tín hiệu nào"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Đã vượt quá giới hạn ACM"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Tắt radio"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Không có SIM hoặc lỗi SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Ngoài vùng dịch vụ"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Cuộc gọi đi bị hạn chế bởi FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Bạn không thể thực hiện cuộc gọi đi khi đang bật chế độ chặn cuộc gọi."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Tất cả cuộc gọi bị hạn chế bởi kiểm soát truy cập."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Cuộc gọi khẩn cấp bị hạn chế bằng kiểm soát truy cập."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Cuộc gọi thông thường bị hạn chế bởi kiểm soát truy cập."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Số không hợp lệ"</string>
+    <string name="confCall" msgid="1904840547188336828">"Cuộc gọi hội nghị"</string>
+    <string name="call_lost" msgid="317670617901479594">"Cuộc gọi đã bị mất."</string>
+    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Đã bắt đầu mã MMI"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Mã USSD đang chạy…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Mã MMI đã bị hủy"</string>
+    <string name="cancel" msgid="5044513931633602634">"Hủy"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Tin nhắn USSD phải có độ dài trong khoảng từ <xliff:g id="MIN_LEN">%d</xliff:g> đến <xliff:g id="MAX_LEN">%d</xliff:g> ký tự. Vui lòng thử lại."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Quản lý cuộc gọi hội nghị"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Loa"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Tai nghe ĐTDĐ"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Tai nghe có dây"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Gửi các âm sau?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Đang gửi âm"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Gửi"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Có"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Không"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Thay thế ký tự tự do bằng"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Thiếu số thư thoại"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Không có số thư thoại nào được lưu trữ trên thẻ SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Thêm số điện thoại"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Thẻ SIM của bạn đã được bỏ chặn. Điện thoại của bạn đang mở khóa…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"Mã PIM mở khóa mạng SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Mở khóa"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Loại bỏ"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Đang yêu cầu mở khóa mạng..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Yêu cầu mở khóa mạng không thành công."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Mở khóa mạng thành công."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Cài đặt cuộc gọi GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Cài đặt cuộc gọi CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Tên Điểm Truy cập"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Cài đặt mạng"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Thư thoại"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"Thư thoại:"</string>
+    <string name="networks" msgid="8873030692174541976">"Nhà cung cấp dịch vụ mạng"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Cài đặt cuộc gọi"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Cài đặt bổ sung"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Cài đặt cuộc gọi chỉ GSM bổ sung"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Cài đặt cuộc gọi CDMA bổ sung"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Cài đặt cuộc gọi chỉ CDMA bổ sung"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Cài đặt dịch vụ mạng"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"Số gọi đến"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Đang tải cài đặt…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Số bị ẩn trong cuộc gọi đi"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Số được hiển thị trong cuộc gọi đi"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Sử dụng cài đặt mặc định của nhà cung cấp dịch vụ để hiển thị số của tôi trong cuộc gọi đi"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Chờ cuộc gọi"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Trong suốt cuộc gọi, thông báo cho tôi về cuộc gọi đến"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Trong suốt cuộc gọi, thông báo cho tôi về cuộc gọi đến"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Cài đặt chuyển tiếp cuộc gọi"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Chuyển tiếp cuộc gọi"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Luôn chuyển tiếp"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Luôn sử dụng số này"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Chuyển tiếp tất cả cuộc gọi"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Chuyển tiếp tất cả cuộc gọi tới <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Số không có"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Đã tắt"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Chuyển tiếp khi bận"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Số khi bận"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Chuyển tiếp tới <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Đã tắt"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Nhà cung cấp dịch vụ của bạn không hỗ trợ vô hiệu hóa chuyển tiếp cuộc gọi khi điện thoại của bạn bận."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Chuyển tiếp khi không trả lời"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Số khi không được trả lời"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Chuyển tiếp tới <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Đã tắt"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Nhà cung cấp dịch vụ của bạn không hỗ trợ vô hiệu hóa chuyển tiếp cuộc gọi khi điện thoại của bạn không trả lời."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Chuyển tiếp khi không thể kết nối"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Số khi không thể truy cập được"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Chuyển tiếp tới <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Đã tắt"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Nhà cung cấp dịch vụ của bạn không hỗ trợ vô hiệu hóa chuyển tiếp cuộc gọi khi điện thoại của bạn không thể truy cập được."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Cài đặt cuộc gọi"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Lỗi cài đặt cuộc gọi"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Đang đọc cài đặt…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Đang cập nhật cài đặt..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Đang hoàn nguyên cài đặt…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Phản hồi không mong muốn từ mạng."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Lỗi mạng hoặc thẻ SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Cài đặt Số quay định sẵn trên ứng dụng điện thoại được bật. Do đó, một số tính năng có liên quan đến cuộc gọi không hoạt động."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Hãy bật radio trước khi xem những cài đặt này."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+    <string name="enable" msgid="1059008390636773574">"Bật"</string>
+    <string name="disable" msgid="7274240979164762320">"Vô hiệu hóa"</string>
+    <string name="change_num" msgid="239476305819844391">"Cập nhật"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Mặc định mạng"</item>
+    <item msgid="7876195870037833661">"Ẩn số"</item>
+    <item msgid="1108394741608734023">"Hiển thị số"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Số thư thoại đã thay đổi."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Không thể thay đổi số thư thoại."\n"Liên hệ với nhà cung cấp dịch vụ nếu sự cỗ này vẫn tiếp diễn."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Không thể thay đổi số chuyển hướng."\n"Liên hệ với nhà cung cấp dịch vụ của bạn nếu sự cố này vẫn tiếp diễn."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Không thể truy xuất và lưu cài đặt số chuyển tiếp hiện tại."\n"Bạn vẫn muốn chuyển sang nhà cung cấp mới?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Không thay đổi nào được thực hiện."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Chọn dịch vụ thư thoại"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Nhà cung cấp dịch vụ của tôi"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Cài đặt mạng di động"</string>
+    <string name="label_available" msgid="1181658289009300430">"Mạng khả dụng"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Đang tìm kiếm…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Không tìm thấy mạng nào."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Tìm kiếm trong mạng"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Lỗi khi tìm kiếm mạng."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Đang đăng ký trên <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Thẻ SIM của bạn không cho phép kết nối với mạng này."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Không thể kết nối với mạng này ngay bây giờ. Hãy thử lại sau."</string>
+    <string name="registration_done" msgid="495135664535876612">"Đã đăng ký trên mạng."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Chọn nhà cung cấp dịch vụ mạng"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Tìm kiếm tất cả mạng khả dụng"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Tự động chọn"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Tự động chọn mạng ưa thích"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Đăng ký tự động..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Chế độ Mạng"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Thay đổi chế độ hoạt động của mạng"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Chế độ mạng được ưu thích"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Chế độ mạng được ưa thích: ưu tiên WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Chế độ mạng được ưa thích: chỉ GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Chế độ mạng được ưa thích: chỉ WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Chế độ mạng được ưa thích: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Chế độ mạng được ưa thích: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Chế độ mạng được ưa thích: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Chế độ mạng được ưa thích: chỉ CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Chế độ mạng được ưa thích: chỉ EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Chế độ mạng được ưa thích: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Chế độ mạng được ưa thích: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Chế độ mạng được ưa thích: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Chế độ mạng được ưa thích: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Chế độ mạng được ưa thích: Toàn cầu"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Chế độ mạng được ưa thích: LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Toàn cầu"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Chỉ EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA không có EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo tự động"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA tự động"</item>
+    <item msgid="7913148405605373434">"Chỉ WCDMA"</item>
+    <item msgid="1524224863879435516">"Chỉ GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA được ưa thích"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Đã bật dữ liệu"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Bật truy cập dữ liệu qua mạng Di động"</string>
+    <string name="roaming" msgid="8871412572928323707">"Chuyển vùng dữ liệu"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Bạn đã mất kết nối dữ liệu vì bạn đã tắt chuyển vùng dữ liệu của mạng gia đình của mình."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Cho phép chuyển vùng dữ liệu? Bạn có thể phải chịu phí chuyển vùng đáng kể!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Tùy chọn GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Tùy chọn CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Sử dụng dữ liệu"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Dữ liệu được sử dụng trong thời gian hiện tại"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Thời gian sử dụng dữ liệu"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Chính sách tốc độ dữ liệu"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Tìm hiểu thêm"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) trong tổng số <xliff:g id="USED_2">%3$s</xliff:g> thời gian tối đa"\n"Thời gian tiếp theo bắt đầu sau <xliff:g id="USED_3">%4$d</xliff:g> ngày nữa (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) trong tổng số <xliff:g id="USED_2">%3$s</xliff:g> thời gian tối đa"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"Đã vượt quá tối đa <xliff:g id="USED_0">%1$s</xliff:g>"\n"Tốc độ dữ liệu bị giảm xuống <xliff:g id="USED_1">%2$d</xliff:g> Kb/giây"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ của chu kỳ đã qua"\n"Thời gian tiếp theo sẽ bắt đầu trong <xliff:g id="USED_1">%2$d</xliff:g> ngày (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Tốc độ dữ liệu bị giảm xuống <xliff:g id="USED">%1$d</xliff:g> Kb/s nếu vượt quá giới hạn sử dụng dữ liệu"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Thêm thông tin về chính sách sử dụng dữ liệu mạng dành cho điện thoại di động của nhà cung cấp dịch vụ của bạn"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS Phát trên Di động"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS Phát trên Di động"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Đã bật SMS Phát trên Di động"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Đã vô hiệu hóa SMS Phát trên Di động"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Cài đặt SMS Phát trên Di động"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Phát thanh Khẩn cấp"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Đã bật Phát thanh Khẩn cấp"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Đã vô hiệu hóa Phát thanh Khẩn cấp"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Quản trị"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Đã bật quản trị"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Đã vô hiệu hóa quản trị"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Bảo trì"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Đã bật bảo trì"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Đã vô hiệu hóa bảo trì"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Tin tức Chung"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Tin tức Kinh doanh và Tài chính"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Tin tức Thể thao"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Tin tức Giải trí"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Địa phương"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Đã bật tin tức địa phương"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Đã vô hiệu hóa tin tức địa phương"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Khu vực"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Bật tin tức khu vực"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Đã vô hiệu hóa tin tức khu vực"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Quốc gia"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Đã bật tin tức quốc gia"</string>
+    <string name="national_disable" msgid="326018148178601166">"Đã vô hiệu hóa tin tức quốc gia"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Quốc tế"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Đã bật tin tức quốc tế"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Đã vô hiệu hóa tin tức quốc tế"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Ngôn ngữ"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Chọn ngôn ngữ tin tức"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"Tiếng Anh"</item>
+    <item msgid="1151988412809572526">"Tiếng Pháp"</item>
+    <item msgid="577840534704312665">"Tiếng Tây Ban Nha"</item>
+    <item msgid="8385712091143148180">"Tiếng Nhật"</item>
+    <item msgid="1858401628368130638">"Tiếng Hàn"</item>
+    <item msgid="1933212028684529632">"Tiếng Trung"</item>
+    <item msgid="1908428006803639064">"Tiếng Do Thái"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Ngôn ngữ"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Thời tiết Địa phương"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Đã bật Thời tiết Địa phương"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Đã tắt Thời tiết địa phương"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Báo cáo Lưu lượng truy cập của Khu vực"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Đã bật Báo cáo Lưu lượng truy cập của Khu vực"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Đã vô hiệu hóa Báo cáo Lưu lượng truy cập của Khu vực"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Lịch Bay tại Sân bay Địa phương"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Đã bật Lịch bay tại Sân bay Địa phương"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Đã vô hiệu hóa Lịch Bay tại Sân bay Địa phương"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Nhà hàng"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Đã bật nhà hàng"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Đã vô hiệu hóa nhà hàng"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Phòng cho thuê"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Đã bật phòng cho thuê"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Tắt phòng cho thuê"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Thư mục Bán lẻ"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Đã bật Thư mục Bán lẻ"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Đã vô hiệu hóa Thư mục Bán lẻ"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Quảng cáo"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Đã bật quảng cáo"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Đã vô hiệu hóa quảng cáo"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Tin tức Chứng khoán"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Đã bật Tin tức Chứng khoán"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Đã tắt Tin tức chứng khoán"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Cơ hội Nghề nghiệp"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Đã bật Cơ hội Nghề nghiệp"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Đã tắt Cơ hội nghề nghiệp"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Y tế, Sức khoẻ và Bệnh viện"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Đã bật Y tế, Sức khoẻ và Bệnh viện"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Đã tắt Y tế, Sức khoẻ và Bệnh viện"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tin tức Công nghệ"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Đã bật Tin tức Công nghệ"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Đã tắt Tin tức công nghệ"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Nhiều danh mục"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Đã bật nhiều danh mục"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Đã vô hiệu hóa nhiều danh mục"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Chỉ sử dụng mạng 2G"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Tiết kiệm pin"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Chọn hệ thống"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Thay đổi chế độ chuyển vùng CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Chọn hệ thống"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Chỉ nhà riêng"</item>
+    <item msgid="1205664026446156265">"Tự động"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Đăng ký CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Thay đổi giữa RUIM/SIM và NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"đăng ký"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Kích hoạt thiết bị"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Thiết lập dịch vụ dữ liệu"</string>
+    <string name="fdn" msgid="7878832555095183202">"Số Quay Định sẵn"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Danh sách FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Kích hoạt FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Số Quay số Định sẵn đã được bật"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Số Quay Định sẵn bị vô hiệu hóa"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Bật FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Vô hiệu hóa FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Thay đổi mã PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Vô hiệu hóa FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Bật FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Quản lý Số Quay định sẵn"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Thay đổi mã PIN để truy cập FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Quản lý danh sách số điện thoại"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Bảo mật của Voice"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Bật chế độ bảo mật tăng cường"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Chế độ TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Đặt chế độ TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Tự động thử lại"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Bật chế độ Tự động thử lại"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Thêm liên hệ"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Chỉnh sửa liên hệ"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Xóa liên hệ"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Nhập PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Tên"</string>
+    <string name="number" msgid="7905950798349903858">"Số"</string>
+    <string name="save" msgid="4094274636321939086">"Lưu"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Thêm số quay định sẵn"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Đang thêm số quay định sẵn…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Đã thêm số quay định sẵn."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Chỉnh sửa số quay định sẵn"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Đang cập nhật số quay định sẵn..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Đã cập nhật số quay định sẵn."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Xóa số quay định sẵn"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Đang xóa số quay định sẵn…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Đã thêm số quay định sẵn."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN không được cập nhật do bạn đã nhập PIN không chính xác."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN chưa được cập nhật do số đã vượt quá 20 chữ số."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN không được cập nhật. Mã PIN2 không đúng hoặc số điện thoại đã bị từ chối."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Đang đọc từ thẻ SIM…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Không có danh bạ trên thẻ SIM của bạn."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Chọn danh bạ để nhập"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Để nhập danh bạ từ thẻ SIM, trước tiên hãy tắt Chế độ trên máy bay."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Bật/vô hiệu hóa mã PIN của SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Thay đổi mã PIN của SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"Mã PIN của SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Mã PIN cũ"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Mã PIN Mới"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Xác nhận mã PIN mới"</string>
+    <string name="badPin" msgid="8955102849303984935">"Mã PIN cũ bạn đã nhập không chính xác. Hãy thử lại."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN bạn đã nhập không khớp. Hãy thử lại."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Nhập mã PIN có từ 4 đến 8 số."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Vô hiệu hóa mã PIN của SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Bật mã PIM của SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Vui lòng đợi..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"Đã bật mã PIN của SIM."</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"Đã tắt mã PIN của SIM."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"Mã PIN bạn đã nhập không chính xác."</string>
+    <string name="pin_changed" msgid="4365538014588501049">"Mã PIN của SIM đã được thay đổi thành công."</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Mật khẩu không chính xác, SIM bị khóa! PUK2 được yêu cầu."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"Mã PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Mã PIN2 cũ"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Mã PIN2 Mới"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Xác nhận mã PIN2 mới"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"Mã PUK2 bạn đã nhập không chính xác. Hãy thử lại."</string>
+    <string name="badPin2" msgid="1041576234483629991">"Mã PIN2 cũ bạn đã nhập không chính xác. Hãy thử lại."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"PIN2s bạn đã nhập không khớp. Hãy thử lại."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Nhập mã PIN2 có từ 4 đến 8 số."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Nhập mã PUK2 có 8 số."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"Mã PIN2 đã được thay đổi thành công."</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Nhập mã PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Mật khẩu không chính xác. Hãy thay đổi mã PIN2 và thử lại."</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Mật khẩu không chính xác, SIM bị khóa. PUK2 được yêu cầu."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Xong"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Cuộc gọi hội nghị <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Số thư thoại"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Đang quay số"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Đang thử lại"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Cuộc gọi hội nghị"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Cuộc gọi đến"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Cuộc gọi đã kết thúc"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Đang chờ"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Kết thúc cuộc gọi"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Đang trong cuộc gọi"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Số điện thoại của tôi là <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Đang gọi"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> cuộc gọi nhỡ"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Cuộc gọi nhỡ từ <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Cuộc gọi đang thực hiện"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Đang chờ"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Cuộc gọi đến"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Thư thoại mới"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Thư thoại mới (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Quay số <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Số thư thoại không xác định"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Không có dịch vụ nào"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Mạng được chọn (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) không khả dụng"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Kết thúc"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Gọi lại"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Tin nhắn"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Để thực hiện cuộc gọi, trước tiên, hãy tắt chế độ trên Máy bay."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Chưa được đăng ký trên mạng."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mạng di động không khả dụng."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Cuộc gọi không được gửi đi, bạn đã nhập số không hợp lệ."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Cuộc gọi không được gửi đi."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Khởi động chuỗi MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Dịch vụ không được hỗ trợ."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Không thể chuyển đổi cuộc gọi."</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Không thể tách cuộc gọi."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Không thể chuyển cuộc gọi."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Không thể thực hiện cuộc gọi hội nghị."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Không thể từ chối cuộc gọi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Không thể thực hiện cuộc gọi."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Cuộc gọi qua internet"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Cuộc gọi khẩn cấp"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Đang bật radio..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Ngoài vùng dịch vụ, đang thử lại..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Cuộc gọi không được gửi đi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> không phải là số khẩn cấp!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Cuộc gọi không được gửi đi. Hãy quay số số khẩn cấp!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Sử dụng bàn phím để quay số"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Giữ"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Kết thúc"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Bàn phím số"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Tắt tiếng"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Thêm cuộc gọi"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Hợp nhất cuộc gọi"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Hoán đổi"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Quản lý cuộc gọi"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Quản lý hội nghị"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Âm thanh"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"C.gọi video"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Nhập"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Nhập tất cả"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Đang nhập danh bạ trên SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Nhập từ danh bạ"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Trợ thính"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Bật khả năng tương thích trợ thính"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"Tắt TTY"</item>
+    <item msgid="3971695875449640648">"TTY Đầy"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Âm DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Đặt độ dài âm DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Thường"</item>
+    <item msgid="2883365539347850535">"Dài"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Thông báo của mạng"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Kích hoạt điện thoại của bạn"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Bạn cần phải thực hiện cuộc gọi đặc biệt để kích hoạt dịch vụ điện thoại của mình. "\n\n"Sau khi nhấn “Kích hoạt”, nghe hướng dẫn được cung cấp để kích hoạt điện thoại của bạn."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Bỏ qua kích hoạt?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Nếu bạn bỏ qua kích hoạt, bạn không thể thực hiện cuộc gọi hoặc kết nối với mạng dữ liệu dành cho điện thoại di động (mặc dù bạn có thể kết nối với mạng Wi-Fi). Cho tới khi bạn kích hoạt điện thoại của mình, bạn được yêu cầu kích hoạt điện thoại mỗi lần bạn bật điện thoại."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Bỏ qua"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Kích hoạt"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Điện thoại đã được kích hoạt."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Sự cố với kích hoạt"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Làm theo hướng dẫn bằng lời cho tới khi bạn nghe thấy kích hoạt đã hoàn tất."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Loa"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Hãy đợi trong khi điện thoại của bạn được lập trình."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Lập trình không thành công"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Điện thoại của bạn giờ đây đã được kích hoạt. Có thể mất tối đa 15 phút để dịch vụ bắt đầu."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Điện thoại của bạn chưa được kích hoạt. "\n"Bạn có thể phải tìm một khu vực có phạm vi phủ sóng tốt hơn (gần cửa sổ hoặc bên ngoài). "\n\n"Hãy thử lại hoặc gọi cho dịch vụ khách hàng để có tùy chọn khác."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"LỖI SPC QUÁ MỨC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Quay lại"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Thử lại"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Tiếp theo"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Đã vào Chế độ Gọi lại Khẩn cấp"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Chế độ Gọi lại Khẩn cấp"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Đã tắt kết nối mạng"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Không có kết nối dữ liệu trong <xliff:g id="COUNT">%s</xliff:g> phút"</item>
+    <item quantity="other" msgid="3122217344579273583">"Không có kết nối dữ liệu trong <xliff:g id="COUNT">%s</xliff:g> phút"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Điện thoại sẽ ở chế độ Gọi lại khẩn cấp trong vòng <xliff:g id="COUNT">%s</xliff:g> phút. Không thể ứng dụng nào sử dụng kết nối dữ liệu trong khi ở trong chế độ này. Bạn có muốn thoát ngay bây giờ không?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Điện thoại sẽ ở chế độ Gọi lại khẩn cấp trong vòng <xliff:g id="COUNT">%s</xliff:g> phút. Không thể sử dụng ứng dụng nào sử dụng kết nối dữ liệu trong khi đang ở trong chế độ này. Bạn có muốn thoát ngay bây giờ không?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Tác vụ đã chọn không khả dụng trong khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong vòng <xliff:g id="COUNT">%s</xliff:g> phút. Bạn có muốn thoát ngay bây giờ không?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Tác vụ đã chọn không sẵn có trong khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong vòng <xliff:g id="COUNT">%s</xliff:g> phút. Bạn có muốn thoát ngay bây giờ không?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Tác vụ đã chọn không khả dụng trong khi thực hiện cuộc gọi khẩn cấp."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Thoát khỏi chế độ Gọi lại khẩn cấp"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Có"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Không"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Loại bỏ"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Dịch vụ"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Thiết lập"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Chưa được đặt&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Cài đặt cuộc gọi khác"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"ảnh liên hệ"</string>
+    <string name="goPrivate" msgid="865837794424530980">"chuyển thành riêng tư"</string>
+    <string name="selectContact" msgid="781975788478987237">"chọn địa chỉ liên hệ"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Cài đặt cuộc gọi qua Internet"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Tài khoản gọi qua Internet (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Tài khoản"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Nhận cuộc gọi đến"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Giảm tuổi thọ pin"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Sử dụng tính năng gọi qua Internet"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Sử dụng tính năng gọi qua Internet (chỉ Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Dành cho tất cả các cuộc gọi khi mạng dữ liệu sẵn có"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Chỉ dành cho các cuộc gọi qua Internet"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Yêu cầu cho mỗi cuộc gọi"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Dành cho tất cả các cuộc gọi"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Thực hiện cuộc gọi"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Sử dụng tài khoản gọi qua Internet:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Luôn sử dụng để thực hiện cuộc gọi qua Internet"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Bạn có thể thay đổi tài khoản gọi qua Internet nào sử dụng theo mặc định từ màn hình Điện thoại &gt; Cài đặt &gt; Cài đặt gọi qua Internet &gt; Tài khoản."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Cuộc gọi qua điện thoại di động"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Cuộc gọi qua internet"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Không có tài khoản gọi qua Internet nào"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Không có tài khoản gọi qua Internet nào trên điện thoại này. Bạn có muốn thêm một tài khoản gọi qua Internet ngay bây giờ không?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Thêm"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Thêm tài khoản"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Xóa tài khoản"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Tài khoản SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Đang lưu tài khoản..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Đang xóa tài khoản..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Lưu"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Hủy"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Đóng tiểu sử"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"OK"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Đóng"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"Tài khoản chính. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Đang kiểm tra trạng thái..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Đang đăng ký…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Vẫn đang thử..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Đang không nhận cuộc gọi"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Đăng ký tài khoản đã dừng do không có kết nối Internet."</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Đăng ký tài khoản đã dừng do không có kết nối Wi-Fi."</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Đăng ký tài khoản không thành công."</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Đang nhận cuộc gọi."</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Đăng ký tài khoản không thành công: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sẽ thử sau"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Đăng ký tài khoản không thành công: Tên người dùng hoặc mật khẩu không chính xác."</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Đăng ký tài khoản không thành công: Kiểm tra tên máy chủ."</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Tài khoản này hiện đang được ứng dụng <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> sử dụng."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Chi tiết tài khoản SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Chi tiết tài khoản SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Máy chủ"</string>
+    <string name="username_title" msgid="2479375923477682328">"Tên người dùng"</string>
+    <string name="password_title" msgid="3323555249068171531">"Mật khẩu"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Tên hiển thị"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Địa chỉ proxy đi"</string>
+    <string name="port_title" msgid="5952939408078626657">"Số cổng"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Loại truyền tải"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Gửi giữ kết nối"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Đặt làm tài khoản chính"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Được sử dụng cho các cuộc gọi đi"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Cài đặt tùy chọn"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Tên người dùng xác thực"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Tên người dùng được sử dụng để xác thực"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;Chưa được đặt&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Giống như tên người dùng&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Tùy chọn&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Chạm để hiển thị tất cả"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Chạm để ẩn tất cả"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> là bắt buộc và không thể để trống."</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Số cổng phải trong khoảng từ 1000 đến 65534."</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Không có kết nối Internet"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Không có kết nối Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Để thực hiện cuộc gọi qua Internet, hãy kiểm tra kết nối Internet của bạn trước tiên."</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Bạn cần kết nối với mạng Wi-Fi để thực hiện các cuộc gọi qua Internet (sử dụng cài đặt Mạng &amp; không dây)."</string>
+    <string name="no_voip" msgid="8901474054537199865">"Không hỗ trợ gọi qua Internet"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Tự động"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Luôn luôn gửi"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Không hỗ trợ tính năng gọi thoại"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Giờ tôi ko thể nói chuyện. Gì vậy?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tôi sẽ gọi lại ngay."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Tôi sẽ gọi lại sau."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Giờ tôi ko thể nói chuyện. Gọi sau nhé?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Viết trả lời của riêng bạn…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Trả lời nhanh"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Chỉnh sửa trả lời nhanh"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Trả lời nhanh"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Đặt lại ứng dụng mặc định"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Đã gửi tin nhắn tới <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"một"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"hai"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"ba"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"bốn"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"năm"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"sáu"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"bảy"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"tám"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"chín"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"dấu sao"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"không"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"dấu thăng"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"quay số"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"phím lùi"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Đã bật loa ngoài."</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Đã tắt tiếng cuộc gọi."</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Trả lời"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Gửi SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Từ chối"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Rung"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Rung"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Âm thanh"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Âm thanh mặc định (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Nhạc chuông điện thoại"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Rung khi đổ chuông"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Âm chạm bàn phím số"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Tự động hoàn thành bằng bàn phím số"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Nhạc chuông và rung"</string>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..2a2cb77
--- /dev/null
+++ b/res/values-zh-rCN/strings.xml
@@ -0,0 +1,631 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"移动数据"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"手机"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"紧急拨号器"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"电话"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"固定拨号列表"</string>
+    <string name="unknown" msgid="6878797917991465859">"未知"</string>
+    <string name="private_num" msgid="6713286113000232309">"私人号码"</string>
+    <string name="payphone" msgid="1931775086311769314">"公用电话"</string>
+    <string name="onHold" msgid="9035493194749959955">"保持"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"线路忙"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"网络忙"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"无响应，已超时"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"无法连接到服务器"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"该号码无法拨通"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"用户名或密码错误"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"网外呼叫"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"服务器错误，请稍后再试。"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"无信号"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"超出 ACM 限制"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"已关闭天线"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"无 SIM 卡或 SIM 卡出错"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"不在服务区"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"外拨电话受固定拨号限制。"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"您无法在已启用通话限制的情况下拨出电话。"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"所有通话都受访问控制限制。"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"急救或报警电话受访问控制限制。"</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"正常通话受访问控制限制。"</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"号码无效"</string>
+    <string name="confCall" msgid="1904840547188336828">"电话会议"</string>
+    <string name="call_lost" msgid="317670617901479594">"通话已中断。"</string>
+    <string name="ok" msgid="3811371167865772377">"确定"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI 码已启动"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"正在运行 USSD 代码..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI 码已取消"</string>
+    <string name="cancel" msgid="5044513931633602634">"取消"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD 消息的长度必须介于<xliff:g id="MIN_LEN">%d</xliff:g>与<xliff:g id="MAX_LEN">%d</xliff:g>个字符之间，请重试。"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"管理电话会议"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"扬声器"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"手机听筒"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"有线耳机"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"蓝牙"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"发送以下音频？"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"正在发送双音频"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"发送"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"是"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"否"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"将通配符替换为"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"缺少语音信箱号码"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 卡上未存储语音信箱号码。"</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"添加号码"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"您的 SIM 卡已解锁。正在解锁您的手机..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM 网络解锁 PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"解锁"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"关闭"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"正在请求网络解锁..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"网络解锁请求失败。"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"网络解锁成功。"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM 通话设置"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 通话设置"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"接入点名称 (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"网络设置"</string>
+    <string name="voicemail" msgid="8693759337917898954">"语音信箱"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"语音信箱："</string>
+    <string name="networks" msgid="8873030692174541976">"网络运营商"</string>
+    <string name="call_settings" msgid="6112441768261754562">"通话设置"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"其他设置"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"其他仅适用于 GSM 通话的设置"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"其他 CDMA 通话设置"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"仅适用于 CDMA 的其他通话设置"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"网络服务设置"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"本机号码"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"正在加载设置..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"外拨电话时隐藏本机号码"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"外拨电话时显示本机号码"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"外拨电话时按照运营商的默认设置来显示本机号码"</string>
+    <string name="labelCW" msgid="6120513814915920200">"来电等待"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"在通话期间，通知我有其他来电"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"在通话期间，通知我有其他来电"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"来电转接设置"</string>
+    <string name="labelCF" msgid="2574386948026924737">"来电转接"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"始终转接"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"始终使用此号码"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"转接所有来电"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"将所有来电转接到 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"未提供电话号码"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"已停用"</string>
+    <string name="labelCFB" msgid="218938523102207587">"占线时转接"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"占线时的转接号码"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"转接到 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"已停用"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"您的运营商不支持在手机占线时停用来电转接功能。"</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"无人接听时转接"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"无人接听时的转接号码"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"转接到 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"已停用"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"您的运营商不支持在手机无人接听时停用来电转接功能。"</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"无法接通时转接"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"无法接通时的转接号码"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"转接到 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"已停用"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"您的运营商不支持在手机无法接通时停用来电转接功能。"</string>
+    <string name="updating_title" msgid="6146755386174019046">"通话设置"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"通话设置出错"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"正在读取设置..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"正在更新设置..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"正在恢复设置..."</string>
+    <string name="response_error" msgid="6674110501330139405">"网络响应异常。"</string>
+    <string name="exception_error" msgid="7027667130619518211">"网络或 SIM 卡出错。"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"拨号应用的固定拨号设置已启用。因此，部分与拨号相关的功能将不能正常使用。"</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"请先开启无线装置，然后再查看这些设置。"</string>
+    <string name="close_dialog" msgid="2365884406356986917">"确定"</string>
+    <string name="enable" msgid="1059008390636773574">"启用"</string>
+    <string name="disable" msgid="7274240979164762320">"禁用"</string>
+    <string name="change_num" msgid="239476305819844391">"更新"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"网络默认设置"</item>
+    <item msgid="7876195870037833661">"隐藏号码"</item>
+    <item msgid="1108394741608734023">"显示号码"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"语音信箱号码已更改。"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"无法更改语音信箱号码。"\n"如果此问题仍然存在，请与您的运营商联系。"</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"无法更改转接号码。"\n"如果此问题仍然存在，请与您的运营商联系。"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"无法检索和保存当前转接号码设置。"\n"仍然要切换到新的服务提供商吗？"</string>
+    <string name="no_change" msgid="3186040086622435212">"未做任何更改。"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"选择语音信箱服务"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"我的运营商"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"移动网络设置"</string>
+    <string name="label_available" msgid="1181658289009300430">"可用网络"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"正在搜索..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"未找到网络。"</string>
+    <string name="search_networks" msgid="1601136049300882441">"搜索网络"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"搜索网络时出错。"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"正在<xliff:g id="NETWORK">%s</xliff:g>上注册..."</string>
+    <string name="not_allowed" msgid="5613353860205691579">"您的 SIM 卡不允许连接到此网络。"</string>
+    <string name="connect_later" msgid="2308119155752343975">"目前无法连接到此网络，请稍后重试。"</string>
+    <string name="registration_done" msgid="495135664535876612">"已在网络上注册。"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"选择网络运营商"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"搜索所有可用网络"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"自动选择"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"自动选择首选网络"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"自动注册..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"网络模式"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"更改网络运行方式"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"首选网络模式"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"首选网络模式：首选 WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"首选网络模式：仅限 GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"首选网络模式：仅限 WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"首选网络模式：GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"首选网络模式：CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"首选网络模式：CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"首选网络模式：仅限 CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"首选网络模式：仅限 EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"首选网络模式：CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"首选网络模式：LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"首选网络模式：GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"首选网络模式：CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"首选网络模式：通用"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"首选网络模式：LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"通用"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"仅 EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA，无 EvDo 功能"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo 自动选择"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA 自动选择"</item>
+    <item msgid="7913148405605373434">"仅 WCDMA"</item>
+    <item msgid="1524224863879435516">"仅 GSM"</item>
+    <item msgid="3817924849415716259">"首选 GSM/WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"启用数据网络"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"允许通过移动网络存取数据"</string>
+    <string name="roaming" msgid="8871412572928323707">"移动数据网络漫游"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"漫游时连接到移动数据网络服务"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"漫游时连接到移动数据网络服务"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"移动数据网络连接已断开，因为您已离开本地网络并关闭了移动数据网络漫游功能。"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"是否要允许移动数据网络漫游？这可能产生大量漫游费！"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 选项"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA 选项"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"流量使用情况"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"当前时段使用的数据"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"数据使用时段"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"数据传输速率政策"</string>
+    <string name="throttle_help" msgid="243651091785169900">"了解详情"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"时段上限为 <xliff:g id="USED_2">%3$s</xliff:g>，当前值为 <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"\n"下一个时段从 <xliff:g id="USED_3">%4$d</xliff:g> 天后 (<xliff:g id="USED_4">%5$s</xliff:g>) 开始"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"时段上限为 <xliff:g id="USED_2">%3$s</xliff:g>，当前值为 <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"已超过<xliff:g id="USED_0">%1$s</xliff:g>速率上限"\n"数据传输速率已降至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s。"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"此周期已过去 <xliff:g id="USED_0">%1$d</xliff:g>٪"\n"下一个时段将从 <xliff:g id="USED_1">%2$d</xliff:g> 天后 (<xliff:g id="USED_2">%3$s</xliff:g>) 开始"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"如果超过了流量上限，则数据传输速率会降至 <xliff:g id="USED">%1$d</xliff:g> Kb/s"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"有关您运营商的移动网络数据使用政策的详情"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"小区广播短信"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"小区广播短信"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"已启用小区广播短信"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"已停用小区广播短信"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"小区广播短信设置"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"紧急广播"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"已启用紧急广播"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"已停用紧急广播"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"管理"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"已启用管理"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"已停用管理"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"维护"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"已启用维护"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"已停用维护"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"一般新闻"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"商业财经新闻"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"体育新闻"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"娱乐新闻"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"本地"</string>
+    <string name="local_enable" msgid="6370463247609136359">"已启用本地新闻"</string>
+    <string name="local_disable" msgid="4405691986943795798">"已停用本地新闻"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"区域"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"已启用地方新闻"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"已停用地方新闻"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"国内"</string>
+    <string name="national_enable" msgid="1172443648912246952">"已启用国内新闻"</string>
+    <string name="national_disable" msgid="326018148178601166">"已停用国内新闻"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"国际"</string>
+    <string name="international_enable" msgid="5855356769925044927">"已启用国际新闻"</string>
+    <string name="international_disable" msgid="2850648591041088931">"已停用国际新闻"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"语言"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"选择新闻语言"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"英语"</item>
+    <item msgid="1151988412809572526">"法语"</item>
+    <item msgid="577840534704312665">"西班牙语"</item>
+    <item msgid="8385712091143148180">"日语"</item>
+    <item msgid="1858401628368130638">"韩语"</item>
+    <item msgid="1933212028684529632">"中文"</item>
+    <item msgid="1908428006803639064">"希伯来语"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"语言"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"本地天气"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"已启用本地天气预报"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"已停用本地天气预报"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"区域路况报告"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"已启用区域路况报导"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"已停用区域路况报导"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"本地机场航班时刻表"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"已启用本地机场航班时刻表"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"已停用本地机场航班时刻表"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"餐馆"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"已启用餐馆信息"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"已停用餐馆信息"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"房屋租赁信息"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"已启用房屋租赁信息"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"已停用房屋租赁信息"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"零售目录"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"已启用零售店名录"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"已停用零售店名录"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"广告"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"已启用广告"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"已停用广告"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"股票报价"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"已启用股票报价"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"已停用股票价格"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"招聘信息"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"已启用招聘信息"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"已停用招聘信息"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"医疗、保健和医院"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"医疗、保健和医院信息已启用"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"医疗、保健和医院信息已停用"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"技术新闻"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"已启用技术新闻"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"已停用技术新闻"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"多类别"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"已启用多类别"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"已停用多类别"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"仅使用 2G 网络"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"省电"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"系统选择"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"更改 CDMA 漫游模式"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"系统选择"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"仅本地系统"</item>
+    <item msgid="1205664026446156265">"自动"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA 订阅"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"在 RUIM/SIM 和 NV 之间进行切换"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"订阅"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"激活设备"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"设置数据服务"</string>
+    <string name="fdn" msgid="7878832555095183202">"固定拨号"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"固定拨号列表"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"激活固定拨号"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"已启用固定拨号"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"已停用固定拨号"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"启用固定拨号"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"禁用固定拨号"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"更改 PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"禁用固定拨号"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"启用固定拨号"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"管理固定拨号"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"更改为访问固定拨号设置的 PIN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"管理手机号码列表"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"语音隐私权"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"启用增强型隐秘模式"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY 模式"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"设置 TTY 模式"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"自动重拨"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"启用自动重拨模式"</string>
+    <string name="menu_add" msgid="1882023737425114762">"添加联系人"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"编辑联系人"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"删除联系人"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"键入 PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"名称"</string>
+    <string name="number" msgid="7905950798349903858">"号码"</string>
+    <string name="save" msgid="4094274636321939086">"保存"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"添加固定拨号联系人"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"正在添加固定拨号联系人..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"已添加固定拨号联系人。"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"编辑固定拨号联系人"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"正在更新固定拨号联系人..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"已更新固定拨号联系人。"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"删除固定拨号联系人"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"正在删除固定拨号联系人..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"已删除固定拨号联系人。"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"系统未更新 FDN，因为键入的 PIN 码有误。"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"系统未更新 FDN，因为号码不能超过 20 位。"</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN 未更新。PIN2 有误，或电话号码遭拒。"</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"正在从 SIM 卡读取..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"SIM 卡上无联系人。"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"选择要导入的联系人"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"要从 SIM 卡导入联系人，请先关闭飞行模式。"</string>
+    <string name="enable_pin" msgid="5422767284133234860">"启用/禁用 SIM 卡 PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"更改 SIM 卡 PIN"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM 卡 PIN："</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"旧 PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"新 PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"确认新 PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"键入的旧 PIN 有误，请重试。"</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"键入的 PIN 不一致，请重试。"</string>
+    <string name="invalidPin" msgid="5981171102258684792">"输入 4 到 8 位数字的 PIN。"</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"停用 SIM 卡 PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"启用 SIM 卡 PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"请稍候..."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"SIM 卡 PIN 已启用。"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"SIM 卡 PIN 已停用。"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"键入的 PIN 有误。"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"已成功更改 SIM 卡 PIN。"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"密码不正确，SIM 已锁定！需要 PUK2。"</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"旧 PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"新 PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"确认新 PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"键入的 PUK2 有误，请重试。"</string>
+    <string name="badPin2" msgid="1041576234483629991">"您键入的旧 PIN2 有误，请重试。"</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"键入的 PIN2 不一致，请重试。"</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"输入 4 到 8 位数字的 PIN2。"</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"输入 8 位数字的 PUK2。"</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"已成功更改 PIN2。"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"输入 PUK2 码"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"密码有误，请更改 PIN2 并重试。"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"密码有误，SIM 卡已锁定。需要 PUK2。"</string>
+    <string name="doneButton" msgid="2859593360997984240">"完成"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"电话会议<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"语音信箱号码"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"正在拨号"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"正在重拨"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"电话会议"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"来电"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"通话结束"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"保持"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"正在挂断"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"正在通话"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"我的手机号码：<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"正在拨号"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"未接电话"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"未接电话"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 个未接电话"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"来自<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>的未接电话"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"当前通话"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"保持"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"来电"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"新语音邮件"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"新语音邮件 (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"拨打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"语音信箱号码未知"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"无服务"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"所选网络（<xliff:g id="OPERATOR_NAME">%s</xliff:g>）不可用"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"挂断"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"回拨"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"短信"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"要进行呼叫，请先关闭飞行模式。"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"尚未注册网络。"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"无法访问移动网络"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"拨号未送出，因为输入的号码无效。"</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"拨号未送出。"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"正在启动 MMI 序列..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"不支持此服务。"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"无法切换通话。"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"无法分离通话。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"无法转移呼叫。"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"无法进行电话会议。"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"无法拒绝呼叫。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"无法挂断。"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"互联网电话"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"紧急呼救"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"正在打开天线..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"不在服务区，正在重试..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"电话未拨出，<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是紧急呼救号码！"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"电话未拨出，请拨打紧急呼救电话！"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"使用键盘拨号"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"等待"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"挂断"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"拨号键盘"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"静音"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"添加通话"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"合并通话"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"交换"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"管理通话"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"管理会议"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"音频"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"视频通话"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"导入"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"全部导入"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"正在导入 SIM 联系人"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"从联系人导入"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"助听器"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"启用助听器兼容模式"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY 已停用"</item>
+    <item msgid="3971695875449640648">"TTY 已满"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF 音"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"设置 DTMF 音长度"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"正常"</item>
+    <item msgid="2883365539347850535">"长"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"网络讯息"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"激活您的手机"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"需要拨打特别号码才能激活您的手机服务。"\n\n"在按下“激活”后，按照语音提示激活您的手机。"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"略过激活步骤？"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"如果您略过激活步骤，就无法拨打电话或连接到移动数据网络（不过您可以连接到 WLAN 网络）。如果您不激活手机，每次开机时都会收到激活提示。"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"跳过"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"激活"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"手机已激活。"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"激活时遇到问题"</string>
+    <string name="ota_listen" msgid="162923839877584937">"按照语音提示操作，直至提示手机已激活。"</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"免提"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"正在向您的手机中写入程序，请稍候。"</string>
+    <string name="ota_failure" msgid="4311299546379674378">"写入程序失败"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"您的手机已激活。最多 15 分钟即可开始使用服务。"</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"您的手机未激活。"\n"您可能需要找一个手机信号更好的位置（窗户附近或室外）。"\n\n"请重试或致电客户服务小组寻求更多解决方法。"</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"SPC 故障太多"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"上一步"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"重试"</string>
+    <string name="ota_next" msgid="3904945374358235910">"下一步"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"已进入紧急回拨模式"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"紧急回拨模式"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"数据连接已停用"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"持续 <xliff:g id="COUNT">%s</xliff:g> 分钟没有数据连接"</item>
+    <item quantity="other" msgid="3122217344579273583">"持续 <xliff:g id="COUNT">%s</xliff:g> 分钟没有数据连接"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"手机在 <xliff:g id="COUNT">%s</xliff:g> 分钟内都会处于紧急回拨模式下，此模式下无法使用需要联网的应用。您要立即退出吗？"</item>
+    <item quantity="other" msgid="8617116564023933114">"手机在 <xliff:g id="COUNT">%s</xliff:g> 分钟内都会处于紧急回拨模式下，此模式下无法使用需要联网的应用。要立即退出吗？"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"无法在紧急回拨模式下执行所选操作，而手机在 <xliff:g id="COUNT">%s</xliff:g> 分钟内都会处于此模式下。要立即退出吗？"</item>
+    <item quantity="other" msgid="6115622137771382224">"无法在紧急回拨模式下执行所选操作，而手机在 <xliff:g id="COUNT">%s</xliff:g> 分钟内都会处于此模式下。要立即退出吗？"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"进行紧急呼救时无法执行所选操作。"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"正在退出紧急回拨模式"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"是"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"否"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"关闭"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"服务"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"设置"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;未设置&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"其他通话设置"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"联系人照片"</string>
+    <string name="goPrivate" msgid="865837794424530980">"私聊"</string>
+    <string name="selectContact" msgid="781975788478987237">"选择联系人"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"互联网通话设置"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"互联网电话 (SIP) 帐户"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"帐户"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"接听来电"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"会缩短电池待机时间"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"使用互联网电话"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"使用互联网通话（仅限 WLAN）"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"数据网络接通时适用于所有通话"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"仅适用于互联网通话"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"每次呼叫时询问"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"适用于所有通话"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"拨打电话"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"使用互联网电话帐户："</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"总是用于拨打互联网电话"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"您可以在“手机”&gt;“设置”&gt;“互联网呼叫设置”&gt;“帐户”屏幕中更改默认使用的互联网呼叫帐户。"</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"手机拨号"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"互联网电话"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"没有互联网电话帐户"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"此手机上没有互联网呼叫帐户，要立即添加一个吗？"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"添加"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"添加帐户"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"删除帐户"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP 帐户"</string>
+    <string name="saving_account" msgid="52903398217017954">"正在保存帐户..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"正在删除帐户..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"保存"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"舍弃"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"关闭个人资料"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"确定"</string>
+    <string name="close_profile" msgid="6886968271423155284">"关闭"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"主帐户。<xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"正在检查状态..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"正在注册..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"仍在尝试..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"不接听电话。"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"由于未连接至互联网，帐户注册已停止。"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"由于未连接到 WLAN 网络，帐户注册已停止。"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"帐户注册失败。"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"接听电话。"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"帐户注册失败：（<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>）；系统会在稍后重试"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"帐户注册失败：用户名或密码有误。"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"帐户注册失败：请检查服务器名称。"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"“<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>”应用当前正在使用此帐户。"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP 帐户详情"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP 帐户详情"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"服务器"</string>
+    <string name="username_title" msgid="2479375923477682328">"用户名"</string>
+    <string name="password_title" msgid="3323555249068171531">"密码"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"显示名称"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"出站代理地址"</string>
+    <string name="port_title" msgid="5952939408078626657">"端口号"</string>
+    <string name="transport_title" msgid="8253139511847746640">"传输类型"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"发送持续连接消息"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"设置为主帐户"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"用于外拨电话"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"可选设置"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"身份验证用户名"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"用于身份验证的用户名"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;未设置&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;与用户名相同&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;可选&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ 触摸可全部显示"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ 触摸可全部隐藏"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"“<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>”属于必填字段，不能留空。"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"端口号应在 1000 与 655534 之间。"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"无互联网连接"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"无 WLAN 连接"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"要拨打互联网电话，请先检查互联网连接情况。"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"您需要连接到 WLAN 网络才能使用互联网电话（使用“无线与网络”设置）。"</string>
+    <string name="no_voip" msgid="8901474054537199865">"不支持互联网电话"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"自动"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"一律发送"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"不支持语音呼叫"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"现在无法接听。有什么事吗？"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我马上会打给你。"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我稍后会再打给你。"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"现在无法接听。能稍后再打给我吗？"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"自行撰写回复…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"快速回复"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"修改快速回复"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"快速回复"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"重置默认应用"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"讯息已发送至 <xliff:g id="PHONE_NUMBER">%s</xliff:g>。"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"一"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"二"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"三"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"四"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"五"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"六"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"七"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"八"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"九"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"星标"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"零"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"英镑"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"拨号"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Backspace 键"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"扬声器已启用。"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"通话已静音。"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"接听"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"发送短信"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"拒绝"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"振动"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"振动"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"提示音"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"默认提示音 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"手机铃声"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"响铃时振动"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"拨号键盘触摸音效"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"拨号键盘自动补全"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"铃声和振动"</string>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..59b6dec
--- /dev/null
+++ b/res/values-zh-rTW/strings.xml
@@ -0,0 +1,637 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"行動數據"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"電話"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"緊急撥號"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"電話"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"固定撥號清單"</string>
+    <string name="unknown" msgid="6878797917991465859">"不明"</string>
+    <string name="private_num" msgid="6713286113000232309">"私人號碼"</string>
+    <string name="payphone" msgid="1931775086311769314">"公共電話"</string>
+    <string name="onHold" msgid="9035493194749959955">"通話保留"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"線路忙碌中"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"網路忙碌"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"沒有回應，已逾時"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"無法連上伺服器"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"無法撥通的號碼"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"使用者名稱或密碼有誤"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"無法進行網外撥號"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"伺服器錯誤，請稍後再試。"</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"沒有訊號"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"已達 ACM 限制"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"無線通訊關閉"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"沒有 SIM 卡或 SIM 卡發生錯誤"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"超出服務範圍"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"撥出受固定撥號限制。"</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"通話限制啟用時無法撥號。"</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"所有通話都受存取控制限制。"</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"緊急通話受存取控制限制。"</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"正常通話受存取控制限制。"</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"號碼無效"</string>
+    <string name="confCall" msgid="1904840547188336828">"多方通話"</string>
+    <string name="call_lost" msgid="317670617901479594">"電話已斷線。"</string>
+    <string name="ok" msgid="3811371167865772377">"確定"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI 碼開始執行"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"正在執行 USSD 碼…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI 碼已取消"</string>
+    <string name="cancel" msgid="5044513931633602634">"取消"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD 訊息字元數必須在 <xliff:g id="MIN_LEN">%d</xliff:g> 到 <xliff:g id="MAX_LEN">%d</xliff:g> 之間，請再試一次。"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"管理會議通話"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"喇叭"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"手機聽筒"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"有線頭戴式耳機"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"藍牙"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"傳送此鈴聲？"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"正在傳送信號音"\n</string>
+    <string name="send_button" msgid="4106860097497818751">"傳送"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"是"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"否"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"將萬用字元改成"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"遺失語音信箱號碼"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 卡中未儲存語音信箱號碼。"</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"新增號碼"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"您的 SIM 卡已解鎖。正在解鎖手機中…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"SIM 網路解鎖 PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"解除鎖定"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"關閉"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"正在要求解除網路鎖定…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"網路解鎖失敗。"</string>
+    <string name="unlock_success" msgid="6770085622238180152">"網路解鎖成功。"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"GSM 通話設定"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 通話設定"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"存取點名稱 (APN)"</string>
+    <string name="settings_label" msgid="3876743539816984008">"網路設定"</string>
+    <string name="voicemail" msgid="8693759337917898954">"語音信箱"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"語音信箱："</string>
+    <string name="networks" msgid="8873030692174541976">"電信業者"</string>
+    <string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"其他設定"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"其他 GSM 僅限通話設定"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"其他 CDMA 通話設定"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"其他 CDMA 僅限通話設定"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"網路服務設定"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"本機號碼"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"正在載入設定…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"隱藏本機號碼"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"撥出電話時顯示本機號碼"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"使用預設值，在撥出電話時顯示本機號碼"</string>
+    <string name="labelCW" msgid="6120513814915920200">"來電待接"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"通話時如有來電請通知我"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"通話時如有來電請通知我"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"來電轉接設定"</string>
+    <string name="labelCF" msgid="2574386948026924737">"來電轉接"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"永遠轉接"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"永遠使用此號碼"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"轉接所有來電"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"將所有來電轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"號碼無法使用"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"停用"</string>
+    <string name="labelCFB" msgid="218938523102207587">"忙線時轉接"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"忙線時轉接號碼"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"停用"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"您的行動通訊業者不支援手機通話時停用轉接功能。"</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"未接聽時轉接"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"未接聽時的轉接號碼"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"停用"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"您的行動通訊業者不支援手機未接聽時停用轉接功能。"</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"未能接通時轉接"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"無法接通時的轉接號碼"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"停用"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"您的行動通訊業者不支援手機無收訊時停用轉接功能。"</string>
+    <string name="updating_title" msgid="6146755386174019046">"通話設定"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"通話設定錯誤"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"正在讀取設定…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"更新設定中…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"正在還原設定…"</string>
+    <string name="response_error" msgid="6674110501330139405">"網路傳回非預期回應。"</string>
+    <string name="exception_error" msgid="7027667130619518211">"網路或 SIM 卡錯誤。"</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"您的「手機」應用程式已開啟「固定撥號」設定，導致部分撥號相關功能無法正常運作。"</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"查看這些設定前，請先開啟無線電。"</string>
+    <string name="close_dialog" msgid="2365884406356986917">"確定"</string>
+    <string name="enable" msgid="1059008390636773574">"啟用"</string>
+    <string name="disable" msgid="7274240979164762320">"停用"</string>
+    <string name="change_num" msgid="239476305819844391">"更新"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"網路預設值"</item>
+    <item msgid="7876195870037833661">"隱藏號碼"</item>
+    <item msgid="1108394741608734023">"顯示號碼"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"語音信箱號碼已變更。"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"無法變更語音信箱號碼。"\n"如果問題持續發生，請與您的行動通訊業者聯絡。"</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"無法變更轉接號碼。"\n"如果問題持續發生，請與您的行動通訊業者聯絡。"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"無法擷取及儲存目前的轉接號碼設定。"\n"您仍要轉換至新的供應商嗎？"</string>
+    <string name="no_change" msgid="3186040086622435212">"未變更設定。"</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"選擇語音信箱服務"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"我的服務業者"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"行動網路設定"</string>
+    <string name="label_available" msgid="1181658289009300430">"可用的網路"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"搜尋中…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"找不到網路。"</string>
+    <string name="search_networks" msgid="1601136049300882441">"搜尋網路"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"搜尋網路時發生錯誤。"</string>
+    <string name="register_on_network" msgid="9055203954040805084">"正在註冊 <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"您的 SIM 卡無法連上這個網路。"</string>
+    <string name="connect_later" msgid="2308119155752343975">"目前無法連上這個網路，請稍後再試。"</string>
+    <string name="registration_done" msgid="495135664535876612">"註冊網路成功。"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"選擇行動網路業者"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"搜尋所有可用的網路"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"自動選擇"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"自動選擇慣用網路"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"自動註冊…"</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"網路模式"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"變更網路操作模式"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"優先網路模式"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"慣用網路模式：偏好 WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"慣用網路模式：僅限 GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"慣用網路模式：僅限 WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"慣用網路模式：GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"慣用網路模式：CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"慣用網路模式：CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"慣用網路模式：僅限 CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"慣用網路模式：僅限 EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"慣用網路模式：CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"慣用網路模式：LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"慣用網路模式：GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"慣用網路模式：CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"慣用網路模式：通用"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"慣用網路模式：LTE/WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"通用"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"僅限 EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA (不具 EvDo)"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo 自動切換"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA 自動切換"</item>
+    <item msgid="7913148405605373434">"僅限 WCDMA"</item>
+    <item msgid="1524224863879435516">"僅限 GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA 優先"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"已啟用資料"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"啟用行動數據服務網路"</string>
+    <string name="roaming" msgid="8871412572928323707">"漫遊服務"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"漫遊時連線到資料傳輸服務"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"漫遊時連線到資料傳輸服務"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"您已離開國內網路涵蓋範圍，且已關閉數據傳輸漫遊服務，因此數據連線已中斷。"</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"要允許漫遊服務嗎？您可能會需要支付龐大漫遊費用！"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 選項"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA 選項"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"資料用量"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"目前週期已使用的資料量"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"資料使用量週期"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"資料傳輸速率政策"</string>
+    <string name="throttle_help" msgid="243651091785169900">"瞭解更多資訊"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
+    <skip />
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"已達 <xliff:g id="USED_0">%1$s</xliff:g> 上限"\n"資料速率降低至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"若已達資料用量上限，資料傳輸速率會降低至 <xliff:g id="USED">%1$d</xliff:g> Kb/秒"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"更多有關行動業者行動網路資料使用政策的資訊"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"區域廣播簡訊"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"區域廣播簡訊"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"已啟用區域廣播簡訊"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"已停用區域廣播簡訊"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"區域廣播簡訊設定"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"緊急廣播"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"已啟用緊急廣播"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"已停用緊急廣播"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"管理資訊"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"已啟用管理資訊"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"已停用管理資訊"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"維護資訊"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"啟用維護資訊"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"已停用維護資訊"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"一般新聞"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"財經新聞"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"運動新聞"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"娛樂新聞"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"當地"</string>
+    <string name="local_enable" msgid="6370463247609136359">"已啟用當地新聞"</string>
+    <string name="local_disable" msgid="4405691986943795798">"已停用當地新聞"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"區域"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"已啟用地區新聞"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"已停用地區新聞"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"國內"</string>
+    <string name="national_enable" msgid="1172443648912246952">"已啟用國內新聞"</string>
+    <string name="national_disable" msgid="326018148178601166">"已停用國內新聞"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"國際"</string>
+    <string name="international_enable" msgid="5855356769925044927">"已啟用國際新聞"</string>
+    <string name="international_disable" msgid="2850648591041088931">"已停用國際新聞"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"語言"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"選取新聞語言"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"英文"</item>
+    <item msgid="1151988412809572526">"法文"</item>
+    <item msgid="577840534704312665">"西班牙文"</item>
+    <item msgid="8385712091143148180">"日文"</item>
+    <item msgid="1858401628368130638">"韓文"</item>
+    <item msgid="1933212028684529632">"中文"</item>
+    <item msgid="1908428006803639064">"希伯來文"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"語言"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"當地天氣預報"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"已啟用當地天氣預報"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"已停用當地天氣預報"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"區域路況報告"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"已啟用區域路況報告"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"已停用區域路況報告"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"當地機場航班時刻表"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"已啟用當地機場航班時刻表"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"已停用當地機場航班時刻表"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"餐廳資訊"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"已啟用餐廳資訊"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"已停用餐廳資訊"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"住宿資訊"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"已啟用住宿資訊"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"已停用住宿資訊"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"零售目錄"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"已啟用零售目錄"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"已停用零售目錄"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"廣告資訊"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"已啟用廣告"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"停用廣告資訊"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"股票報價"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"已啟用股票報價"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"已停用股票報價"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"就業資訊"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"已啟用就業資訊"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"已停用就業資訊"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"醫療、保健及醫院資訊"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"已啟用醫療、保健及醫院資訊"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"已停用醫療、保健及醫院資訊"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"科技新聞"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"已啟用科技新聞"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"停用科技新聞"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"多類別資訊"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"已啟用多類別資訊"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"已停用多類別資訊"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"只使用 2G 網路"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"節省電力"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"選取系統"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"變更 CDMA 漫遊模式"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"選取系統"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"僅限住家電話"</item>
+    <item msgid="1205664026446156265">"自動"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA 訂閱"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"在 RUIM/SIM 和 NV 之間切換"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"訂閱"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"啟動裝置"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"設定數據傳輸服務"</string>
+    <string name="fdn" msgid="7878832555095183202">"固定撥號"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"固定撥號清單"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"啟用固定撥號"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"已啟用 [固定撥號]"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"已停用固定撥號"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"啟用固定撥號"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"停用固定撥號"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"更改 PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"停用固定撥號"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"啟用固定撥號"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"管理固定撥號"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"變更固定撥號功能存取密碼"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"管理電話號碼清單"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"語音加密保護"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"已啟用加強型隱私保護模式"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY 模式"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"設定 TTY 模式"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"自動重試"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"啟用自動重試模式"</string>
+    <string name="menu_add" msgid="1882023737425114762">"新增聯絡人"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"編輯聯絡人"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"刪除聯絡人"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"輸入 PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"名稱"</string>
+    <string name="number" msgid="7905950798349903858">"號碼"</string>
+    <string name="save" msgid="4094274636321939086">"儲存"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"新增固定撥號"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"正在新增固定撥號…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"已新增固定撥號。"</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"編輯固定撥號"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"正在更新固定撥號…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"固定撥號已更新。"</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"刪除固定撥號"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"正在刪除固定撥號…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"已刪除固定撥號。"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"您所輸入的 PIN 不正確，因此未更新 FDN。"</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"號碼超過 20 位數的上限，因此未更新 FDN。"</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"未更新 FDN。可能是因為 PIN2 碼不正確或電話號碼遭拒。"</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"正在從 SIM 卡讀取…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"您的 SIM 卡上沒有聯絡人。"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"選取要匯入的聯絡人"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"如要從 SIM 卡匯入聯絡人，請先關閉「飛行」模式。"</string>
+    <string name="enable_pin" msgid="5422767284133234860">"啟用/停用 SIM PIN"</string>
+    <string name="change_pin" msgid="9174186126330785343">"變更 SIM PIN"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN："</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"舊的 PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"新的 PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"確認新的 PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"您所輸入的舊 PIN 不正確，請再試一次。"</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"您所輸入的 PIN 不符，請再試一次。"</string>
+    <string name="invalidPin" msgid="5981171102258684792">"輸入 4 至 8 個數字的 PIN。"</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"停用 SIM PIN"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"啟用 SIM PIN"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"請稍候…"</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"已啟用 SIM PIN。"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"已停用 SIM PIN。"</string>
+    <string name="pin_failed" msgid="2298841192582192277">"您所輸入的 PIN 不正確。"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"已成功變更 SIM PIN。"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"密碼錯誤，SIM 已鎖定！需要 PUK2 解鎖。"</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"舊的 PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"新的 PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"確認新的 PIN2"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"您所輸入的 PUK2 不正確，請再試一次。"</string>
+    <string name="badPin2" msgid="1041576234483629991">"您所輸入的舊 PIN2 不正確，請再試一次。"</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"您所輸入的 PIN2 不符，請再試一次。"</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"輸入 4 至 8 個數字的 PIN2。"</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"輸入 8 個數字的 PUK2。"</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"已成功變更 PIN2。"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"輸入 PUK2 碼"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"密碼不正確，請變更 PIN2 後重試。"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"密碼不正確，SIM 已鎖住！請輸入 PUK2。"</string>
+    <string name="doneButton" msgid="2859593360997984240">"完成"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"多方通話<xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"語音信箱號碼"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"撥號中"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"重試中"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"多方通話"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"來電"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"通話結束"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"通話保留"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"掛斷電話"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"通話中"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"我的電話號碼：<xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"撥號中"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"未接來電"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"未接來電"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> 通未接來電"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"來自 <xliff:g id="MISSED_CALL_FROM">%s</xliff:g> 的未接來電"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"通話中"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"通話保留"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"來電"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"新留言"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"新留言 (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"撥打 <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"無語音信箱號碼"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"沒有服務"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"您所選取的網路 (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) 無法使用"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"掛斷"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"回撥"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"簡訊"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"撥號前，請先關閉飛航模式。"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"尚未註冊網路。"</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"無法使用 Google 行動服務網路。"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"撥號未送出，未輸入正確號碼。"</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"撥號未送出。"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"開始 MMI 序列…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"不支援的服務。"</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"無法切換通話。"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"無法分隔來電。"</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"無法轉接來電。"</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"無法進行多方通話。"</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"無法拒絕來電。"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"無法釋出通話。"</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"網路電話"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急電話"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"開啟無線通訊中…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"超出服務範圍，重試中…"</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"未送出通話要求，<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急電話號碼！"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"未送出通話要求，請撥打緊急電話號碼！"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"使用鍵盤撥號"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"保留"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"結束"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"撥號鍵盤"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"靜音"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"新增通話"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"合併通話"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"切換"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"管理通話"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"管理會議"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"音訊"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"視訊通話"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"匯入"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"全部匯入"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"匯入 SIM 聯絡人"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"從聯絡人匯入"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"助聽器"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"開啟助聽器相容功能"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"關閉 TTY"</item>
+    <item msgid="3971695875449640648">"TTY 全能"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF 信號音"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"設定 DTMF 信號音長度"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"適中"</item>
+    <item msgid="2883365539347850535">"長音"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"網路訊息"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"啟用您的手機"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"如要啟用手機服務，您必須撥打一通特殊電話。"\n\n"按下 [啟用] 後，請聽取手機啟用說明。"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"是否略過啟用？"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"如果您不啟用手機，就無法打電話或連線至行動服務資料網路 (透過這個資料網路，可連線至 Wi-Fi 網路)。每次一開機，系統就會詢問您是否要啟用手機，直到您啟用為止。"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"略過"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"啟用"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"手機已啟用。"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"啟用失敗"</string>
+    <string name="ota_listen" msgid="162923839877584937">"依照語音指示進行，直到您聽到啟用完成為止。"</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"擴音"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"手機正在進行程式化設定，請稍候。"</string>
+    <string name="ota_failure" msgid="4311299546379674378">"程式化失敗"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"您的手機已啟用；系統最多可能需要 15 分鐘，才會開始提供服務。"</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"您的手機未啟用。"\n"建議您移往收訊較佳處 (例如窗邊或戶外)。"\n\n"請再試一次，或向客戶服務中心洽詢其他啟用方式。"</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"過度調整 SPC 錯誤"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"返回"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"再試一次"</string>
+    <string name="ota_next" msgid="3904945374358235910">"下一頁"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"已進入緊急回撥模式"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"緊急回撥模式"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"資料連線已停用"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"接下來的 <xliff:g id="COUNT">%s</xliff:g> 分鐘內沒有資料連線"</item>
+    <item quantity="other" msgid="3122217344579273583">"接下來將出現 <xliff:g id="COUNT">%s</xliff:g> 分鐘的資料斷線狀態"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"手機在接下來的 <xliff:g id="COUNT">%s</xliff:g> 分鐘都將處於緊急回撥模式。在這個模式中，所有使用數據連線的應用程式皆無法運作。您要立即退出嗎？"</item>
+    <item quantity="other" msgid="8617116564023933114">"手機在接下來的 <xliff:g id="COUNT">%s</xliff:g> 分鐘都將處於緊急回撥模式。在這個模式中，所有使用數據連線的應用程式皆無法運作。您要立即退出嗎？"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"緊急回撥模式不支援您要執行的操作。手機在接下來的 <xliff:g id="COUNT">%s</xliff:g> 分鐘都將處於這個模式，您要立即退出嗎？"</item>
+    <item quantity="other" msgid="6115622137771382224">"緊急回撥模式不支援您要執行的操作。手機在接下來的 <xliff:g id="COUNT">%s</xliff:g> 分鐘都將處於這個模式，您要立即退出嗎？"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"緊急通話模式不支援您要執行的操作。"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"正在退出緊急回撥模式"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"是"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"否"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"關閉"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"服務"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"設定"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;未設定&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"其他通話設定"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"聯絡人相片"</string>
+    <string name="goPrivate" msgid="865837794424530980">"私人通話"</string>
+    <string name="selectContact" msgid="781975788478987237">"選取聯絡人"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"網路電話設定"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"網路電話 (SIP) 帳戶"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"帳戶"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"接聽來電"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"會減少電池電量"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"使用網路電話"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"撥打網路電話 (僅限 Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"數據網路可用時，適用於所有通話"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"僅適用於網路電話"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"每次通話都詢問"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"適用於所有通話"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"撥打電話"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"使用網路電話帳戶："</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"一律用於撥打網路電話"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"如要變更預設使用的網路電話帳戶，請前往 [手機] &gt; [設定] &gt; [網路電話設定] &gt; [帳戶] 畫面調整設定。"</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"手機電話"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"網路電話"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"沒有網路電話帳戶"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"這支手機沒有設定任何網路電話帳戶，您要立即新增帳戶嗎？"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"新增"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"新增帳戶"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"移除帳戶"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"SIP 帳戶"</string>
+    <string name="saving_account" msgid="52903398217017954">"正在儲存帳戶…"</string>
+    <string name="removing_account" msgid="7183999896088628100">"正在移除帳戶…"</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"儲存"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"捨棄"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"關閉設定檔"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"確定"</string>
+    <string name="close_profile" msgid="6886968271423155284">"關閉"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"主要帳戶。<xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"正在檢查狀態..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"註冊中…"</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"仍在嘗試中…"</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"無法接聽電話。"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"因沒有網際網路連線，帳戶的註冊作業已停止。"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"找不到 Wi-Fi 連線，帳戶註冊作業已中止。"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"帳戶註冊失敗。"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"可以接聽電話。"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"帳戶註冊失敗：(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)；將於稍後重試"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"帳戶註冊失敗：使用者名稱或密碼不正確。"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"帳戶註冊失敗：請檢查伺服器名稱。"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"這個帳戶目前由 <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> 應用程式使用中。"</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"SIP 帳戶詳細資料"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"SIP 帳戶詳細資料"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"伺服器"</string>
+    <string name="username_title" msgid="2479375923477682328">"使用者名稱"</string>
+    <string name="password_title" msgid="3323555249068171531">"密碼"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"顯示名稱"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"連出 Proxy 位址"</string>
+    <string name="port_title" msgid="5952939408078626657">"通訊埠號碼"</string>
+    <string name="transport_title" msgid="8253139511847746640">"傳輸類型"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"傳送 keep-alive"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"設為主要帳戶"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"用於外撥通話"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"選用設定"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"驗證使用者名稱"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"用於進行驗證的使用者名稱"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"&lt;未設定&gt;"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;與使用者名稱相同&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;選擇性&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ 輕觸即可全部顯示"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ 輕觸即可全部隱藏"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」為必填欄位，不得留空。"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"通訊埠號碼必須介於 1000 到 65534 間。"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"沒有網際網路連線"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"沒有 Wi-Fi 連線"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"如要撥打網路電話，請先檢查您的網際網路連線。"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"您必須連上 Wi-Fi 網路才能使用網路電話 (使用 [無線網路與網路設定])。"</string>
+    <string name="no_voip" msgid="8901474054537199865">"不支援網路電話"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"自動"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"一律傳送"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"不支援語音通話"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"我現在不方便通話，有什麼事？"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我待會就回電。"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我晚點回電。"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"我現在不方便通話，晚點再打來好嗎？"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"自行撰寫回應…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"快速回應"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"編輯快速回應"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"快速回應"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"重設預設應用程式"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"訊息已傳送至 <xliff:g id="PHONE_NUMBER">%s</xliff:g>。"</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"1"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"2"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"3"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"4"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"5"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"6"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"7"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"8"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"9"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"星號"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"零"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"井字鍵"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"撥號"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"Backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"喇叭已啟用"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"通話已靜音。"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"解答"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"傳送簡訊"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"拒絕"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"震動"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"震動"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"音效"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"預設音效 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"手機鈴聲"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"鈴響時震動"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"撥號鍵盤觸控音效"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"撥號鍵盤自動完成"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"鈴聲與震動"</string>
+</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
new file mode 100644
index 0000000..570ced1
--- /dev/null
+++ b/res/values-zu/strings.xml
@@ -0,0 +1,635 @@
+<?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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Idatha Yeselula"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Ifoni"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Ukudayela Okuphuthumayo"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Ifoni"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Uhlu lwe-FDN"</string>
+    <string name="unknown" msgid="6878797917991465859">"Akwaziwa"</string>
+    <string name="private_num" msgid="6713286113000232309">"Inombolo eyimfihlo"</string>
+    <string name="payphone" msgid="1931775086311769314">"Ifoni ekhokhelwayo"</string>
+    <string name="onHold" msgid="9035493194749959955">"Ibambile"</string>
+    <string name="callFailed_userBusy" msgid="8851106999809294904">"Ulayini umatasa"</string>
+    <string name="callFailed_congestion" msgid="8737761615702718375">"Inethiwekhi imatasa"</string>
+    <string name="callFailed_timedOut" msgid="7590961703135543346">"Ayikho impendulo, isikhathi siphelile"</string>
+    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Iseva ayitholakali"</string>
+    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Inombolo ayifinyeleleki"</string>
+    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Igama lomsebenzisi noma iphasiwedi engalungile"</string>
+    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Kushayelwe kwinethiwekhi yangaphandle"</string>
+    <string name="callFailed_server_error" msgid="5717915213586193217">"Iphutha leseva. Zama futhi emva kwesikhathi."</string>
+    <string name="callFailed_noSignal" msgid="1889803273616031933">"Ayikho isignali"</string>
+    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"Umkhawulo we-ACM ufinyelelwe"</string>
+    <string name="callFailed_powerOff" msgid="2766035859391549713">"Umsakazo uvaliwe"</string>
+    <string name="callFailed_simError" msgid="4476360200030635828">"Ayikho i-SIM, noma iphutha le-SIM"</string>
+    <string name="callFailed_outOfService" msgid="4825791466557236225">"Indawo engenayo isevisi"</string>
+    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Amakholi aphumayo avinjelwe i-FDN."</string>
+    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Awukwazi ukwenza amakholi aphumayo ngenkathi ukuvimba kuvuliwe."</string>
+    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Wonke amakholi avimbelwa ngesilawuli sokufinyelela."</string>
+    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Amakholi aphuthumayo avinjelwe isilawuli sokufinyelela."</string>
+    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Amakholi avamile avinjelwe ukulawula kokufinyelela."</string>
+    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Inombolo Engalungile"</string>
+    <string name="confCall" msgid="1904840547188336828">"Ikholi yengqungquthela"</string>
+    <string name="call_lost" msgid="317670617901479594">"Ikholi ikulahlekele."</string>
+    <string name="ok" msgid="3811371167865772377">"KULUNGILE"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Ikhodi ye-MMI iqalile"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"Ikhodi ye-USSD iyasebenza..."</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"Ikhodi ye-MMI ikhanseliwe"</string>
+    <string name="cancel" msgid="5044513931633602634">"Khansela"</string>
+    <string name="enter_input" msgid="1810529547726803893">"Umlayezo we-USSD kuzomele ube phakathi kuka-<xliff:g id="MIN_LEN">%d</xliff:g> nezinhlamvu ezingu-<xliff:g id="MAX_LEN">%d</xliff:g>. Sicela uzame futhi."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Phatha ucingo lwengqungquthela"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Isipikha"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Ucezulwendlebe lwe-Handset"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"I-headset enezincingo"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Thumela amathoni alandelayo?"\n</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Ithumela Amathoni "\n</string>
+    <string name="send_button" msgid="4106860097497818751">"Thumela"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Yebo"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Cha"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Miselela uhlamvu lwasendle nge"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Inombolo engekho yomyalezo wezwi"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Ayikho inombolo yomlayezo wezwi egcinwe ekhadini le-SIM."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Engeza inombolo"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Ikhadi lakho le-SIM livuliwe. Ifoni yakho iyavula..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"Inethiwekhi ye-SIM yokuvula i-PIN"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Vula"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Cashisa"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Icela ukuvula inethiwekhi..."</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Isicelo sokuvula inethiwekhi asiphumelelanga."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Ukuvula inethiwekhi kuphumelele."</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Izilungiselelo zekholi ze-GSM"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Izilungiselelo zekholi ye-CDMA"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Ama-APN"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Izilungiselelo zenethiwekhi"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Ivoyisimeyili"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Imisebenzi yenethiwekhi"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Izilungiselelo zekholi"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Izilungiselelo ezengeziwe"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Izilungiselelo zekholi ezengeziwe ze-GSM kuphela"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Izilungiselelo zekholi Ezengeziwe ze-CDMA"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Izilungiselelo zekholi ezengeziwe ze-CDMA kuphela"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Izilungiselelo zensizakalo yenethiwekhi"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"I-ID yomshayeli"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Ilayisha izilungiselelo..."</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Inombolo ifihliwe kwizincingo eziphumayo"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Inombolo iboniswe kwizincingo eziphumayo"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Sebenzisa izilungiselelo zo-opheretha ezimisiwe ukubonisa inombolo yami ezincingweni eziphumayo"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Ikholi ilindile"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Phakathi nekholi, ngazise uma kunekholi engenayo"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Phakathi nekholi, ngazise uma kunamakholi angenayo"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Izilungiselelo zokudlulisa ikholi"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Ukudlulisa ikholi"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Dlulisa njalo"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Njalo sebenzisa lenombolo"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Idlulisela wonke amakholi"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Idlulisela wonke amakholi ku- <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Inombolo ayitholakali"</string>
+    <string name="sum_cfu_disabled" msgid="3698472522160364904">"Khutshaziwe"</string>
+    <string name="labelCFB" msgid="218938523102207587">"Dlulisa uma imatasa"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Bala uma imatasa"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Idlulisela ku-<xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="227440009979537651">"Khutshaziwe"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Isiphathi sakho asisekeli ukuvimbela ukudlulisa ucingo lapho ifoni yakho imatasa."</string>
+    <string name="labelCFNRy" msgid="3646316323834351390">"Dlulisa uma ungaphendulwa"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Bala uma ingaphendula"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Idlulisela ku-<xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="8422350929957344729">"Khutshaziwe"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Isiphathi sakho asisekeli ukuvimbela ukudlulisa ucigo lapho ifoni yakho ingaphenduli."</string>
+    <string name="labelCFNRc" msgid="47183615370850000">"Dlulisa uma ingatholakali"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Inombolo uma ingatholakali"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Idlulisela ku-<xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Khutshaziwe"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Isiphathi sakho asisekeli ukuvimbela ukudlulisela ucingo lapho ifoni yakho ingafinyeleleki."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Izilungiselelo zekholi"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Iphutha lokulungiselela ikholi"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Ifunda izilungiselelo..."</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ibuyekeza izilungiselelo..."</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Iguqula izilungiselelo."</string>
+    <string name="response_error" msgid="6674110501330139405">"Impendulo engalindelekile kwinethiwekhi."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Iphutha lenethiwekhi noma lekhadi le-SIM."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Izilungiselelo zezinombolo zokudayila okukhiyiwe kohlelo lokusebenza lwefoni yakho zikhanyisiwe. Njengomphumela, ezinye izici ezihlobene namakholi azisebenzi."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Sicela uvule umsakazo ngaphambi kokubuka lezi zilungiselelo."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"KULUNGILE"</string>
+    <string name="enable" msgid="1059008390636773574">"Vumela"</string>
+    <string name="disable" msgid="7274240979164762320">"Khubaza"</string>
+    <string name="change_num" msgid="239476305819844391">"Buyekeza"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Okuzenzakalelayo kwenethiwekhi"</item>
+    <item msgid="7876195870037833661">"Fihla inombolo"</item>
+    <item msgid="1108394741608734023">"Bonisa inombolo"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Inombolo yevoyisimeyilii ishintshile."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Ayikwazanga ukushintsha inombolo ye-voicemail."\n"Xhumana nesithwali sakho uma le nkinga iqhubeka."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Ayikwazanga ukushintsha inombolo edluliselayo."\n"Xhumana nesithwali sakho uma le-nkinga iqhubeka."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Yehlulekile ukulanda kanye nokulondoloza izimiso zamanje zokuthumela."\n"Noma kunjalo shintshela kohlinzeka ngezinsiza omusha?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Azikho izinguquko ezenziwe."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Khetha insizikalo yemeyili yezwi"</string>
+    <string name="voicemail_default" msgid="5902099213882352338">"Umsebenzi wami"</string>
+    <string name="mobile_networks" msgid="5540397602919106177">"Izilungiselelo zenethiwekhi yeselula."</string>
+    <string name="label_available" msgid="1181658289009300430">"Amanethiwekhi atholakalayo"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Iyasesha..."</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Awekho amanethiwekhi atholakele."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Sesha amanethiwekhi"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Iphutha ngenkathi icinga amanethiwekhi."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Ibhalisa kwi <xliff:g id="NETWORK">%s</xliff:g>"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Ikhadi lakho le-SIM alivumeli uxhumano kulenethiwekhi."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Ayikwazi ukuxhuma kunethiwekhi okwamanje. Zama futhi ngemva kwesikhashana."</string>
+    <string name="registration_done" msgid="495135664535876612">"Ibhalisiwe kwinethiwekhi"</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Khetha inkamapani yenethiwekhi"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Sesha wonke amanethiwekhi atholakalayo"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Khetha ngokuzenzakalela"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Khetha ngokuzenzakalela inethiwekhi ethandwayo"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Ukubhalisa okuzenzakalelayo..."</string>
+    <string name="preferred_network_mode_title" msgid="8873246565334559308">"Imodi Yenethiwekhi"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Shintsha imodi esebenzayo yenethiwekhi"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="8176355237105593793">"Imodi yenethiwekhi ekhethwayo"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Imodi yenethiwekhi ekhethwayo: i-WCDMA ekhethwayo"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Imodi yenethiwekhi ekhethwayo: i-GSM kuphela"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Imodi yenethiwekhi ekhethwayo: i-WCDMA kuphela"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Imodi yenethiwekhi ekhethwayo:  i-CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Imodi yenethiwekhi ekhethwayo: i-CDMA kuphela"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Imodi yenethiwekhi ekhethwayo: i-EvDo kuphela"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Imodi yenethiwekhi ekhethwayo: i-LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Imodi yenethiwekhi ekhethwayo: i-CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Imodi yenethiwekhi ekhethwayo: Umhlaba jikelele"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Imodi yenethiwekhi ekhethwayo: i-LTE / WCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"I-LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"I-LTE"</item>
+    <item msgid="6813597571293773656">"Emhlabeni jikelele"</item>
+    <item msgid="127064712132619032">"I-GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"I-CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"I-CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"I-EvDo kuphela"</item>
+    <item msgid="1508557726283094448">"I-CDMA w/o EvDo"</item>
+    <item msgid="4341433122263841224">"I-CDMA / EvDo ezenzakalelayo"</item>
+    <item msgid="5958053792390386668">"Okuzenzakalelayo kwe-GSM /WCDMA"</item>
+    <item msgid="7913148405605373434">"I-WCDMA kuphela"</item>
+    <item msgid="1524224863879435516">"I-GSM kuphela"</item>
+    <item msgid="3817924849415716259">"Okukhethwayo kwe-GSM / WCDMA"</item>
+  </string-array>
+    <string name="data_enabled" msgid="5972538663568715366">"Idatha ivunyelwe"</string>
+    <string name="data_enable_summary" msgid="5022018967714633874">"Vumela ukufinyelela idatha ngenethiwekhi yeselula"</string>
+    <string name="roaming" msgid="8871412572928323707">"Ukuzulazula kwedatha"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Xhuma emasevisini edatha uma uzulazula"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Xhuma emasevisini edatha lapho uzulazula"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Ulahlekelwe uxhumano lwedatha ngoba ushiye inethiwekhi yakho yasekhaya inokuzulazula kwedatha okuvuliwe."</string>
+    <string name="roaming_warning" msgid="7820963598559553967">"Vumela ukuzulazula kwedatha? Ungase ubhekane nezindleko eziphezulu zokuzulazula!"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Okukhethwa kukho kwe-GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Okukhethwa kukho kwe-CDMA"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Ukusebenzisa idatha"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Idatha esebenziswe esikhathini samanje"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Isikhathi sokusebenzisa idatha"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Inqubomgomo yokukala idatha"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Funda kabanzi"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_status_subtext (1657318943142085170) -->
+    <skip />
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ye- <xliff:g id="USED_2">%3$s</xliff:g> isikhathi esiphezulu"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>okuphezulu kufinyelelwe"\n"Isilinganiso sedatha sehliselwe ku- <xliff:g id="USED_1">%2$d</xliff:g> ama-Kb"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
+    <skip />
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Isilinganiso sedatha sehliselwe ku-<xliff:g id="USED">%1$d</xliff:g> ama-Kb uma ukusebenzisa umkhawulo wedatha ufinyelelwe"</string>
+    <string name="throttle_help_subtext" msgid="5217706521499010816">"Olunye ulwazi mayelana nenqubomgomo yokusebenzisa idatha yenethiwekhi yesiphathi sakho sefoni."</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"I-SMS Yokusakaza Iseli"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"I-SMS Yokusakaza ngeSeli"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"I-SMS Yokusakaza yeSeli ivunyelwe"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"I-SMS Yokusakaza ngeSeli kuvimbelwe"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Izilungiselelo ze-SMS Yomsakazo weSeli"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Umsakazo Ophuthumayo"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Umsakazo Ophuthumayo uvunyelwe"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Umsakazo Ophuthumayo uvimbelwe"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Ukuphatha"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Ukuphatha kuvunyelwe"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Ukuphatha kuvimbelwe"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Ukulungisa"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Ukulungisa kuvunyelwe"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Ukulungisa kuvimbelwe"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Izindaba Ezivamile"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Izindaba Zebhizinisi Nezemali"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Izindaba Zemidlalo"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Izindaba zokuqeda isizungu"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Endaweni"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Izindaba zasendaweni zivunyelwe"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Izindaba zasendaweni zivimbelwe"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Isifunda"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Izindaba zesifunda zivunyelwe."</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Izindaba zesifunda zivimbelwe"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Izwe"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Izindaba zezwe zivunyelwe"</string>
+    <string name="national_disable" msgid="326018148178601166">"Izindaba zezwe zivimbelwe"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Amazwe Angaphandle"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Izindaba zamanye amazwe zivunyelwe"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Izindaba zamazwe angaphandle zivimbelwe"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Ulimi"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Khetha ulimi lwezindaba"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"i-English"</item>
+    <item msgid="1151988412809572526">"isi-French"</item>
+    <item msgid="577840534704312665">"isi-Spanish"</item>
+    <item msgid="8385712091143148180">"isi-Japanese"</item>
+    <item msgid="1858401628368130638">"isi-Korean"</item>
+    <item msgid="1933212028684529632">"isi-Chinese"</item>
+    <item msgid="1908428006803639064">"isi-Hebrew"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"44"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Izilimi"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Isimo Sezulu Sasendaweni"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Isimo Sezulu Sasendaweni sivunyelwe"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Isimo Sezulu Sasendaweni sivimbelwe"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Imibiko Yetrafikhi Yendawo"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Imibiko Yetrafikhi Yendawo ivunyelwe"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Imibiko Yetrafikhi Yendawo ivimbelwe"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Izinhlelo Zesikhungo Sezindiza Zasendaweni"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Izinhlelo Zesikhungo Sezindiza Zasendaweni zivunyelwe"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Izinhlelo Zesikhungo Sendiza Sasendaweni sivimbelwe"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Izindawo zokudlela"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Izindawo Zokudlela zivunyelwe"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Izindawo zokudlela zivaliwe"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Ukungena"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Okufakwayo kuvunyelwe"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Ukungena kuvimbelwe"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Isiqondiso Sokuthengisa"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Isiqondiso Sokuthengisa sivunyelwe"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Isiqondiso Sokuthengisa sivimbelwe"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Izikhangiso"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Ukukhangisa kuvunyelwe"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Izikhangiso zivimbelwe"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Amakhwothi wezitoko"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Ikhwothi yesitokho ivunyelwe"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Amakhwothi wezitoko avinjelwe"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Amathuba Omsebenzi"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Amathuba Omsebenzi avunyelwe"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Amathuba Omsebenzi avimbelwe"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Ezokwelapha, Ezempilo kanye Nesibhedlela"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Ezokwelapha, Ezempilo kanye Nesibhedlela kuvunyelwe"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Ezokwelapha, Ezempilo kanye Nesibhedlela kuvimbelwe"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Izindaba Zobuchwephese"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Izindaba Zobuchwepheshe zivunyelwe"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Izindaba Zobuchwepheshe zivimbelwe"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Izigaba-ningi"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Izigaba-ningi zivunyelwe"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Izigaba-ningi zivimbelwe"</string>
+    <string name="prefer_2g" msgid="8442550937280449639">"Sebenzisa i-2G kuphela"</string>
+    <string name="prefer_2g_summary" msgid="1976491403210690759">"Ilondoloza ibhetri"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Khetha uhlelo"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Sintsha imodi yokuzulazula ye-cdma"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Khetha uhlelo"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Ekhaya kuphela"</item>
+    <item msgid="1205664026446156265">"Okuzenzakalelayo"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"Imali Ekhishelwayo ye-CDMA"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Shintsha phakathi kwe-RUIM/SIM ne-NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"Okubhalisile"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"I_RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Yenza idivaysi isebenze"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Setha isevisi yedatha"</string>
+    <string name="fdn" msgid="7878832555095183202">"Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Uhlu lwe-FDN"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"Ukwenza kusebenze i-FDN"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Izinombolo Zokudayela Okungaguquki zivuliwe."</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Izinombolo Zokudayela Okungaguquki zivaliwe."</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Vula i-FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Khubaza i-FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Shintsha i-PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Vala i-FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Vula i-FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Phatha Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Shintsha i-PIN ukuze ufinyelele kwei-FDN"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Phatha uhlu lwenombolo yefoni"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Ubumfihlo Bezwi"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Vumela imodi yobumfihlo ithuthukisiwe"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"Imodi ye-TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Hlela imodi ye-TTY"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Zama futhi ngokuzenzakalelayo"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Vumela imodi Yokuzama Futhi Okuzenzakalelayo"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Engeza othintana naye"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Hlela othintana naye"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Susa othintana naye"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Thayipha i-PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Igama"</string>
+    <string name="number" msgid="7905950798349903858">"Inombolo"</string>
+    <string name="save" msgid="4094274636321939086">"Londoloza"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Yengeza othintana naye wokudayela okungaguquki"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Yengeza othintana naye wokudayela okungaguquki.."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Othintana naye wokudayela okungaguquki ufakiwe."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Hlela othintana naye wokudayela okungaguquki"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ibuyekeza othintana naye wokudayela okungaguquki..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Othintana naye wokudayela okungaguquki ubuyekeziwe."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Susa othintana naye wokudayela okungaguquki"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Isusa othintana naye wokudayela okungaguquki..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Othintana naye wokudayela okungaguquki ususiwe"</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"I-FDN ayivuselelwanga ngoba uthayiphe i-PIN engalungile."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"I-FDN ayivuselelwanga ngoba inombolo ayikwazi ukudlula ezinombolweni ezingu-20."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"I-FDN ayibuyekeziwe. I-PIN2 kade ingalungile, noma inombolo yefoni yenqatshelwe."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Ifunda ekhadini le-SIM..."</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Abekho othintana nabo ekhadini lakho le-SIM"</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Khetha othintana nabo ozobangenisa"</string>
+    <string name="simContacts_airplaneMode" msgid="1846161429087789936">"Ukufaka oxhumana nabo kusuka ekhadini le-SIM, qala ngokucima imodi yeNdiza."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Vumela/Vima i-PIN ye-SI&lt;M"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Shintsha i-PIN ye-SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"I-SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"I-PIN endala"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"I-PIN entsha"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Qinisekisa i-PIN entsha"</string>
+    <string name="badPin" msgid="8955102849303984935">"I-PIN yakudala oyifakile ayilungile. Sicela uzame futhi."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"AMa-PINs owathayiphile awafani. Zama futhi."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Thayipha i-PIN enezinombolo ezingu-4 kuya kwezingu-8."</string>
+    <string name="disable_sim_pin" msgid="3992926931620188855">"Khubaza i-PIN ye-SIM"</string>
+    <string name="enable_sim_pin" msgid="5803702443844458831">"Vula i-PIN ye-SIM"</string>
+    <string name="enable_in_progress" msgid="3695303775100109650">"Sicela ulinde."</string>
+    <string name="enable_pin_ok" msgid="9166061915030865848">"I-PIN ye-SIM ivuliwe"</string>
+    <string name="disable_pin_ok" msgid="5596999379593924850">"I-PIN ye-SIM ivaliwe."</string>
+    <string name="pin_failed" msgid="2298841192582192277">"I-PIN oyifakile ayilungile"</string>
+    <string name="pin_changed" msgid="4365538014588501049">"I-PIN ye-SIM ishintshwe ngempumelelo"</string>
+    <string name="puk_requested" msgid="3898394204193202803">"Iphasiwedi ayilungile, i-SIM ivaliwe! Kudingena i-PUK2."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"I-PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"I-PIN2 endala"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"I-PIN entsha"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Qinisekisa i-PIN2 entsha"</string>
+    <string name="badPuk2" msgid="4851734468010000418">"I-PUK2 oyifakile ayilungile. Sicela uzame futhi."</string>
+    <string name="badPin2" msgid="1041576234483629991">"I-PIN2 yakudala oyifakile ayilungile. Sicela uzame futhi."</string>
+    <string name="mismatchPin2" msgid="523029155918113440">"Ama-PIN2s owathayiphile akafani. Zama futhi."</string>
+    <string name="invalidPin2" msgid="8237110107480395938">"Thayipha i-PIN2 enezinombolo ezingu-4 kuya kwezingu-8."</string>
+    <string name="invalidPuk2" msgid="1290977391033057871">"Thayipha i-PUK2 enezinombolo ezingu-8."</string>
+    <string name="pin2_changed" msgid="1639666438836544393">"I-PIN2 ishintshwe ngokuphumelelayo"</string>
+    <string name="label_puk2_code" msgid="302845876240219560">"Thayipha ikhodi ye-PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4262894949634885773">"Iphasiwedi ayilungile, sicela ushintshe i-PIN2 bese uzama futhi!"</string>
+    <string name="puk2_requested" msgid="8909278021238716877">"Iphasiwedi ayilungile, i-SIM ivaliwe! Kudingena i-PUK2."</string>
+    <string name="doneButton" msgid="2859593360997984240">"Kwenziwe"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Ikholi yengqungquthela <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Inombolo yevoyisimeyili"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Iyadayela"</string>
+    <string name="card_title_redialing" msgid="4831412164303596395">"Izama futhi"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Ikholi yengqungquthela"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Ikholi engenayo"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Ikholi iqediwe"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Ibambile"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Iyavala"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Isecingweni"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Inombolo yami ngu <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Iyadayela"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Ikholi ekulahlekele"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Amakholi akuphuthele"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> amakholi akulahlekele"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Uphuthelwe ikholi ephuma ku-<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Ikholi eqhubekayo"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Ibambile"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Ikholi engenayo"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Umlayezo wezwi omusha"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Umyalezo wezwi omusha (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dayela <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Inombolo yevoyisimeyili ayaziwa"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Ayikho isevisi"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Inethiwekhi ekhethiwe <xliff:g id="OPERATOR_NAME">%s</xliff:g> ayitholakali"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Vala ikholi"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Phinda ushaye"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Umlayezo"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Ukwenza ikholi, vala kuqala imodi Yendiza."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ayibhalisiwe kwinethiwekhi."</string>
+    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Inethiwekhi yefoni ayitholakali"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Ikholi ayithunyelwanga, ayikho inombolo elungile efakiwe."</string>
+    <string name="incall_error_call_failed" msgid="4313552620858880999">"Ikholi ayithunyelwanga."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Iqalisa ukulandelana kwe-MMI..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Isevisi engasekelwe."</string>
+    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Ayikwazi ukushintsha amakholi"</string>
+    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Ayikwazi ukwehlukanisa ucingo."</string>
+    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Ayikwazi ukudlulisa ucingo."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Ayikwazi ukwenza amakholi engqungquthela."</string>
+    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Ayikwazi ukwenqaba ikholi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Ayikwazi ukuyeka ikholi (ama)."</string>
+    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"Ikholi ye-Inthanethi"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ikholi ephuthumayo"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ivula umsakazo..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Indawo engenayo isevisi, iyazama futhi..."</string>
+    <string name="dial_emergency_error" msgid="7969515493359619960">"Ikholi ayithunyelwe. I-<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> akuyona inombolo ephuthumayo!"</string>
+    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Ikholi ayithunyelwanga, sicela udayela inombolo ephuthumayo!"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Sebenzisa ikhibhodi ukudayela"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Bamba"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Qeda"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Iphedi yokudayela"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Thulisa"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Yengeza ikholi"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Hlanganisa amakholi"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Shintsha"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Phatha amakholi"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Phatha umhlangano wezokuxhumana"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Umsindo"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Ikholi yevidiyo ye-Hangout"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Ngenisa"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Ngenisa konke"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Ingenisa othintana nabo be-SIM"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ngenisa kothintana nabo"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Izinsiza zokuzwa"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Vula ikhono lensiza yokuzwa"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"I-TTY Ivaliwe"</item>
+    <item msgid="3971695875449640648">"I-TTY Igcwele"</item>
+    <item msgid="1937509904407445684">"I-TTY HCO"</item>
+    <item msgid="5644925873488772224">"I-TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"Amathoni e-DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Hlela ubude bamathoni e-DTMF"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Jwayelekile"</item>
+    <item msgid="2883365539347850535">"Kude"</item>
+  </string-array>
+    <string name="network_message" msgid="4483886461245213802">"Umlayezo Wenethiwekhi"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Yenza ifoni yakho isebenze"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Ikholi ekhethekile kumele yenziwe ukuze wenze isevisi yefoni yakho isebenze."\n\n"Emva kokucindezela \"Yenza kusebenze\", lalela iziqondiso ezinikeziwe ukwenza ifoni yakho isebenze."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Yeqa ukwenza kusebenze?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Uma weqa ukwenza kusebenze, awukwazi ukwenza amakholi noma xhuma kumanethiwekhi edatha yefoni (nakuba ungakwazi ukuxhuma kumanethiwekhi e-Wi-Fi). Kuze kube yilapho wenza ifoni yakho isebenze, ucelwa ukuba wenze isebenze"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Yeqa"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Yenza kusebenze"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Ifoni yenziwe yasebenza!"</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Inkinga yokwenza kusebenze"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Landela iziqondiso ezikhulunyiwe kuze kube yilapho uzwa ukuthi ukwenza kusebenze kuqedile."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Isipikha"</string>
+    <string name="ota_progress" msgid="3420314892609254729">"Sicela ulinde ngenkathi ifoni ihlelwa."</string>
+    <string name="ota_failure" msgid="4311299546379674378">"Ukuhlela Akuphumelelanga"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Ifoni yakho manje iyasebenza. Kungase kuthathe amaminithi angu-15 ukuze isevisi iqale."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Ifoni yakho ayizange isebenze. "\n"Kungase kudingeke ukuba uthole indawo enenethiwekhi (eduze kwefasitela, noma ngaphandle)."\n\n"Zama futhi noma shayela isevisi yekhasimende ukutholo okunye okukhethwayo."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"FINYELELA UKWEHLULEKA KWE-SPC"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Emuva"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Zama futhi"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Okulandelayo"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmPhuma Kwingxoxo"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Ingene Kwimdoi Yokuphinda Ukushayela Okuphuthumayo"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Imodi Yokuphinda Ukushayela Okuphuthumayo"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Uxhumano lwedatha luvimbelwe"</string>
+  <plurals name="phone_in_ecm_notification_time">
+    <item quantity="one" msgid="4866221796252472622">"Alukho uxhumano lwedatha lwamaminithi angu-<xliff:g id="COUNT">%s</xliff:g>"</item>
+    <item quantity="other" msgid="3122217344579273583">"Alukho uxhumano lwamaminithi angu-<xliff:g id="COUNT">%s</xliff:g>"</item>
+  </plurals>
+  <plurals name="alert_dialog_exit_ecm">
+    <item quantity="one" msgid="8060210887681426682">"Ucingo luzoba semodini ye-Emergency Callback amaminithi angu-<xliff:g id="COUNT">%s</xliff:g>. Ngenkathi ikule modi awekho ama-apps asebenzisa ukuxhumana kwedatha angasetshenziswa. Ufuna ukuphuma manje?"</item>
+    <item quantity="other" msgid="8617116564023933114">"Ucingo luzoba semodini ye-Emergency Callback amaminithi angu-<xliff:g id="COUNT">%s</xliff:g>. Ngenkathi ikule modi azikho izinhlelo ezisebenzisa ukuxhumana kwedatha ezingasetshenziswa. Ufuna ukuphuma manje?"</item>
+  </plurals>
+  <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <item quantity="one" msgid="2585506997024726599">"Isenzo esikhethiwe asitholakali uma usemodini ye-Emergency Callback. Ucingo luzoba kule modi amaminithi angu-<xliff:g id="COUNT">%s</xliff:g>. Ufuna ukuphuma manje?"</item>
+    <item quantity="other" msgid="6115622137771382224">"Isenzo esikhethiwe asitholakali ngenkathi ukumodi ye-Emergency Callback. Ucingo luzoba kule modi amaminithi angu-<xliff:g id="COUNT">%s</xliff:g>. Ufuna ukuphuma manje?"</item>
+  </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Isenzo esikhethiwe asitholakali ngenkathi usocingweni oluphuthumayo"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Ikhipha Imodi Yokuphinda Ukushaya Okuphuthumayo"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Yebo"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Cha"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Susa"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Isevisi"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Ukumisa"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ayisethiwe&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Ezinye izilungiselelo zekholi"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Ishaya ucingo nge <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"isithombe sothintana naye"</string>
+    <string name="goPrivate" msgid="865837794424530980">"yenza kube imfihlo"</string>
+    <string name="selectContact" msgid="781975788478987237">"khetha othintana naye"</string>
+    <string name="sip_settings" msgid="6699045718560859691">"Izilungiselelo zekholi ye-Inthanethi"</string>
+    <string name="sip_accounts" msgid="2097054001288457163">"Ama-akhawunti okushayela nge-Inthanethi (SIP)"</string>
+    <string name="sip_accounts_title" msgid="1212889069281054570">"Ama-akhawunti"</string>
+    <string name="sip_receive_calls" msgid="5635685570889971559">"Thola amakholi angenayo"</string>
+    <string name="sip_receive_calls_summary" msgid="8403613238633679184">"Yehlisa ukuphila kwebhetri"</string>
+    <string name="sip_call_options_title" msgid="27433718808839672">"Sebenzisa ukushayela nge-Inthanethi"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="145572394529090811">"Sebenzisa ukushayela nge-Inthanethi (i-Wi-Fi kuphela)"</string>
+    <string name="sip_call_options_entry_1" msgid="6556668894178520760">"Yamakholi wonke uma uxhumano lwedatha lutholakala"</string>
+    <string name="sip_call_options_entry_2" msgid="6789764029719494361">"Amakholi e-Inthanethi kuphela"</string>
+    <string name="sip_call_options_entry_3" msgid="7474809001402649185">"Cela ikholi ngayinye"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="7423523864471650069">"Yamakholi wonke"</string>
+    <string name="pick_outgoing_call_phone_type" msgid="5622916534828338675">"Yenza ikholi"</string>
+    <string name="pick_outgoing_sip_phone" msgid="7012322118236208875">"Sebenzisa i-akhawunti yokushayela nge-Inthanethi:"</string>
+    <string name="remember_my_choice" msgid="7058059586169290705">"Njalo sebenzisa ukwenza amakholi nge-Inthanethi"</string>
+    <string name="reset_my_choice_hint" msgid="5523030209803567922">"Ungashintsha ukuthi iyiphi i-akhawunti yokushaya ye-Inthanethi ongayisebenzisa ngokwakhona kusuka Ocingweni &gt; Izilungisele &gt; Izilungiselelo zokushaya ze-inthanethi &gt; Ukubukwa kwama-Akhawunti."</string>
+    <string name="pstn_phone" msgid="8782554491484326429">"Ikholi yeselula foni"</string>
+    <string name="internet_phone" msgid="1147922660195095810">"Ikholi ye-Inthanethi"</string>
+    <string name="no_sip_account_found_title" msgid="6266249392379373628">"Ayikho i-akhawunti yokushayela nge-Inthanethi"</string>
+    <string name="no_sip_account_found" msgid="724325811961769997">"Awekho ama-akhawunti okushaya we-inthanethi kulolu cingo. Ufuna ukuwangeza manje?"</string>
+    <string name="sip_menu_add" msgid="8757508498518881500">"Yengeza"</string>
+    <string name="add_sip_account" msgid="5904858426290097611">"Yengeza i-akhawunti"</string>
+    <string name="remove_sip_account" msgid="7645900420385682570">"Susa i-akhawunti"</string>
+    <string name="sip_account_list" msgid="5480058210652194306">"Ama-akhawunti e-SIP"</string>
+    <string name="saving_account" msgid="52903398217017954">"Ilondolza i-akhawunti..."</string>
+    <string name="removing_account" msgid="7183999896088628100">"Ikhipha i-akhawunti..."</string>
+    <string name="sip_menu_save" msgid="5842531129356014943">"Londoloza"</string>
+    <string name="sip_menu_discard" msgid="524075892158789701">"Lahla"</string>
+    <string name="alert_dialog_close" msgid="7759635137627626235">"Vala iphrofayli"</string>
+    <string name="alert_dialog_ok" msgid="3580379406983564080">"KULUNGILE"</string>
+    <string name="close_profile" msgid="6886968271423155284">"Vala"</string>
+    <string name="primary_account_summary_with" msgid="1633960536212343187">"I-akhawunti eyinhloko. <xliff:g id="REGISTRATION_STATUS">%s</xliff:g>"</string>
+    <string name="registration_status_checking_status" msgid="3381868307694056727">"Ihlola isimo..."</string>
+    <string name="registration_status_registering" msgid="4288401139400232968">"Iyabhalisa..."</string>
+    <string name="registration_status_still_trying" msgid="3185581992666091911">"Isazama..."</string>
+    <string name="registration_status_not_receiving" msgid="4185572774980557758">"Ayitholi amakholi"</string>
+    <string name="registration_status_no_data" msgid="4901476962360656611">"Ukubhalisela i-akhawunti kumile ngoba alukho uxhumano lwe-Inthanethi"</string>
+    <string name="registration_status_no_wifi_data" msgid="4038976374713018067">"Ukubhalisa i-akhawunti kumile ngoba alukho uxhumano lwe-Wi-Fi"</string>
+    <string name="registration_status_not_running" msgid="4824867184446232131">"Ukubhalisa i-akhawunti kwehlulekile"</string>
+    <string name="registration_status_done" msgid="884630717456439280">"Ithola amakholi"</string>
+    <string name="registration_status_failed_try_later" msgid="5214474354451220581">"Ukubhalisa i-akhawunti kwehlulekile: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); izozama emva kwesikhathi"</string>
+    <string name="registration_status_invalid_credentials" msgid="4908446367559341757">"Ukubhalisela i-akhawunti kwehlulekile: igama lomsebenzisi noma iphasiwedi elingalungile"</string>
+    <string name="registration_status_server_unreachable" msgid="5733421582468991276">"Ukubhalisa i-akhawunti kwehlulekile: sicela uhlole igama leseva"</string>
+    <string name="third_party_account_summary" msgid="2532526738862533028">"Le akhawunti okwamanje isetshenziswa i-app ye-<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="489288416435014385">"Imininingwane ye-akhawunti ye-SIP"</string>
+    <string name="sip_edit_new_title" msgid="3659149255856520385">"Imininingwane ye-akhawunti ye-SIP"</string>
+    <string name="domain_address_title" msgid="9071787581316160480">"Iseva"</string>
+    <string name="username_title" msgid="2479375923477682328">"Igama lomsebenzisi"</string>
+    <string name="password_title" msgid="3323555249068171531">"Iphasiwedi"</string>
+    <string name="display_name_title" msgid="2459768196312249937">"Bonisa igama"</string>
+    <string name="proxy_address_title" msgid="4828301345351614273">"Ikheli lommeleli ophumayo"</string>
+    <string name="port_title" msgid="5952939408078626657">"Inombolo yembobo"</string>
+    <string name="transport_title" msgid="8253139511847746640">"Uhlobo lokuhamba"</string>
+    <string name="send_keepalive_title" msgid="7533342573918645113">"Thumula gcina kuphila"</string>
+    <string name="set_primary_title" msgid="5351892327447571451">"Misa njenge-akhawunti eyinhloko"</string>
+    <string name="set_primary_summary" msgid="2219064654523258577">"Setshenziselwa amakholi aphumayo"</string>
+    <string name="advanced_settings" msgid="8350631795335495338">"Izilungiselelo zokuzikhethela"</string>
+    <string name="auth_username_title" msgid="851473016307947120">"Igama lomsebenzisi lokufakazela ubuqiniso"</string>
+    <string name="auth_username_summary" msgid="6782012405225938629">"Igama lomsebenzisi elisetshenziselwa ukufakazela ubuqiniso"</string>
+    <string name="default_preference_summary" msgid="868766740121667450">"Ayisethiwe"</string>
+    <string name="display_name_summary" msgid="8636377460518225523">"&lt;Kufana njengegama lomsebenzisi&gt;"</string>
+    <string name="optional_summary" msgid="1464058793789832411">"&lt;Okokuzikhethela&gt;"</string>
+    <string name="advanced_settings_show" msgid="4668880308290857597">"▷ Thinta ukubonisa konke"</string>
+    <string name="advanced_settings_hide" msgid="217398292824758079">"▽ Thinta ukufihla konke"</string>
+    <string name="empty_alert" msgid="6839103946505432390">"I-<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> iyadingeka, ayikwazi ukungabi nalutho"</string>
+    <string name="not_a_valid_port" msgid="4796149266434630292">"Inombolo yembobo kumele ibe phakathi kuka-100 no-65534"</string>
+    <string name="no_internet_available_title" msgid="3327109242858406165">"Alukho uxhumano lwe-Inthanethi"</string>
+    <string name="no_wifi_available_title" msgid="747881033089378758">"Alukho uxhumano lwe-Wi-Fi"</string>
+    <string name="no_internet_available" msgid="7877142631803238549">"Ukwenza ikholi nge-Inthanethi, hlola kuqala uxhumano lwakho lwe-Inthanethi"</string>
+    <string name="no_wifi_available" msgid="1225073547318465713">"Kumele uxhumeke kwinethiwekhi ye-Wi-Fi ukwenza amakholi nge-Inthanethi (sebenzisa izilungiselelo Zenethiwekhi; Nokungenantambo)"</string>
+    <string name="no_voip" msgid="8901474054537199865">"Ukushayela nge-Inthanethi akusekelwe"</string>
+    <string name="sip_system_decide" msgid="368030746310423471">"Okuzenzakalelayo"</string>
+    <string name="sip_always_send_keepalive" msgid="8192080724632877132">"Thumela njalo"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Ukushayela ngezwi akusekelwe"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Angikwazi ukukhuluma okwamanje. Kwenzenjani?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">" Ngizophinde ngikushayele ucingo."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ngizokushayela ucingo emva kwesikhathi"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Angikwazi ukukhuluma okwamanje. Ngicela uphinde ungishayele ucingo kamuva?"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Bhala okwakho…"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Izimpendulo ezisheshayo"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Hlela izimpendulo ezisheshayo"</string>
+    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Izimpendulo ezisheshayo"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Setha kabusha uhlelo lokusebenza lokuzenzakalelayo"</string>
+    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Umlayezo othunyelwe ku <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
+    <string name="description_image_button_one" msgid="5502718871331943463">"kunye"</string>
+    <string name="description_image_button_two" msgid="4903738528222924522">"okubili"</string>
+    <string name="description_image_button_three" msgid="5570985408463782329">"ntathu"</string>
+    <string name="description_image_button_four" msgid="1697520001239289074">"okune"</string>
+    <string name="description_image_button_five" msgid="3450276493026943454">"okuhlanu"</string>
+    <string name="description_image_button_six" msgid="2070376172268675300">"isithupha"</string>
+    <string name="description_image_button_seven" msgid="1757351311199993371">"isikhombisa"</string>
+    <string name="description_image_button_eight" msgid="4734693919020613227">"isishiyagalombili"</string>
+    <string name="description_image_button_nine" msgid="5568534122590597040">"isishiyagalolunye"</string>
+    <string name="description_image_button_star" msgid="1976280813017254462">"inkanyezi"</string>
+    <string name="description_image_button_zero" msgid="4211255756866893605">"lutho"</string>
+    <string name="description_image_button_pound" msgid="1716041284529917866">"iphawundi"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"dayela"</string>
+    <string name="description_delete_button" msgid="4015842181592283903">"i-backspace"</string>
+    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Isipikha sefoni sinikwe amandla"</string>
+    <string name="accessibility_call_muted" msgid="2776111226185342220">"Ikholu ithulisiwe"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Phendula"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Thumela i-SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Nqaba"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Dlidliza"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Dlidliza"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Umsindo"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Umsindo ozenzakalelayo (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ithoni yokukhala kocingo"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Dlidlizisa uma ikhala"</string>
+    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Amathoni okuthinta iphedi yokudayela"</string>
+    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Okokudayela kuqedwe ngokuzenzakalela"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ithoni yokukhala nokudlidliza"</string>
+</resources>
diff --git a/res/values/array.xml b/res/values/array.xml
new file mode 100644
index 0000000..6ddea47
--- /dev/null
+++ b/res/values/array.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<!-- Array resources for the Phone app. -->
+<resources>
+    <string-array translatable="false" name="transport_types">
+        <item>UDP</item>
+        <item>TCP</item>
+    </string-array>
+
+    <string-array translatable="true" name="sip_call_options_entries">
+        <item>@string/sip_call_options_entry_1</item>
+        <item>@string/sip_call_options_entry_2</item>
+        <item>@string/sip_call_options_entry_3</item>
+    </string-array>
+
+    <string-array translatable="true" name="sip_call_options_wifi_only_entries">
+        <item>@string/sip_call_options_wifi_only_entry_1</item>
+        <item>@string/sip_call_options_entry_2</item>
+        <item>@string/sip_call_options_entry_3</item>
+    </string-array>
+
+    <string-array translatable="false" name="sip_call_options_values">
+        <item>@string/sip_always</item>
+        <item>@string/sip_address_only</item>
+        <item>@string/sip_ask_me_each_time</item>
+    </string-array>
+
+    <string-array translatable="false" name="phone_type_values">
+        <item>@string/pstn_phone</item>
+        <item>@string/internet_phone</item>
+    </string-array>
+
+    <string-array translatable="true" name="sip_send_keepalive_options">
+        <item>@string/sip_system_decide</item>
+        <item>@string/sip_always_send_keepalive</item>
+    </string-array>
+
+    <!-- "Target" resources for the GlowPadView widget used for incoming calls;
+         see InCallTouchUi.showIncomingCallWidget() and incall_touch_ui.xml.  -->
+
+    <!-- For most incoming calls the GlowPadView widget provides 3 choices:
+         - Answer (drag right)
+         - Reject (drag left)
+         - Respond via SMS (drag up) -->
+    <array name="incoming_call_widget_3way_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@drawable/ic_lockscreen_text</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_3way_target_descriptions">
+        <item>@string/description_target_answer</item>
+        <item>@string/description_target_send_sms</item>
+        <item>@string/description_target_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_3way_direction_descriptions">
+        <item>@*android:string/description_direction_right</item>
+        <item>@*android:string/description_direction_up</item>
+        <item>@*android:string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+
+    <!-- But in some cases "Respond via SMS" isn't available, so there are
+         only 2 choices:
+         - Answer (drag right)
+         - Reject (drag left) -->
+    <array name="incoming_call_widget_2way_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@null</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_2way_target_descriptions">
+        <item>@string/description_target_answer</item>
+        <item>@null</item>
+        <item>@string/description_target_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_2way_direction_descriptions">
+        <item>@*android:string/description_direction_right</item>
+        <item>@null</item>
+        <item>@*android:string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+
+</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
new file mode 100644
index 0000000..7eec223
--- /dev/null
+++ b/res/values/attrs.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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>
+    <declare-styleable name="EditPhoneNumberPreference">
+        <!-- The enable button text. -->
+        <attr name="enableButtonText" format="string" />
+        <!-- The disable button text. -->
+        <attr name="disableButtonText" format="string" />
+        <!-- The change / update button text. -->
+        <attr name="changeNumButtonText" format="string" />
+        <!-- The confirm button mode. -->
+        <attr name="confirmMode">
+            <!-- Traditional single action "ok" button. -->
+            <enum name="confirm" value="0" />
+            <!-- Two state "enable/disable" button. -->
+            <enum name="activation" value="1" />
+        </attr>
+    </declare-styleable>
+
+    <declare-styleable name="CallForwardEditPreference">
+        <attr name="serviceClass">
+            <!-- voice -->
+            <enum name="voice" value="1" />
+            <!-- data -->
+            <enum name="data" value="2" />
+        </attr>
+        <attr name="reason">
+            <!-- unconditional  -->
+            <enum name="unconditional" value="0" />
+            <!-- busy -->
+            <enum name="busy" value="1" />
+            <!-- no_reply -->
+            <enum name="no_reply" value="2" />
+            <!-- not_reachable -->
+            <enum name="not_reachable" value="3" />
+        </attr>
+    </declare-styleable>
+</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
new file mode 100644
index 0000000..4ccfc1a
--- /dev/null
+++ b/res/values/colors.xml
@@ -0,0 +1,36 @@
+<?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>
+
+    <!-- In-call UI -->
+    <color name="incall_callTypeSip">#99CE3F</color> <!-- green -->
+    <color name="incall_call_banner_background">#A0000000</color> <!-- semitransparent black -->
+    <color name="incall_secondary_info_background">#8033b5e5</color> <!-- semitransparent blueish grey -->
+    <color name="incall_call_banner_text_color">#FFFFFF</color> <!-- white -->
+
+    <!-- DTMF Dialer -->
+    <color name="dtmf_dialer_display_text">#FFFFFF</color> <!-- white -->
+
+    <!-- Color of the theme of the People app -->
+    <color name="people_app_theme_color">#33B5E5</color>
+
+    <!-- Put on top of each photo, implying 80% darker than usual. -->
+    <color name="on_hold_dim_effect">#cc000000</color>
+
+    <!-- Used with some smaller texts in manage conference screen. -->
+    <color name="manage_conference_secondary_text_color">#888888</color>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
new file mode 100644
index 0000000..9b3602e
--- /dev/null
+++ b/res/values/config.xml
@@ -0,0 +1,122 @@
+<?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.
+-->
+
+<!-- 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. -->
+    <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.) -->
+    <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 -->
+    <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. -->
+    <bool name="config_enable_dialer_key_vibration">true</bool>
+
+    <!-- Flag indicating if the tty is enabled -->
+    <bool name="tty_enabled">false</bool>
+
+    <!-- Flag indicating if hac is enabled -->
+    <bool name="hac_enabled">false</bool>
+
+    <!-- Flag indicating if dtmf tone type is enabled -->
+    <bool name="dtmf_type_enabled">false</bool>
+
+    <!-- Flag indicating if auto retry is enabled -->
+    <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. -->
+    <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.) -->
+    <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-->
+    <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. -->
+    <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 -->
+    <bool name="csp_enabled">false</bool>
+
+    <!-- If true, removes the Voice Privacy option from Call Settings -->
+    <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. -->
+    <bool name="config_apn_expand" translatable="false">true</bool>
+    <bool name="config_operator_selection_expand" translatable="false">true</bool>
+    <bool name="config_prefer_2g" translatable="false">true</bool>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
new file mode 100644
index 0000000..5adfe52
--- /dev/null
+++ b/res/values/dimens.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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>
+    <!-- Dimensions for CallCard elements (the normal in-call UI) -->
+
+    <!-- Height of the "call banner" overlay on top of the upper part of
+         the call info area. -->
+    <dimen name="call_banner_height">80dp</dimen>
+
+    <!-- Margin between the bottom of the "call card" photo
+         and the top of the in-call button cluster. -->
+    <dimen name="in_call_touch_ui_upper_margin">2dp</dimen>
+
+    <!-- Padding at the left and right edges of the "call banner". -->
+    <dimen name="call_banner_side_padding">24dp</dimen>
+    <!-- Padding at the top and bottom edges of the "call banner". -->
+    <dimen name="call_banner_top_bottom_padding">16dp</dimen>
+
+    <!-- Padding at the top and bottom edges of the "provider information" -->
+    <dimen name="provider_info_top_bottom_padding">8dp</dimen>
+
+    <!-- Right padding for name and number fields in the call banner.
+         This padding is used to ensure that ultra-long names or
+         numbers won't overlap the elapsed time indication. -->
+    <dimen name="call_banner_name_number_right_padding">50sp</dimen>
+
+    <!-- Height of the main row of in-call buttons. -->
+    <dimen name="in_call_button_height">76dp</dimen>
+
+    <!-- Height of the in-call "End" button. Match with Contact's dimens/call_button_height -->
+    <dimen name="in_call_end_button_height">74dp</dimen>
+
+    <!-- Width of buttons in the extra button row. -->
+    <dimen name="extra_row_button_width">56dp</dimen>
+
+    <!-- Height of buttons in the extra button row. -->
+    <dimen name="extra_row_button_height">@dimen/in_call_button_height</dimen>
+
+    <!-- Padding at the left and right edges of the incall_touch_ui button
+         cluster.  This padding is necessary because we can't allow the
+         buttons to be very close to the edges of the screen, due to the
+         risk of false touches (from your finger wrapping around while
+         holding the phone, *before* moving it up to your face and having
+         the prox sensor kick in.) -->
+    <dimen name="button_cluster_side_padding">20dp</dimen>
+
+
+    <!-- Dimensions for OTA Call Card -->
+    <dimen name="otaactivate_layout_marginTop">10dp</dimen>
+    <dimen name="otalistenprogress_layout_marginTop">5dp</dimen>
+    <dimen name="otasuccessfail_layout_marginTop">10dp</dimen>
+
+
+    <!-- Dimensions for Emergency Dialer and dialpad inside the in-call screen -->
+    <dimen name="dialpad_horizontal_margin">4dp</dimen>
+    <dimen name="dialpad_vertical_margin">2dp</dimen>
+    <dimen name="dialpad_digits_text_size">35sp</dimen>
+
+    <!-- Just used in landscape mode -->
+    <dimen name="emergency_dialer_digits_height">0px</dimen>
+    <dimen name="dialpad_center_margin">3dp</dimen>
+    <dimen name="dialpad_button_margin">3dp</dimen>
+
+
+    <!-- Layout weight values for dialpad screen. These layouts will be used in one
+         LinearLayout (dialpad_fragment.xml), configuring dialpad screen's vertical
+         ratio. -->
+    <integer name="dialpad_layout_weight_digits">20</integer>
+    <integer name="dialpad_layout_weight_dialpad">65</integer>
+    <integer name="dialpad_layout_weight_additional_buttons">15</integer>
+
+    <!-- Dimension used to possibly down-scale high-res photo into what is suitable
+         for notification's large icon. -->
+    <dimen name="notification_icon_size">64dp</dimen>
+
+    <!-- Circle size for incoming call widget's each item. -->
+    <dimen name="incoming_call_widget_circle_size">94dp</dimen>
+    <!-- Margin used for incoming call widget's icon for each item.
+         This should be same as "(incoming_call_widget_circle_size - icon_size)/2".
+         Right now answer/decline/reject icons have 38dp width/height.
+         So, (94 - 38)/2 ==> 28dp -->
+    <dimen name="incoming_call_widget_asset_margin">28dp</dimen>
+
+</resources>
diff --git a/res/values/ids.xml b/res/values/ids.xml
new file mode 100644
index 0000000..b004051
--- /dev/null
+++ b/res/values/ids.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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>
+    <!-- IDs used with events from in-call touch UI elements.
+         (Note we handle these in the InCallScreen's "button click"
+         handler even though the UI elements may not actually be buttons.) -->
+    <item type="id" name="incomingCallAnswer" />
+    <item type="id" name="incomingCallReject" />
+    <item type="id" name="incomingCallRespondViaSms" />
+
+    <!-- View tag ID used by AnimationUtils.Fade -->
+    <item type="id" name="fadeState" />
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
new file mode 100644
index 0000000..9255cf6
--- /dev/null
+++ b/res/values/strings.xml
@@ -0,0 +1,1489 @@
+<?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">
+
+    <!-- Official label of the phone app, as seen in "Manage Applications"
+         and other settings UIs.  This is the version of the label for
+         tablet devices, where the phone app handles mobile data but not
+         actual phone calls. -->
+    <string name="phoneAppLabel" product="tablet">Mobile Data</string>
+
+    <!-- Official label of the phone app, as seen in "Manage Applications"
+         and other settings UIs. -->
+    <string name="phoneAppLabel" product="default">Phone</string>
+
+    <!-- Screen title for Emergency Dialer UI -->
+    <string name="emergencyDialerIconLabel">Emergency Dialer</string>
+    <!-- Activity label for the in-call UI -->
+    <string name="phoneIconLabel">Phone</string>
+    <!-- Title of FDN list screen -->
+    <string name="fdnListLabel">FDN list</string>
+
+    <!-- Call status -->
+    <!-- Incoming call screen, name of "unknown" caller -->
+    <string name="unknown">Unknown</string>
+    <!-- Incoming call screen, string when number hidden -->
+    <string name="private_num">Private number</string>
+    <!-- Incoming call screen, string when called from a pay phone -->
+    <string name="payphone">Pay phone</string>
+    <!-- In-call screen: status label for a call that's on hold -->
+    <string name="onHold">On hold</string>
+    <!-- Possible error messages with outgoing calls --><skip/>
+    <!-- In-call screen: call failure reason (busy) -->
+    <string name="callFailed_userBusy">Line busy</string>
+    <!-- In-call screen: call failure reason (network congestion) -->
+    <string name="callFailed_congestion">Network busy</string>
+    <!-- In-call screen: call failure reason (client timed out) -->
+    <string name="callFailed_timedOut">No response, timed out</string>
+    <!-- In-call screen: call failure reason (server unreachable) -->
+    <string name="callFailed_server_unreachable">Server unreachable</string>
+    <!-- In-call screen: call failure reason (peer unreachable) -->
+    <string name="callFailed_number_unreachable">Number unreachable</string>
+    <!-- In-call screen: call failure reason (incorrect username or password) -->
+    <string name="callFailed_invalid_credentials">Incorrect username or password</string>
+    <!-- In-call screen: call failure reason (calling from out of network is not allowed) -->
+    <string name="callFailed_out_of_network">Called from out-of-network</string>
+    <!-- In-call screen: call failure reason (server error) -->
+    <string name="callFailed_server_error">Server error. Try again later.</string>
+    <!-- In-call screen: call failure reason (no signal) -->
+    <string name="callFailed_noSignal">No signal</string>
+    <!-- In-call screen: call failure reason (GSM ACM limit exceeded) -->
+    <string name="callFailed_limitExceeded">ACM limit exceeded</string>
+    <!-- In-call screen: call failure reason (radio is off) -->
+    <string name="callFailed_powerOff">Radio off</string>
+    <!-- In-call screen: call failure reason (SIM error) -->
+    <string name="callFailed_simError">No SIM or SIM error</string>
+    <!-- In-call screen: call failure reason (out of service) -->
+    <string name="callFailed_outOfService">Out of service area</string>
+    <!-- In-call screen: call failure reason (call denied because of current FDN setting) -->
+    <string name="callFailed_fdn_only">Outgoing calls are restricted by FDN.</string>
+    <!-- In-call screen: call failure reason (call denied because call barring is on) -->
+    <string name="callFailed_cb_enabled">You can\'t make outgoing calls while call barring is on.</string>
+    <!-- In-call screen: call failure reason (call denied because domain specific access control is on) -->
+    <string name="callFailed_dsac_restricted">All calls are restricted by access control.</string>
+    <!-- In-call screen: call failure reason (Emergency call denied because domain specific access control is on)-->
+    <string name="callFailed_dsac_restricted_emergency">Emergency calls are restricted by access control.</string>
+    <!-- In-call screen: call failure reason (Normal call denied because domain specific access control is on)-->
+    <string name="callFailed_dsac_restricted_normal">Normal calls are restricted by access control.</string>
+    <!-- In-call screen: call failure reason (Dialed number doesn't exist) -->
+    <string name="callFailed_unobtainable_number">Invalid number</string>
+    <!-- In-call screen: status label for a conference call -->
+    <string name="confCall">Conference call</string>
+    <!-- In-call screen: call lost dialog text -->
+    <string name="call_lost">Call has been lost.</string>
+
+    <!-- Positive button label ("OK") used in several dialogs in the phone UI [CHAR LIMIT=10] -->
+    <string name="ok">OK</string>
+
+    <!-- MMI dialog strings -->
+    <!-- Dialog label when an MMI code starts running -->
+    <string name="mmiStarted">MMI code started</string>
+    <!-- Dialog label when a USSD code starts running -->
+    <string name="ussdRunning">USSD code running\u2026</string>
+    <!-- Dialog label when an MMI code is canceled -->
+    <string name="mmiCancelled">MMI code canceled</string>
+    <!-- Label for "cancel" button on the MMI dialog -->
+    <string name="cancel">Cancel</string>
+    <!-- Toast string displayed to user if the input in MMI dialog is < 1 or > 160 -->
+    <string name="enter_input">USSD message must be between <xliff:g id="min_len" >%d</xliff:g> and <xliff:g id="max_len" >%d</xliff:g> characters. Please try again.</string>
+
+    <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
+    <string name="manageConferenceLabel">Manage conference call</string>
+
+    <!-- "Audio mode" popup menu: Item label to select the speakerphone [CHAR LIMIT=25] -->
+    <string name="audio_mode_speaker">Speaker</string>
+    <!-- "Audio mode" popup menu: Item label to select the handset earpiece [CHAR LIMIT=25] -->
+    <string name="audio_mode_earpiece">Handset earpiece</string>
+    <!-- "Audio mode" popup menu: Item label to select the wired headset [CHAR LIMIT=25] -->
+    <string name="audio_mode_wired_headset">Wired headset</string>
+    <!-- "Audio mode" popup menu: Item label to select the bluetooth headset [CHAR LIMIT=25] -->
+    <string name="audio_mode_bluetooth">Bluetooth</string>
+
+    <!-- post dial -->
+    <!-- In-call screen: body text of the dialog that appears when we encounter
+         the "wait" character in a phone number to be dialed; this dialog asks the
+         user if it's OK to send the numbers following the "wait". -->
+    <string name="wait_prompt_str">Send the following tones?\n</string>
+    <!-- In-call screen: body text of the dialog that appears when we encounter
+         the "PAUSE" character in a phone number to be dialed; this dialog gives
+         informative message to the user to show the sending numbers following the "Pause". -->
+    <string name="pause_prompt_str">Sending tones\n</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog -->
+    <string name="send_button">Send</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
+    <string name="pause_prompt_yes">Yes</string>
+    <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
+    <string name="pause_prompt_no">No</string>
+    <!-- In-call screen: on the "wild" character dialog, this is the label
+         for a text widget that lets the user enter the digits that should
+         replace the "wild" character. -->
+    <string name="wild_prompt_str">Replace wild character with</string>
+
+    <!-- missing voicemail number -->
+    <!-- Title of the "Missing voicemail number" dialog -->
+    <string name="no_vm_number">Missing voicemail number</string>
+    <!-- Body text of the "Missing voicemail number" dialog -->
+    <string name="no_vm_number_msg">No voicemail number is stored on the SIM card.</string>
+    <!-- Button label on the "Missing voicemail number" dialog -->
+    <string name="add_vm_number_str">Add number</string>
+
+    <!-- Status message displayed on SIM PIN unlock panel -->
+    <string name="puk_unlocked">Your SIM card has been unblocked. Your phone is unlocking\u2026</string>
+    <!-- network depersonalization -->
+    <!-- Label text for PIN entry widget on SIM Network Depersonalization panel -->
+    <string name="label_ndp">SIM network unlock PIN</string>
+    <!-- Button label on SIM Network Depersonalization panel -->
+    <string name="sim_ndp_unlock_text">Unlock</string>
+    <!-- Button label on SIM Network Depersonalization panel -->
+    <string name="sim_ndp_dismiss_text">Dismiss</string>
+    <!-- Status message displayed on SIM Network Depersonalization panel -->
+    <string name="requesting_unlock">Requesting network unlock\u2026</string>
+    <!-- Error message displayed on SIM Network Depersonalization panel -->
+    <string name="unlock_failed">Network unlock request unsuccessful.</string>
+    <!-- Success message displayed on SIM Network Depersonalization panel -->
+    <string name="unlock_success">Network unlock successful.</string>
+
+    <!-- settings strings -->
+
+    <!-- GSM Call settings screen, setting option name -->
+    <string name="labelGSMMore">GSM call settings</string>
+    <!-- CDM Call settings screen, setting option name -->
+    <string name="labelCDMAMore">CDMA call settings</string>
+    <!-- Mobile network settings screen, setting option name -->
+    <string name="apn_settings">Access Point Names</string>
+    <!-- Label for the "Network settings" screen in the Settings UI -->
+    <string name="settings_label">Network settings</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="voicemail">Voicemail</string>
+    <!-- Call forwarding dialog box, voicemail number prefix -->
+    <string name="voicemail_abbreviated">VM:</string>
+    <!-- Mobile network settings screen, setting option name -->
+    <string name="networks">Network operators</string>
+    <!-- Call settings screen title -->
+    <string name="call_settings">Call settings</string>
+    <!-- GSM Call settings screen, setting option name -->
+    <string name="additional_gsm_call_settings">Additional settings</string>
+    <!-- GSM-only Call settings screen, setting option name-->
+    <string name="sum_gsm_call_settings">Additional GSM only call settings</string>
+    <!-- CDMA Call settings screen, setting option name -->
+    <string name="additional_cdma_call_settings">Additional CDMA call settings</string>
+    <!-- CDMA-only Call settings screen, setting option name-->
+    <string name="sum_cdma_call_settings">Additional CDMA only call settings</string>
+    <!-- Call setting screen, nework service setting name -->
+    <string name="labelNwService">Network service settings</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="labelCallerId">Caller ID</string>
+    <!-- Additional call settings screen, setting summary text when the setting is being loaded [CHAR LIMIT=40] -->
+    <string name="sum_loading_settings">Loading settings\u2026</string>
+    <!-- Additional call settings screen, setting summary text when Caller ID is hidden -->
+    <string name="sum_hide_caller_id">Number hidden in outgoing calls</string>
+    <!-- Additional call settings screen, setting summary text when Caller ID is shown -->
+    <string name="sum_show_caller_id">Number displayed in outgoing calls</string>
+    <!-- Additional call settings screen, setting summary text for default Caller ID value -->
+    <string name="sum_default_caller_id">Use default operator settings to display my number in outgoing calls</string>
+    <!-- Additional call settings screen, setting check box name -->
+    <string name="labelCW">Call waiting</string>
+    <!-- Additional call settings screen, setting summary text when call waiting check box is selected -->
+    <string name="sum_cw_enabled">During a call, notify me of incoming calls</string>
+    <!-- Additional call settings screen, setting summary text when call waiting check box is clear -->
+    <string name="sum_cw_disabled">During a call, notify me of incoming calls</string>
+    <!-- Call forwarding settings screen, section heading -->
+    <string name="call_forwarding_settings">Call forwarding settings</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="labelCF">Call forwarding</string>
+
+    <!-- Call forwarding settings screen, setting option name -->
+    <string name="labelCFU">Always forward</string>
+    <!-- Call forwarding dialog box, text field label -->
+    <string name="messageCFU">Always use this number</string>
+    <!-- Call forwarding settings screen, setting summary text when forwarding all calls -->
+    <string name="sum_cfu_enabled_indicator">Forwarding all calls</string>
+    <!-- Call forwarding settings screen, setting summary text the Always forward is set -->
+    <string name="sum_cfu_enabled">Forwarding all calls to <xliff:g id="phonenumber" example="555-1212">{0}</xliff:g></string>
+    <!-- Call forwarding settings screen, Always forward is enabled but the number is unavailable -->
+    <string name="sum_cfu_enabled_no_number">Number is unavailable</string>
+    <!-- Call forwarding settings screen, setting summary text when Always forward is disabled -->
+    <string name="sum_cfu_disabled">Disabled</string>
+
+    <!-- Call forwarding settings screen, setting option name -->
+    <string name="labelCFB">Forward when busy</string>
+    <!-- Call forwarding dialog box, text field label -->
+    <string name="messageCFB">Number when busy</string>
+    <!-- Call forwarding settings screen, setting summary text when forwarding to specific number when busy -->
+    <string name="sum_cfb_enabled">Forwarding to <xliff:g id="phonenumber" example="555-1212">{0}</xliff:g></string>
+    <!-- Call forwarding settings screen, setting summary text when forwarding when busy is disabled -->
+    <string name="sum_cfb_disabled">Disabled</string>
+    <!-- Error message displayed after failing to disable forwarding calls when the phone is busy -->
+    <string name="disable_cfb_forbidden">Your operator doesn\'t support disabling call forwarding when your phone is busy.</string>
+
+    <!-- Call forwarding settings screen, setting option name -->
+    <string name="labelCFNRy">Forward when unanswered</string>
+    <!-- Call forwarding dialog box, text field label -->
+    <string name="messageCFNRy">Number when unanswered</string>
+    <!-- Call forwarding settings screen, setting summary text when forwarding to a specific number when unanswered -->
+    <string name="sum_cfnry_enabled">Forwarding to <xliff:g id="phonenumber" example="555-1212">{0}</xliff:g></string>
+    <!-- Call forwarding settings screen, setting summary text when Forward when unanswered is disabled -->
+    <string name="sum_cfnry_disabled">Disabled</string>
+    <!-- Error message displayed after failing to disable forwarding calls when the phone does not answer -->
+    <string name="disable_cfnry_forbidden">Your operator doesn\'t support disabling call forwarding when your phone doesn\'t answer.</string>
+
+    <!-- Call forwarding settings screen, setting option name -->
+    <string name="labelCFNRc">Forward when unreachable</string>
+    <!-- Call forwarding dialog box, text field label -->
+    <string name="messageCFNRc">Number when unreachable</string>
+    <!-- Call forwarding settings screen, setting summary text when forwarding to a specific number when unreachable-->
+    <string name="sum_cfnrc_enabled">Forwarding to <xliff:g id="phonenumber" example="555-1212">{0}</xliff:g></string>
+    <!-- Call forwarding settings screen, setting summary text when Forward when unreachable is disabled -->
+    <string name="sum_cfnrc_disabled">Disabled</string>
+    <!-- Error message displayed after failing to disable forwarding calls when the phone is unreachable -->
+    <string name="disable_cfnrc_forbidden">Your carrier doesn\'t support disabling call forwarding when your phone is unreachable.</string>
+
+    <!-- Title of the progress dialog displayed while updating Call settings -->
+    <string name="updating_title">Call settings</string>
+    <!-- Title of the alert dialog displayed if an error occurs while updating Call settings -->
+    <string name="error_updating_title">Call settings error</string>
+    <!-- Toast in Call settings dialog while settings are being read -->
+    <string name="reading_settings">Reading settings\u2026</string>
+    <!-- Toast in Call settings dialog while settings are being saved -->
+    <string name="updating_settings">Updating settings\u2026</string>
+    <!-- Toast in Call settings dialog while settings are being reverted -->
+    <string name="reverting_settings">Reverting settings\u2026</string>
+    <!-- Status message displayed in the "Call settings error" dialog -->
+    <string name="response_error">Unexpected response from network.</string>
+    <!-- Status message displayed in the "Call settings error" dialog -->
+    <string name="exception_error">Network or SIM card error.</string>
+    <!-- Status message displayed in the "Call settings error" dialog when operation fails due to FDN
+         [CHAR LIMIT=NONE] -->
+    <string name="fdn_check_failure">Your Phone app\'s Fixed Dialing Numbers setting is turned on. As a result, some call-related features aren\'t working.</string>
+    <!-- Status message displayed in the "Call settings error" dialog -->
+    <string name="radio_off_error">Turn on the radio before viewing these settings.</string>
+    <!-- Button label used to dismiss the "Call settings error" dialog -->
+    <string name="close_dialog">OK</string>
+    <!-- Button label used in several settings-related dialogs -->
+    <string name="enable">Enable</string>
+    <!-- Button label used in several settings-related dialogs -->
+    <string name="disable">Disable</string>
+    <!-- Button label which indicates the user wants to update a stored
+         phone number; used in several settings-related dialogs -->
+    <string name="change_num">Update</string>
+    <!-- Phone settings: Caller ID preference values -->
+    <string-array name="clir_display_values">
+        <!-- Phone settings "Caller ID" preference option: use the default value -->
+        <item>Network default</item>
+        <!-- Phone settings "Caller ID" preference option: hide outgoing Caller ID info -->
+        <item>Hide number</item>
+        <!-- Phone settings "Caller ID" preference option: show outgoing Caller ID info -->
+        <item>Show number</item>
+    </string-array>
+    <!-- Phone settings: Internal keys used for Caller ID preference values.  DO NOT TRANSLATE. -->
+    <string-array name="clir_values" translatable="false">
+        <!-- Phone settings: Internal key used for Caller ID preference values.  DO NOT TRANSLATE. -->
+        <item><xliff:g>DEFAULT</xliff:g></item>
+        <!-- Phone settings: Internal key used for Caller ID preference values.  DO NOT TRANSLATE. -->
+        <item><xliff:g>HIDE</xliff:g></item>
+        <!-- Phone settings: Internal key used for Caller ID preference values.  DO NOT TRANSLATE. -->
+        <item><xliff:g>SHOW</xliff:g></item>
+    </string-array>
+
+    <!-- voicemail setting strings --><skip/>
+    <!-- Call settings screen, Set voicemail number dialog text -->
+    <string name="vm_changed">Voicemail number changed.</string>
+    <!-- Call settings screen, Set voicemail number dialog text -->
+    <string name="vm_change_failed">Couldn\'t change the voicemail number.\nContact your carrier if this problem persists.</string>
+    <!-- Call settings screen, displayed when vm provider supplied forwarding number change fails-->
+    <string name="fw_change_failed">Couldn\'t change the forwarding number.\nContact your carrier if this problem persists.</string>
+    <!-- Call settings screen, displayed when forwarding number read fails-->
+    <string name="fw_get_in_vm_failed">Couldn\'t retrieve and save current forwarding number settings.\nSwitch to the new provider anyway?</string>
+    <!-- Call settings screen, Set voicemail number dialog text -->
+    <string name="no_change">No changes were made.</string>
+    <!-- Call settings screen, "Voicemail" provider setting summary text when no provider is selected -->
+    <string name="sum_voicemail_choose_provider">Choose voicemail service</string>
+    <!-- Call settings screen, "Voicemail" screen, default option - My Carrier -->
+    <string name="voicemail_default">My carrier</string>
+
+    <!-- networks setting strings --><skip/>
+    <!-- Mobile network settings screen title -->
+    <string name="mobile_networks">Mobile network settings</string>
+    <!-- Available networks screen title/heading -->
+    <string name="label_available">Available networks</string>
+    <!-- Mobile network settings screen, toast when searching for available networks -->
+    <string name="load_networks_progress">Searching\u2026</string>
+    <!-- Available networks screen, text when no networks are found -->
+    <string name="empty_networks_list">No networks found.</string>
+    <!-- Available networks screen, setting option name -->
+    <string name="search_networks">Search networks</string>
+    <!-- Available networks screen, toast when an error is encountered when searching for networks -->
+    <string name="network_query_error">Error while searching for networks.</string>
+    <!-- Available networks screen, toast when registering on a specific network -->
+    <string name="register_on_network">Registering on <xliff:g id="network">%s</xliff:g>\u2026</string>
+    <!-- Available networks screen, toast when SIM card isn't allowed on a network -->
+    <string name="not_allowed">Your SIM card doesn\'t allow a connection to this network.</string>
+    <!-- Available networks screen, toast when unable to connect to a network temporarily -->
+    <string name="connect_later">Can\'t connect to this network right now. Try again later.</string>
+    <!-- Available networks screen, toast when registered on a specific network -->
+    <string name="registration_done">Registered on network.</string>
+    <!-- Mobile network settings screen setting option summary text -->
+    <string name="sum_carrier_select">Choose a network operator</string>
+    <!-- Available networks screen, setting summary text -->
+    <string name="sum_search_networks">Search for all available networks</string>
+    <!-- Available networks screen, setting option name -->
+    <string name="select_automatically">Choose automatically</string>
+    <!-- Available networks screen, setting summary text -->
+    <string name="sum_select_automatically">Automatically choose preferred network</string>
+    <string name="register_automatically">Automatic registration\u2026</string>
+    <string name="preferred_network_mode_title">Network Mode</string>
+    <string name="preferred_network_mode_summary">Change the network operating mode</string>
+    <string name="preferred_network_mode_dialogtitle">Preferred network mode</string>
+    <!-- Mobile network settings, summary for preferred network mode WCDMA preferred[CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_wcdma_perf_summary">Preferred network mode: WCDMA preferred</string>
+    <!-- Mobile network settings, summary for preferred network mode GSM [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_gsm_only_summary">Preferred network mode: GSM only</string>
+    <!-- Mobile network settings, summary for preferred network mode WCDMA only [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_wcdma_only_summary">Preferred network mode: WCDMA only</string>
+    <!-- Mobile network settings, summary for preferred network mode GSM / UMTS [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_gsm_wcdma_summary">Preferred network mode: GSM / WCDMA</string>
+    <!-- Mobile network settings, summary for preferred network mode CDMA [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_cdma_summary">Preferred network mode: CDMA</string>
+    <!-- Mobile network settings, summary for preferred network mode CDMA / EvDo [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_cdma_evdo_summary">Preferred network mode: CDMA / EvDo</string>
+    <!-- Mobile network settings, summary for preferred network mode CDMA only [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_cdma_only_summary">Preferred network mode: CDMA only</string>
+    <!-- Mobile network settings, summary for preferred network mode EvDo only [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_evdo_only_summary">Preferred network mode: EvDo only</string>
+    <!-- Mobile network settings, summary for preferred network mode CDMA/EvDo/GSM/WCDMA[CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
+    <!-- Mobile network settings, summary for preferred network mode LTE [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+    <!-- Mobile network settings, summary for preferred network mode GSM/WCDMA/LTE [CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
+    <!-- Mobile network settings, summary for preferred network mode CDMA+LTE/EVDO[CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_lte_cdma_evdo_summary">Preferred network mode: CDMA+LTE/EVDO</string>
+    <!-- Mobile network settings, summary for preferred network mode Global[CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_global_summary">Preferred network mode: Global</string>
+    <!-- Mobile network settings, summary for preferred network mode LTE / WCDMA[CHAR LIMIT=100] -->
+    <string name="preferred_network_mode_lte_wcdma_summary">Preferred network mode: LTE / WCDMA</string>
+
+
+    <string-array name="preferred_network_mode_choices">
+        <item>LTE / WCDMA</item>
+        <item>LTE</item>
+        <item>Global</item>
+        <item>GSM/WCDMA/LTE</item>
+        <item>CDMA + LTE/EvDo</item>
+        <item>CDMA/EvDo/GSM/WCDMA</item>
+        <item>EvDo only</item>
+        <item>CDMA w/o EvDo</item>
+        <item>CDMA/EvDo auto</item>
+        <item>GSM/WCDMA auto</item>
+        <item>WCDMA only</item>
+        <item>GSM only</item>
+        <item>GSM/WCDMA preferred</item>
+    </string-array>
+    <string-array name="preferred_network_mode_values"  translatable="false">
+        <item>"12"</item>
+        <item>"11"</item>
+        <item>"10"</item>
+        <item>"9"</item>
+        <item>"8"</item>
+        <item>"7"</item>
+        <item>"6"</item>
+        <item>"5"</item>
+        <item>"4"</item>
+        <item>"3"</item>
+        <item>"2"</item>
+        <item>"1"</item>
+        <item>"0"</item>
+    </string-array>
+    <!-- Mobile network settings screen, data enabling checkbox name -->
+    <string name="data_enabled">Data enabled</string>
+    <!-- Mobile network settings screen, setting summary text when check box is not selected (explains what selecting it would do) -->
+    <string name="data_enable_summary">Enable data access over Mobile network</string>
+    <!-- Mobile network settings screen, setting check box name -->
+    <string name="roaming">Data roaming</string>
+    <!-- Mobile network settings screen, setting summary text when check box is selected -->
+    <string name="roaming_enable">Connect to data services when roaming</string>
+    <!-- Mobile network settings screen, setting summary text when check box is clear -->
+    <string name="roaming_disable">Connect to data services when roaming</string>
+    <!-- Mobile network settings UI: notification message shown when you
+         lose data connectivity because you're roaming and you have the
+         "data roaming" feature turned off. -->
+    <string name="roaming_reenable_message">You\'ve lost data connectivity because you left your home network with data roaming turned off.</string>
+    <!-- Mobile network settings screen, dialog message when user selects the Data roaming check box -->
+    <string name="roaming_warning">Allow data roaming? You may incur significant roaming charges!</string>
+    <string name="gsm_umts_options">GSM/UMTS Options</string>
+    <string name="cdma_options">CDMA Options</string>
+
+    <!-- Screen option on the mobile network settings to go into data usage settings -->
+    <string name="throttle_data_usage">Data usage</string>
+    <!-- Data usage settings screen option for checking the current usage -->
+    <string name="throttle_current_usage">Data used in current period</string>
+    <!-- Data usage settings screen option for time frame-->
+    <string name="throttle_time_frame">Data use period</string>
+    <!-- Data usage settings screen option for throttling rate-->
+    <string name="throttle_rate">Data rate policy</string>
+    <!-- Data usage settings screen option for accessing the carrier website-->
+    <string name="throttle_help">Learn more</string>
+
+    <string name="throttle_status_subtext"><xliff:g id="used">%1$s</xliff:g> (<xliff:g id="used">%2$d</xliff:g>\u066A) of <xliff:g id="used">%3$s</xliff:g> period maximum\nNext period starts in <xliff:g id="used">%4$d</xliff:g> days (<xliff:g id="used">%5$s</xliff:g>)</string>
+
+    <string name="throttle_data_usage_subtext"><xliff:g id="used">%1$s</xliff:g> (<xliff:g id="used">%2$d</xliff:g>\u066A) of <xliff:g id="used">%3$s</xliff:g> period maximum</string>
+
+    <string name="throttle_data_rate_reduced_subtext"><xliff:g id="used">%1$s</xliff:g> maximum exceeded\nData rate reduced to <xliff:g id="used">%2$d</xliff:g> Kb/s</string>
+
+    <string name="throttle_time_frame_subtext"><xliff:g id="used">%1$d</xliff:g>\u066A of cycle elapsed\nNext period starts in <xliff:g id="used">%2$d</xliff:g> days (<xliff:g id="used">%3$s</xliff:g>)</string>
+
+    <string name="throttle_rate_subtext">Data rate reduced to <xliff:g id="used">%1$d</xliff:g> Kb/s if data use limit is exceeded</string>
+
+    <string name="throttle_help_subtext">More information about your carrier\'s mobile network data use policy</string>
+
+    <string name="cell_broadcast_sms">Cell Broadcast SMS</string>
+
+    <string name="enable_disable_cell_bc_sms">Cell Broadcast SMS</string>
+    <string name="cell_bc_sms_enable">Cell Broadcast SMS enabled</string>
+    <string name="cell_bc_sms_disable">Cell Broadcast SMS disabled</string>
+
+    <string name="cb_sms_settings">Cell Broadcast SMS settings</string>
+
+    <string name="enable_disable_emergency_broadcast">Emergency Broadcast</string>
+    <string name="emergency_broadcast_enable">Emergency Broadcast enabled</string>
+    <string name="emergency_broadcast_disable">Emergency Broadcast disabled</string>
+
+    <string name="enable_disable_administrative">Administrative</string>
+    <string name="administrative_enable">Administrative enabled</string>
+    <string name="administrative_disable">Administrative disabled</string>
+
+    <string name="enable_disable_maintenance">Maintenance</string>
+    <string name="maintenance_enable">Maintenance enabled</string>
+    <string name="maintenance_disable">Maintenance disabled</string>
+
+    <string name="general_news_settings">General News</string>
+    <string name="bf_news_settings">Business and Financial News</string>
+    <string name="sports_news_settings">Sports News</string>
+    <string name="entertainment_news_settings">Entertainment News</string>
+
+    <string name="enable_disable_local">Local</string>
+    <string name="local_enable">Local news enabled</string>
+    <string name="local_disable">Local news disabled</string>
+
+    <string name="enable_disable_regional">Regional</string>
+    <string name="regional_enable">Regional news enabled</string>
+    <string name="regional_disable">Regional news disabled</string>
+
+    <string name="enable_disable_national">National</string>
+    <string name="national_enable">National news enabled</string>
+    <string name="national_disable">National news disabled</string>
+
+    <string name="enable_disable_international">International</string>
+    <string name="international_enable">International news enabled</string>
+    <string name="international_disable">International news disabled</string>
+
+    <string name="list_language_title">Language</string>
+    <string name="list_language_summary">Select the news language</string>
+    <string-array name="list_language_entries">
+        <item>English</item>
+        <item>French</item>
+        <item>Spanish</item>
+        <item>Japanese</item>
+        <item>Korean</item>
+        <item>Chinese</item>
+        <item>Hebrew</item>
+    </string-array>
+    <string-array name="list_language_values">
+        <item>"1"</item>
+        <item>"2"</item>
+        <item>"3"</item>
+        <item>"4"</item>
+        <item>"5"</item>
+        <item>"6"</item>
+        <item>"7"</item>
+    </string-array>
+    <string name="list_language_dtitle">Languages</string>
+
+    <string name="enable_disable_local_weather">Local Weather</string>
+    <string name="local_weather_enable">Local Weather enabled</string>
+    <string name="local_weather_disable">Local Weather disabled</string>
+
+    <string name="enable_disable_atr">Area Traffic Reports</string>
+    <string name="atr_enable">Area Traffic Reports enabled</string>
+    <string name="atr_disable">Area Traffic Reports disabled</string>
+
+    <string name="enable_disable_lafs">Local Airport Flight Schedules</string>
+    <string name="lafs_enable">Local Airport Flight Schedules enabled</string>
+    <string name="lafs_disable">Local Airport Flight Schedules disabled</string>
+
+    <string name="enable_disable_restaurants">Restaurants</string>
+    <string name="restaurants_enable">Restaurants enabled</string>
+    <string name="restaurants_disable">Restaurants disabled</string>
+
+    <string name="enable_disable_lodgings">Lodgings</string>
+    <string name="lodgings_enable">Lodgings enabled</string>
+    <string name="lodgings_disable">Lodgings disabled</string>
+
+    <string name="enable_disable_retail_directory">Retail Directory</string>
+    <string name="retail_directory_enable">Retail Directory enabled</string>
+    <string name="retail_directory_disable">Retail Directory disabled</string>
+
+    <string name="enable_disable_advertisements">Advertisements</string>
+    <string name="advertisements_enable">Advertisements enabled</string>
+    <string name="advertisements_disable">Advertisements disabled</string>
+
+    <string name="enable_disable_stock_quotes">Stock Quotes</string>
+    <string name="stock_quotes_enable">Stock Quotes enabled</string>
+    <string name="stock_quotes_disable">Stock Quotes disabled</string>
+
+    <string name="enable_disable_eo">Employment Opportunities</string>
+    <string name="eo_enable">Employment Opportunities enabled</string>
+    <string name="eo_disable">Employment Opportunities disabled</string>
+
+    <string name="enable_disable_mhh">Medical, Health, and Hospital</string>
+    <string name="mhh_enable">Medical, Health, and Hospital enabled</string>
+    <string name="mhh_disable">Medical, Health, and Hospital disabled</string>
+
+    <string name="enable_disable_technology_news">Technology News</string>
+    <string name="technology_news_enable">Technology News enabled</string>
+    <string name="technology_news_disable">Technology News disabled</string>
+
+    <string name="enable_disable_multi_category">Multi-category</string>
+    <string name="multi_category_enable">Multi-category enabled</string>
+    <string name="multi_category_disable">Multi-category disabled</string>
+
+    <!-- Mobile network settings screen, setting option name -->
+    <string name="prefer_2g">Use only 2G networks</string>
+    <!-- Mobile network settings screen, setting summary text -->
+    <string name="prefer_2g_summary">Saves battery</string>
+
+    <!-- CDMA System select strings -->
+    <!-- Mobile network settings screen, setting option name -->
+    <string name="cdma_system_select_title">System select</string>
+    <!-- Mobile network settings screen, setting summary text -->
+    <string name="cdma_system_select_summary">Change the CDMA roaming mode</string>
+    <!-- System select settings screen title -->
+    <string name="cdma_system_select_dialogtitle">System select</string>
+    <string-array name="cdma_system_select_choices">
+        <!-- System select dialog screen, setting option name -->
+        <item>Home only</item>
+        <!-- Remove the following option "Affiliated Networks" from the option list -->
+        <!-- <item>Affiliated Networks</item> -->
+        <!-- System select dialog screen, setting option name -->
+        <item>Automatic</item>
+    </string-array>
+    <string-array name="cdma_system_select_values" translatable="false">
+        <!-- Do not translate. -->
+        <item>"0"</item>
+        <!-- Remove the following value "1" which corresponds to "Affiliated Networks" above -->
+        <!-- <item>"1"</item>  -->
+        <!-- Do not translate. -->
+        <item>"2"</item>
+    </string-array>
+
+    <string name="cdma_subscription_title">CDMA subscription</string>
+    <string name="cdma_subscription_summary">Change between RUIM/SIM and NV</string>
+    <string name="cdma_subscription_dialogtitle">subscription</string>
+    <string-array name="cdma_subscription_choices">
+        <item>RUIM/SIM</item>
+        <item>NV</item>
+    </string-array>
+    <string-array name="cdma_subscription_values">
+        <item>"0"</item>
+        <item>"1"</item>
+    </string-array>
+    <!-- Preference title with which users can activate CDMA network [CHAR LIMIT=30] -->
+    <string name="cdma_activate_device">Activate device</string>
+    <!-- Preference title for launching an account manager page for prepaid LTE [CHAR LIMIT=30] -->
+    <string name="cdma_lte_data_service">Set up data service</string>
+
+    <!-- FDN settings strings -->
+    <!-- Call settings screen, setting option name -->
+    <string name="fdn">Fixed Dialing Numbers</string>
+    <!-- Call settings screen, button label that takes you to
+         the Fixed Dialing Number management screen -->
+    <string name="manage_fdn_list">FDN list</string>
+    <!-- Call settings screen, preference item label -->
+    <string name="fdn_activation">FDN activation</string>
+    <!-- Call settings setting option name when FDN is enabled -->
+    <string name="fdn_enabled">Fixed Dialing Numbers are enabled</string>
+    <!-- Call settings setting option name  when FDN is disabled-->
+    <string name="fdn_disabled">Fixed Dialing Numbers are disabled</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="enable_fdn">Enable FDN</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="disable_fdn">Disable FDN</string>
+    <!-- Call settings screen, setting option name -->
+    <string name="change_pin2">Change PIN2</string>
+    <!-- Call settings screen, setting option name when FDN is enabled -->
+    <string name="enable_fdn_ok">Disable FDN</string>
+    <!-- Call settings screen, setting option name when FDN is disabled -->
+    <string name="disable_fdn_ok">Enable FDN</string>
+    <!-- Call settings screen, setting summary text -->
+    <string name="sum_fdn">Manage Fixed Dialing Numbers</string>
+    <!-- Call settings, FDN screen, setting option name -->
+    <string name="sum_fdn_change_pin">Change PIN for FDN access</string>
+    <!-- Call settings, FDN screen, setting option name -->
+    <string name="sum_fdn_manage_list">Manage phone number list</string>
+    <!-- Voice privacy on CDMA is an added layer of voice encryption. Theoretically, it would be harder to break in to a phone call with this feature enabled. -->
+    <string name="voice_privacy">Voice privacy</string>
+    <string name="voice_privacy_summary">Enable enhanced privacy mode</string>
+    <string name="tty_mode_option_title">TTY mode</string>
+    <string name="tty_mode_option_summary">Set TTY mode</string>
+    <string name="auto_retry_mode_title">Auto-retry</string>
+    <string name="auto_retry_mode_summary">Enable Auto-retry mode</string>
+
+    <!-- FDN list screen: menu item label -->
+    <string name="menu_add">Add contact</string>
+    <!-- FDN list screen: menu item label -->
+    <string name="menu_edit">Edit contact</string>
+    <!-- FDN list screen: menu item label -->
+    <string name="menu_delete">Delete contact</string>
+
+    <!-- FDN related strings -->
+    <!-- Label for PIN2 entry screen -->
+    <string name="get_pin2">Type PIN2</string>
+    <!-- "Edit FDN Contact" screen: Label for the "name" text field -->
+    <string name="name">Name</string>
+    <!-- "Edit FDN Contact" screen: Label for the "number" text field -->
+    <string name="number">Number</string>
+    <!-- "Edit FDN Contact" screen: Button label for "save" action -->
+    <string name="save">Save</string>
+    <!-- Title of "Edit FDN Contact" screen for a new contact -->
+    <string name="add_fdn_contact">Add fixed dialing number</string>
+    <!-- "Edit FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="adding_fdn_contact">Adding fixed dialing number\u2026</string>
+    <!-- "Edit FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="fdn_contact_added">Fixed dialing number added.</string>
+    <!-- Title of "Edit FDN Contact" screen when editing an already-existing contact -->
+    <string name="edit_fdn_contact">Edit fixed dialing number</string>
+    <!-- "Edit FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="updating_fdn_contact">Updating fixed dialing number\u2026</string>
+    <!-- "Edit FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="fdn_contact_updated">Fixed dialing number updated.</string>
+    <!-- Title of "Delete FDN Contact" screen -->
+    <string name="delete_fdn_contact">Delete fixed dialing number</string>
+    <!-- "Delete FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="deleting_fdn_contact">Deleting fixed dialing number\u2026</string>
+    <!-- "Delete FDN Contact" screen: status message displayed in a popup (toast) -->
+    <string name="fdn_contact_deleted">Fixed dialing number deleted.</string>
+    <!-- FDN settings: error message displayed in a popup (toast) -->
+    <string name="pin2_invalid">FDN wasn\'t updated because you typed an incorrect PIN.</string>
+    <!-- FDN settings: error message displayed in a popup (toast) -->
+    <string name="fdn_invalid_number">FDN wasn\'t updated because the number can\'t exceed 20 digits.</string>
+    <!-- FDN settings: error message displayed in a popup (toast), when the entered
+         FDN number was inappropriate, OR, PIN2 the user entered was incorrect.
+         Because of API restriction, there's no way to determine which is the exact
+         cause of the failure.
+         [CHAR LIMIT=NONE] -->
+    <string name="pin2_or_fdn_invalid">FDN wasn\'t updated. The PIN2 was incorrect, or the phone number was rejected.</string>
+
+    <!-- ADN related strings -->
+    <!-- Placeholder text displayed while loading the list of SIM contacts -->
+    <string name="simContacts_emptyLoading">Reading from SIM card\u2026</string>
+    <!-- Call settings, string that appears on FDN contact list when there are no contacts on the SIM. -->
+    <string name="simContacts_empty">No contacts on your SIM card.</string>
+    <!-- Call settings: title of the dialog that lets you select contacts from the SIM. -->
+    <string name="simContacts_title">Select contacts to import</string>
+    <!-- Appears when user tries to import contacts in SIM during Airplane mode
+      [CHAR LIMIT=NONE] -->
+    <string name="simContacts_airplaneMode">To import contacts from the SIM card, first turn off Airplane mode.</string>
+
+    <!-- SIM PIN strings -->
+    <!-- Title of "Enable/disable SIM PIN" screen -->
+    <string name="enable_pin">Enable/disable SIM PIN</string>
+    <!-- Title of "Change SIM PIN" screen -->
+    <string name="change_pin">Change SIM PIN</string>
+    <!-- SIM PIN screen: label for PIN entry widget -->
+    <string name="enter_pin_text">SIM PIN:</string>
+    <!-- SIM PIN screen: label for PIN entry widget -->
+    <string name="oldPinLabel">Old PIN</string>
+    <!-- SIM PIN screen: label for PIN entry widget -->
+    <string name="newPinLabel">New PIN</string>
+    <!-- SIM PIN screen: label for PIN entry widget -->
+    <string name="confirmPinLabel">Confirm new PIN</string>
+    <!-- SIM PIN screen: error message -->
+    <string name="badPin">The old PIN you typed isn\'t correct. Try again.</string>
+    <!-- SIM PIN screen: error message -->
+    <string name="mismatchPin">The PINs you typed don\'t match. Try again.</string>
+    <!-- SIM PIN screen: error message when PIN is too short or too long -->
+    <string name="invalidPin">Type a PIN that is 4 to 8 numbers.</string>
+    <!-- Title of "Disable SIM PIN" screen -->
+    <string name="disable_sim_pin">Disable SIM PIN</string>
+    <!-- Title of "Enable SIM PIN" screen -->
+    <string name="enable_sim_pin">Enable SIM PIN</string>
+    <!-- SIM PIN screen: progress message displayed while enabling -->
+    <string name="enable_in_progress">Please wait\u2026</string>
+    <!-- SIM PIN screen: status message displayed in a popup (toast) -->
+    <string name="enable_pin_ok">SIM PIN enabled.</string>
+    <!-- SIM PIN screen: status message displayed in a popup (toast) -->
+    <string name="disable_pin_ok">SIM PIN disabled.</string>
+    <!-- SIM PIN screen: error message displayed in a popup (toast) -->
+    <string name="pin_failed">The PIN you typed was incorrect.</string>
+    <!-- SIM PIN screen: status message displayed in a popup (toast) -->
+    <string name="pin_changed">SIM PIN changed successfully.</string>
+    <!-- SIM PIN screen: error message displayed in a dialog -->
+    <string name="puk_requested">Password incorrect, SIM is locked! PUK2 requested.</string>
+
+    <!-- SIM PIN2 strings -->
+    <!-- SIM PIN2 screen: label for PIN entry widget -->
+    <string name="enter_pin2_text">PIN2</string>
+    <!-- SIM PIN2 screen: label for PIN entry widget -->
+    <string name="oldPin2Label">Old PIN2</string>
+    <!-- SIM PIN2 screen: label for PIN entry widget -->
+    <string name="newPin2Label">New PIN2</string>
+    <!-- SIM PIN2 screen: label for PIN entry widget -->
+    <string name="confirmPin2Label">Confirm new PIN2</string>
+    <!-- SIM PIN2 screen: error message -->
+    <string name="badPuk2">The PUK2 you typed isn\'t correct. Try again. </string>
+    <!-- SIM PIN2 screen: error message -->
+    <string name="badPin2">The old PIN2 you typed isn\'t correct. Try again.</string>
+    <!-- SIM PIN2 screen: error message -->
+    <string name="mismatchPin2">The PIN2s you typed don\'t match. Try again.</string>
+    <!-- SIM PIN2 screen: error message -->
+    <string name="invalidPin2">Type a PIN2 that is 4 to 8 numbers.</string>
+    <!-- SIM PIN2 screen: error message -->
+    <string name="invalidPuk2">Type a PUK2 that is 8 numbers.</string>
+    <!-- SIM PIN2 screen: status message displayed in a popup (toast) -->
+    <string name="pin2_changed">PIN2 changed successfully.</string>
+    <!-- SIM PIN2 screen: label for PUK2 entry widget -->
+    <string name="label_puk2_code">Type PUK2 code</string>
+    <!-- SIM PIN2 screen: error message displayed in a dialog -->
+    <string name="fdn_enable_puk2_requested">Password incorrect. Change PIN2 and retry.</string>
+    <!-- SIM PIN2 screen: error message displayed in a dialog -->
+    <string name="puk2_requested">Password incorrect, SIM is locked. PUK2 requested.</string>
+
+    <!-- SIM PIN screen: button label -->
+    <string name="doneButton">Done</string>
+
+    <!-- In-call screen: status label for a conference call -->
+    <string name="caller_manage_header">Conference call <xliff:g id="conf_call_time">%s</xliff:g></string>
+
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_phoneNumber_text" translatable="false">(650) 555-1234</string>
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_infoText_text" translatable="false">Incoming phone number</string>
+    <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
+    <string name="fake_phone_activity_placeCall_text" translatable="false">Fake Incoming Call</string>
+
+    <!-- Call settings screen, Set voicemail dialog title -->
+    <string name="voicemail_settings_number_label">Voicemail number</string>
+
+    <!-- Card titles -->
+    <!-- In-call screen: status label for a call in the "dialing" state -->
+    <string name="card_title_dialing">Dialing</string>
+    <!-- In-call screen: status label for a re-dialing call -->
+    <string name="card_title_redialing">Retrying</string>
+    <!-- In-call screen: status label for a conference call -->
+    <string name="card_title_conf_call">Conference call</string>
+    <!-- In-call screen: status label for an incoming call -->
+    <string name="card_title_incoming_call">Incoming call</string>
+    <!-- In-call screen: status label displayed briefly after a call ends -->
+    <string name="card_title_call_ended">Call ended</string>
+    <!-- In-call screen: status label for call that's on hold -->
+    <string name="card_title_on_hold">On hold</string>
+    <!-- In-call screen: status label for a call that's in the process of hanging up -->
+    <string name="card_title_hanging_up">Hanging up</string>
+    <!-- In-call screen: status label for a call that's in CDMA flash mode -->
+    <string name="card_title_in_call">In call</string>
+    <!-- In-call screen: special status label that shows your own phone
+         number during emergency callback mode (ECM) [CHAR LIMIT=30] -->
+    <string name="card_title_my_phone_number">My number is <xliff:g id="my_phone_number">%s</xliff:g></string>
+
+    <!-- Notification strings -->
+    <!-- The "label" of the in-call Notification for a dialing call, used
+         as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
+    <string name="notification_dialing">Dialing</string>
+    <!-- Missed call notification label, used when there's exactly one missed call -->
+    <string name="notification_missedCallTitle">Missed call</string>
+    <!-- Missed call notification label, used when there are two or more missed calls -->
+    <string name="notification_missedCallsTitle">Missed calls</string>
+    <!-- Missed call notification message used when there are multiple missed calls -->
+    <string name="notification_missedCallsMsg"><xliff:g id="num_missed_calls">%s</xliff:g> missed calls</string>
+    <!-- Missed call notification message used for a single missed call, including
+         the caller-id info from the missed call -->
+    <string name="notification_missedCallTicker">Missed call from <xliff:g id="missed_call_from">%s</xliff:g></string>
+    <!-- The "label" of the in-call Notification for an ongoing call, used
+         as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
+    <string name="notification_ongoing_call">Ongoing call</string>
+    <!-- The "label" of the in-call Notification for a call that's on hold -->
+    <string name="notification_on_hold">On hold</string>
+    <!-- The "label" of the in-call Notification for an incoming ringing call -->
+    <string name="notification_incoming_call">Incoming call</string>
+    <!-- Label for the "Voicemail" notification item, when expanded. -->
+    <string name="notification_voicemail_title">New voicemail</string>
+    <!-- Label for the expanded "Voicemail" notification item,
+         including a count of messages. -->
+    <string name="notification_voicemail_title_count">New voicemail (<xliff:g id="count">%d</xliff:g>)</string>
+    <!-- Message displayed in the "Voicemail" notification item, allowing the user
+         to dial the indicated number. -->
+    <string name="notification_voicemail_text_format">Dial <xliff:g id="voicemail_number">%s</xliff:g></string>
+    <!-- Message displayed in the "Voicemail" notification item,
+         indicating that there's no voicemail number available -->
+    <string name="notification_voicemail_no_vm_number">Voicemail number unknown</string>
+    <!-- Label for the "No service" notification item, when expanded. -->
+    <string name="notification_network_selection_title">No service</string>
+    <!-- Label for the expanded "No service" notification item, including the
+         operator name set by user -->
+    <string name="notification_network_selection_text">Selected network (<xliff:g id="operator_name">%s</xliff:g>) unavailable</string>
+    <!-- Message for "end call" Action.
+         It is displayed in the "Ongoing call" notification, which is shown
+         when the user is outside the in-call screen while the phone call is still
+         active. [CHAR LIMIT=40] -->
+    <string name="notification_action_end_call">Hang up</string>
+    <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
+         The user will be able to call back to the person or the phone number.
+         [CHAR LIMIT=60] -->
+    <string name="notification_missedCall_call_back">Call back</string>
+    <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
+         The user will be able to send text messages using the phone number.
+         [CHAR LIMIT=60] -->
+    <string name="notification_missedCall_message">Message</string>
+
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_power_off">To place a call, first turn off Airplane mode.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog.
+         This string is currently unused (see comments in InCallScreen.java.) -->
+    <string name="incall_error_emergency_only">Not registered on network.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_out_of_service">Mobile network not available.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_no_phone_number_supplied">Call not sent, no valid number entered.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="incall_error_call_failed">Call not sent.</string>
+    <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
+    <string name="incall_status_dialed_mmi">Starting MMI sequence\u2026</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_unknown">Unsupported service.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_switch">Unable to switch calls.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_separate">Unable to separate call.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_transfer">Unable to transfer call.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_conference">Unable to conference calls.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_reject">Unable to reject call.</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_hangup">Unable to release call(s).</string>
+
+    <!-- In-call screen: "call type" indication for a SIP call [CHAR LIMIT=30]  -->
+    <string name="incall_call_type_label_sip">Internet call</string>
+
+    <!-- Dialog title for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_title">Emergency call</string>
+    <!-- Status message for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_message">Turning on radio\u2026</string>
+    <!-- Status message for the "radio enable" UI for emergency calls -->
+    <string name="emergency_enable_radio_dialog_retry">Out of service area, retrying\u2026</string>
+
+    <!-- Dialer text on Emergency Dialer -->
+    <!-- Emergency dialer: message displayed in an error dialog -->
+    <string name="dial_emergency_error">Call not sent. <xliff:g id="non_emergency_number">%s</xliff:g> is not an emergency number!</string>
+    <!-- Emergency dialer: message displayed in an error dialog -->
+    <string name="dial_emergency_empty_error">Call not sent. Dial an emergency number!</string>
+
+    <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
+         to dial using the physical keyboard -->
+    <string name="dialerKeyboardHintText">Use keyboard to dial</string>
+
+    <!-- Text for the onscreen "Hold" button -->
+    <string name="onscreenHoldText">Hold</string>
+    <!-- Text for the onscreen "End call" button -->
+    <string name="onscreenEndCallText">End</string>
+    <!-- Text for the onscreen "Show Dialpad" button -->
+    <string name="onscreenShowDialpadText">Dialpad</string>
+    <!-- Text for the onscreen "Mute" button -->
+    <string name="onscreenMuteText">Mute</string>
+    <!-- Text for the onscreen "Add call" button -->
+    <string name="onscreenAddCallText">Add call</string>
+    <!-- Text for the onscreen "Merge calls" button -->
+    <string name="onscreenMergeCallsText">Merge calls</string>
+    <!-- Text for the onscreen "Swap calls" button -->
+    <string name="onscreenSwapCallsText">Swap</string>
+    <!-- Text for the onscreen "Manage calls" button -->
+    <string name="onscreenManageCallsText">Manage calls</string>
+    <!-- Text for the onscreen "Manage conference" button [CHAR LIMIT=20] -->
+    <string name="onscreenManageConferenceText">Manage conference</string>
+    <!-- Text for the onscreen "Audio" button that lets you switch
+         between speaker / bluetooth / earpiece [CHAR LIMIT=10] -->
+    <string name="onscreenAudioText">Audio</string>
+    <!-- Text for the onscreen "Video call" button used to change a voice call
+         to a video call. [CHAR LIMIT=10] -->
+    <string name="onscreenVideoCallText">Video call</string>
+
+    <!-- Menu item label in SIM Contacts: Import a single contact entry from the SIM card -->
+    <string name="importSimEntry">Import</string>
+    <!-- Menu item label in SIM Contacts: Import all contact entries from the SIM card -->
+    <string name="importAllSimEntries">Import all</string>
+    <!-- SIM Contacts: status message displayed while importing card -->
+    <string name="importingSimContacts">Importing SIM contacts</string>
+    <!-- Import a single contact entry from contacts to the SIM card -->
+    <string name="importToFDNfromContacts">Import from contacts</string>
+
+    <!-- Hearing aid settings -->
+    <string name="hac_mode_title">Hearing aids</string>
+    <string name="hac_mode_summary">Turn on hearing aid compatibility</string>
+
+    <!-- Service option entries.  -->
+    <string-array name="tty_mode_entries">
+        <item>TTY Off</item>
+        <item>TTY Full</item>
+        <item>TTY HCO</item>
+        <item>TTY VCO</item>
+    </string-array>
+
+    <!-- Do not translate. -->
+    <string-array name="tty_mode_values" translatable="false">
+        <!-- Do not translate. -->
+        <item>0</item>
+        <!-- Do not translate. -->
+        <item>1</item>
+        <!-- Do not translate. -->
+        <item>2</item>
+        <!-- Do not translate. -->
+        <item>3</item>
+    </string-array>
+
+    <!-- Dtmf tones settings -->
+    <!-- Title for the DTMF Tones options displayed in Call Settings -->
+    <string name="dtmf_tones_title">DTMF tones</string>
+    <!-- Summary for the DTMF Tones options displayed in Call Settings -->
+    <string name="dtmf_tones_summary">Set the length of DTMF tones</string>
+    <!-- Options displayed as part of DTMF Tones in Call Settings -->
+    <string-array name="dtmf_tone_entries">
+      <item>Normal</item>
+      <item>Long</item>
+    </string-array>
+    <!-- Do not translate. -->
+    <string-array name="dtmf_tone_values" translatable="false">
+       <item>0</item>
+       <item>1</item>
+    </string-array>
+
+    <!-- Title for the dialog used to display CDMA DisplayInfo -->
+    <string name="network_message">Network message</string>
+
+    <!-- OTA-specific strings -->
+    <!-- Title shown on OTA screen -->
+    <string name="ota_title_activate">Activate your phone</string>
+    <!-- Message displayed on the OTA activation screen. -->
+    <string name="ota_touch_activate">A special call needs to be made to activate your phone service.
+    \n\nAfter pressing \u201CActivate\u201D, listen to the instructions provided to activate your phone.</string>
+
+    <!-- Title of skip activation dialog -->
+    <string name="ota_skip_activation_dialog_title">Skip activation\?</string>
+    <!-- Message displayed in skip activation dialog  -->
+    <string name="ota_skip_activation_dialog_message">If you skip activation, you can\'t place calls or connect to mobile data networks (though you can connect to Wi-Fi networks). Until you activate your phone, you are asked to activate it each time you turn it on.</string>
+    <!-- Label shown on dialog button that allows the user to skip activation -->
+    <string name="ota_skip_activation_dialog_skip_label">Skip</string>
+
+    <!-- Button label within the OTA activation screen -->
+    <string name="ota_activate">Activate</string>
+    <!-- Title text shown when phone activation is successful -->
+    <string name="ota_title_activate_success">Phone is activated.</string>
+    <!-- Title text shown on screen where activation fails -->
+    <string name="ota_title_problem_with_activation">Problem with activation</string>
+    <!-- Message displayed on the OTA "listening" screen. This message
+         needs to be kept at 2 lines or less to be sure that there's
+         enough room for the dialpad. [CHAR LIMIT=80] -->
+    <string name="ota_listen">Follow the spoken instructions until you hear that activation is complete.</string>
+
+    <!-- Button label within the OTA listen screen -->
+    <string name="ota_speaker">Speaker</string>
+    <!-- String to be displayed on OTA listen screen once user has selected the
+         correct option to begin provisioning -->
+    <string name="ota_progress">Wait while your phone is being programmed.</string>
+    <!-- String to display within the OTA Fail Notice dialog -->
+    <string name="ota_failure">Programming unsuccessful</string>
+    <!-- String to be displayed on the OTA Fail/Success screen upon successful provisioning -->
+    <string name="ota_successful">Your phone is now activated.  It may take up to 15 minutes for service to start.</string>
+    <!-- String to be displayed on the OTA Fail/Success screen upon unsuccessful provisioning -->
+    <string name="ota_unsuccessful">Your phone didn\'t activate.
+    \nYou may need to find an area with better coverage (near a window, or outside).
+    \n\nTry again or call customer service for more options.</string>
+    <!-- String to display within the OTA SPC Fail Notice dialog -->
+    <string name="ota_spc_failure">EXCESS SPC FAILURES</string>
+    <!-- Button label in OTA listen screen that cancels activation and goes to the previous screen -->
+    <string name="ota_call_end">Back</string>
+    <!-- Button label shown on OTA error screen to allow the user to try again -->
+    <string name="ota_try_again">Try again</string>
+    <!-- Button label shown on OTA screens that have a next screen -->
+    <string name="ota_next">Next</string>
+
+    <!-- Emergency Callback Mode (ECM) -->
+    <string name="ecm_exit_dialog">EcmExitDialog</string>
+    <!-- ECM: Status bar notification message -->
+    <string name="phone_entered_ecm_text">Entered Emergency Callback Mode</string>
+    <!-- ECM: Notification title -->
+    <string name="phone_in_ecm_notification_title">Emergency Callback Mode</string>
+    <!-- ECM: Notification body -->
+    <string name="phone_in_ecm_call_notification_text">Data connection disabled</string>
+    <plurals name="phone_in_ecm_notification_time">
+        <!-- number of minutes is one -->
+        <item quantity="one">No data connection for <xliff:g id="count">%s</xliff:g> minute</item>
+        <!-- number of minutes is not equal to one -->
+        <item quantity="other">No data connection for <xliff:g id="count">%s</xliff:g> minutes</item>
+    </plurals>
+    <!-- ECM: Dialog box message for exiting from the notifications screen -->
+    <plurals name="alert_dialog_exit_ecm">
+        <!-- number of minutes is one -->
+        <item quantity="one">The phone will be in Emergency Callback mode for <xliff:g id="count">%s</xliff:g> minute. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
+        <!-- number of minutes is not equal to one -->
+        <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="count">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?</item>
+    </plurals>
+    <!-- ECM: Dialog box message for exiting from any other app -->
+    <plurals name="alert_dialog_not_avaialble_in_ecm">
+        <!-- number of minutes is one -->
+        <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="count">%s</xliff:g> minute. Do you want to exit now?</item>
+        <!-- number of minutes is not equal to one -->
+        <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="count">%s</xliff:g> minutes. Do you want to exit now?</item>
+    </plurals>
+    <!-- ECM: Dialog box message while in emergency call -->
+    <string name="alert_dialog_in_ecm_call">The selected action isn\'t available while in an emergency call.</string>
+    <!-- ECM: Progress text -->
+    <string name="progress_dialog_exiting_ecm">Exiting Emergency Callback mode</string>
+    <!-- ECM: ECM exit dialog choice -->
+    <string name="alert_dialog_yes">Yes</string>
+    <!-- ECM: ECM exit dialog choice -->
+    <string name="alert_dialog_no">No</string>
+    <!-- ECM: ECM exit dialog choice -->
+    <string name="alert_dialog_dismiss">Dismiss</string>
+
+    <!-- For incoming calls, this is a string we can get from a CDMA network instead of
+         the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
+    <string-array name="absent_num" translatable="false">
+        <item>ABSENT NUMBER</item>
+        <item>ABSENTNUMBER</item>
+    </string-array>
+
+    <!-- Preference for Voicemail service provider under "Voicemail" settings.
+         [CHAR LIMIT=40] -->
+    <string name="voicemail_provider">Service</string>
+
+    <!-- Preference for Voicemail setting of each provider.
+         [CHAR LIMIT=40] -->
+    <string name="voicemail_settings">Setup</string>
+
+    <!-- String to display in voicemail number summary when no voicemail num is set -->
+    <string name="voicemail_number_not_set">&lt;Not set&gt;</string>
+
+    <!-- Title displayed above settings coming after voicemail in the call features screen -->
+    <string name="other_settings">Other call settings</string>
+
+    <!-- Title displayed in the overlay when a call is placed using a 3rd party provider.
+         [CHAR LIMIT=40] -->
+    <string name="calling_via_template">Calling via <xliff:g id="provider_name">%s</xliff:g></string>
+
+    <!-- Use this as a default to describe the contact photo; currently for screen readers through accessibility. -->
+    <string name="contactPhoto">contact photo</string>
+    <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
+    <string name="goPrivate">go private</string>
+    <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
+    <string name="selectContact">select contact</string>
+
+
+    <!-- Start of SIP related strings defined from here. -->
+
+    <!-- Title displayed SIP settings coming after other call settings in the call features screen. [CHAR LIMIT=NONE] -->
+    <string name="sip_settings">Internet call settings</string>
+    <!-- Title displayed SIP account settings in the sip settings category. [CHAR LIMIT=NONE] -->
+    <string name="sip_accounts">Internet calling (SIP) accounts</string>
+    <!-- Title displayed SIP account settings in the sip settings category. [CHAR LIMIT=NONE] -->
+    <string name="sip_accounts_title">Accounts</string>
+    <!-- Title displayed for the button of receiving incoming SIP calls flag. Enabled for receiving calls. [CHAR LIMIT=NONE] -->
+    <string name="sip_receive_calls">Receive incoming calls</string>
+    <!-- Help user to understand that it will require more battery usage if the 'receiving incoming call' is enabled. [CHAR LIMIT=NONE] -->
+    <string name="sip_receive_calls_summary">Reduces battery life</string>
+    <!-- Title for the dialog of selecting the way we handle an outgoing call. [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_title">Use Internet calling</string>
+    <!-- Title for the dialog of selecting the way we handle an outgoing call (Wi-Fi only). [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_wifi_only_title">Use Internet calling (Wi-Fi only)</string>
+
+    <!-- Item of the Internet call option dialog: for routing all outgoing calls via SIP. [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_entry_1">For all calls when data network is available</string>
+    <!-- Item of the Internet call option dialog: for routing a outgoing call via SIP if the destination is a SIP URI. [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_entry_2">Only for Internet calls</string>
+    <!-- Item of the Internet call option dialog: for asking user to select the way for each outgoing call. [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_entry_3">Ask for each call</string>
+    <!-- Item of the Internet call (Wi-Fi only) option dialog: for routing all outgoing calls via SIP. [CHAR LIMIT=NONE] -->
+    <string name="sip_call_options_wifi_only_entry_1">For all calls</string>
+
+    <!-- Title of the dialog to select the phone type for the outgoing call. [CHAR LIMIT=NONE] -->
+    <string name ="pick_outgoing_call_phone_type">Place call</string>
+
+    <!-- Title of the dialog to select the phone among the list of phones for the outgoing call. [CHAR LIMIT=NONE] -->
+    <string name ="pick_outgoing_sip_phone">Use Internet calling account:</string>
+
+    <!-- Text of checkbox to remember the sip phone for all outbound calls. [CHAR LIMIT=NONE] -->
+    <string name ="remember_my_choice">Always use to place Internet calls</string>
+
+    <!-- Help text of checkbox to unset the default sip phone for all outbound calls. [CHAR LIMIT=NONE] -->
+    <string name ="reset_my_choice_hint">You can change which Internet calling account to use by default from the Phone &gt; Settings &gt; Internet call settings &gt; Accounts screen.</string>
+
+    <!-- Item of the dialog to select the phone type for outgoing call. [CHAR LIMIT=NONE] -->
+    <string name ="pstn_phone">Cell phone call</string>
+
+    <!-- Item of the dialog to select the phone type for outgoing call. [CHAR LIMIT=NONE] -->
+    <string name ="internet_phone">Internet call</string>
+
+    <!-- Title of the dialog to redirect the user to SIP settings. [CHAR LIMIT=NONE] -->
+    <string name ="no_sip_account_found_title">No Internet calling account</string>
+    <!-- Message of the dialog to redirect the user to SIP settings. [CHAR LIMIT=NONE] -->
+    <string name ="no_sip_account_found">There are no Internet calling accounts on this phone. Do you want to add one now?</string>
+    <!-- Menu item for no sip account found dialog -->
+    <string name="sip_menu_add">Add</string>
+
+    <!-- Title for the button to add a new sip account. [CHAR LIMIT=NONE] -->
+    <string name="add_sip_account">Add account</string>
+    <!-- Title for the button to remove a sip account. [CHAR LIMIT=NONE] -->
+    <string name="remove_sip_account">Remove account</string>
+    <!-- String of the category which lists all sip accounts. [CHAR LIMIT=NONE] -->
+    <string name="sip_account_list">SIP accounts</string>
+    <!-- Toast message to indicate that the system is saving the account. [CHAR LIMIT=NONE] -->
+    <string name="saving_account">Saving the account\u2026</string>
+    <!-- Toast message to indicate that the system is removing the account. [CHAR LIMIT=NONE] -->
+    <string name="removing_account">Removing the account\u2026</string>
+
+    <!-- Menu item when the menu button is pressed in the sip account editor. [CHAR LIMIT=NONE] -->
+    <string name="sip_menu_save">Save</string>
+    <!-- Menu item when the menu button is pressed in the sip account editor. [CHAR LIMIT=NONE] -->
+    <string name="sip_menu_discard">Discard</string>
+
+    <!-- Title of the alert dialog. [CHAR LIMIT=NONE] -->
+    <string name="alert_dialog_close">Close the profile</string>
+    <!-- Title of the button to show in a alert dialog. [CHAR LIMIT=NONE] -->
+    <string name="alert_dialog_ok">OK</string>
+    <!-- Title of the button to show in a alert dialog. [CHAR LIMIT=NONE] -->
+    <string name="close_profile">Close</string>
+
+    <!-- Summary of a SIP account in the list of SIP accounts, consists of primary account status and registration status. This string indicates that this SIP account is a primary account and the string placeholder is the registration status, which will be one of the strings with name starting with "registration_status_" below. [CHAR LIMIT=NONE] -->
+    <string name="primary_account_summary_with">Primary account. <xliff:g id="registration_status" example="Registering...">%s</xliff:g></string>
+    <!-- Text of Internet-call registration status, checking current registration status with SIP service [CHAR LIMIT=NONE] -->
+    <string name="registration_status_checking_status">Checking status...</string>
+    <!-- Text of Internet-call registration status, registering with SIP server in order to receive calls on this account [CHAR LIMIT=NONE] -->
+    <string name="registration_status_registering">Registering\u2026</string>
+    <!-- Text of Internet-call registration status, still trying to register with SIP server [CHAR LIMIT=NONE] -->
+    <string name="registration_status_still_trying">Still trying\u2026</string>
+    <!-- Text of Internet-call registration status, currently not receiving calls on this account [CHAR LIMIT=NONE] -->
+    <string name="registration_status_not_receiving">Not receiving calls.</string>
+    <!-- Text of Internet-call registration status, no data connection [CHAR LIMIT=NONE] -->
+    <string name="registration_status_no_data">Account registration stopped because there is no Internet connection.</string>
+    <!-- Text of Internet-call registration status, no Wi-Fi connection [CHAR LIMIT=NONE] -->
+    <string name="registration_status_no_wifi_data">Account registration stopped because there is no Wi-Fi connection.</string>
+    <!-- Text of Internet-call registration status, registration process is not running due to some error [CHAR LIMIT=NONE] -->
+    <string name="registration_status_not_running">Account registration unsuccessful.</string>
+    <!-- Text of Internet-call registration status, currently we can receive calls on this account [CHAR LIMIT=NONE] -->
+    <string name="registration_status_done">Receiving calls.</string>
+    <!-- Text of Internet-call registration status, registration failed with a reason; will try again later [CHAR LIMIT=NONE] -->
+    <string name="registration_status_failed_try_later">Account registration unsuccessful: (<xliff:g id="registration_error_message" example="timed out">%s</xliff:g>); will try later</string>
+    <!-- Text of Internet-call registration status, registration failed due to invalid credentials [CHAR LIMIT=NONE] -->
+    <string name="registration_status_invalid_credentials">Account registration unsuccessful: Incorrect username or password.</string>
+    <!-- Text of Internet-call registration status, registration failed due to unknown host exception [CHAR LIMIT=NONE] -->
+    <string name="registration_status_server_unreachable">Account registration unsuccessful: Check the server name.</string>
+    <!-- Text for describing the account's owner and status. For example, 'Active, in use by Google Talk', it means that the account managed by SIP service was registered by the application 'Google Talk' and the status is active. [CHAR LIMIT=NONE] -->
+    <string name="third_party_account_summary">This account is currently in use by the <xliff:g id="account_owner" example="Google Talk">%s</xliff:g> app.</string>
+
+
+    <!-- Title of the sip editor screen. [CHAR LIMIT=NONE] -->
+    <string name="sip_edit_title">SIP account details</string>
+    <!-- Title of the sip editor screen. [CHAR LIMIT=NONE] -->
+    <string name="sip_edit_new_title">SIP account details</string>
+
+    <!-- Text of the domain address preference. [CHAR LIMIT=NONE] -->
+    <string name="domain_address_title">Server</string>
+    <!-- Text of the username preference. [CHAR LIMIT=NONE] -->
+    <string name="username_title">Username</string>
+    <!-- Text of the password preference. [CHAR LIMIT=NONE] -->
+    <string name="password_title">Password</string>
+    <!-- Text of the display name preference. [CHAR LIMIT=NONE] -->
+    <string name="display_name_title">Display name</string>
+    <!-- Text of the outbound proxy address preference. [CHAR LIMIT=NONE] -->
+    <string name="proxy_address_title">Outbound proxy address</string>
+    <!-- Text of the sip server/proxy port number. [CHAR LIMIT=NONE] -->
+    <string name="port_title">Port number</string>
+    <!-- Text of the transport type preference. [CHAR LIMIT=NONE] -->
+    <string name="transport_title">Transport type</string>
+    <!-- Text of the keepalive preference. [CHAR LIMIT=NONE] -->
+    <string name="send_keepalive_title">Send keep-alive</string>
+    <!-- Text of the set-primary preference. Simplified from "Make this my primary account". [CHAR LIMIT=NONE] -->
+    <string name="set_primary_title">Set as primary account</string>
+    <!-- Text of the set-primary preference summary. [CHAR LIMIT=NONE] -->
+    <string name="set_primary_summary">Used for outbound calls</string>
+    <!-- Text of the advanced settings section. [CHAR LIMIT=NONE] -->
+    <string name="advanced_settings">Optional settings</string>
+    <!-- Text of the username used in authentication. [CHAR LIMIT=NONE] -->
+    <string name="auth_username_title">Authentication username</string>
+    <!-- Help text of the auth_username field. [CHAR LIMIT=NONE] -->
+    <string name="auth_username_summary">Username used for authentication</string>
+
+    <!-- Initial status of the preferences is '<Not set>'. [CHAR LIMIT=NONE] -->
+    <string name="default_preference_summary">&lt;Not set&gt;</string>
+    <!-- Default value for the display-name preference summary. [CHAR LIMIT=NONE] -->
+    <string name="display_name_summary">&lt;Same as username&gt;</string>
+    <!-- Default value for the outbound-proxy-address preference summary. [CHAR LIMIT=NONE] -->
+    <string name="optional_summary">&lt;Optional&gt;</string>
+
+    <!-- Default sip server/proxy port number. -->
+    <string translatable="false" name="default_port">5060</string>
+    <!-- Default sip server/proxy transport protocol. -->
+    <string translatable="false" name="default_transport">UDP</string>
+
+
+    <!-- Hint to show the advanced settings section. [CHAR LIMIT=NONE] -->
+    <string name="advanced_settings_show">▷ Touch to show all</string>
+    <!-- Hint to hide the advanced settings section. [CHAR LIMIT=NONE] -->
+    <string name="advanced_settings_hide">▽ Touch to hide all</string>
+
+    <!-- Text in an alert dialog telling the user that some input field (name of which is also part of the strings being translated above) is required and can not be left blank. [CHAR LIMIT=NONE] -->
+    <string name="empty_alert"><xliff:g id="input_field_name" example="Username, Password...">%s</xliff:g> is required and can\'t be left blank.</string>
+    <!-- Showing that port number is out of range in an alert dialog. [CHAR LIMIT=NONE] -->
+    <string name="not_a_valid_port">Port number should be within 1000 and 65534.</string>
+
+    <!-- Title of the alert dialog to notify user that there is no Internet connectivity. [CHAR LIMIT=40] -->
+    <string name="no_internet_available_title">No Internet connection</string>
+    <!-- Title of the alert dialog to notify user that there is no Wi-Fi connectivity. [CHAR LIMIT=40] -->
+    <string name="no_wifi_available_title">No Wi-Fi connection</string>
+    <!-- Message of the alert dialog to notify user that there is no Internet connectivity. [CHAR LIMIT=NONE] -->
+    <string name="no_internet_available">To place an Internet call, check your Internet connection first.</string>
+    <!-- Message of the alert dialog to notify user that there is no Wi-Fi connectivity. [CHAR LIMIT=NONE] -->
+    <string name="no_wifi_available">You need to be connected to a Wi-Fi network for Internet calls (use the Wireless &amp; Network settings).</string>
+    <!-- Title of the alert dialog to notify user that Internet call is not supported. [CHAR LIMIT=40] -->
+    <string name="no_voip">Internet calling not supported</string>
+
+    <!-- Option for whether the SIP service should send keepalive messages. [CHAR LIMIT=40] -->
+    <string translatable="true" name="sip_system_decide">Automatic</string>
+    <!-- Option for whether the SIP service should send keepalive messages. [CHAR LIMIT=40] -->
+    <string translatable="true" name="sip_always_send_keepalive">Always send</string>
+
+    <!-- Do not translate the following strings. Used for the Internet call options. Need to be in-sync with Settings.System.SIP_ strings. -->
+    <string translatable="false" name="sip_always">SIP_ALWAYS</string>
+    <string translatable="false" name="sip_address_only">SIP_ADDRESS_ONLY</string>
+    <string translatable="false" name="sip_ask_me_each_time">SIP_ASK_ME_EACH_TIME</string>
+
+    <!-- Do not translate the following strings. Used for the preference keys -->
+    <string translatable="false" name="domain_address">SipDomain</string>
+    <string translatable="false" name="username">UserName</string>
+    <string translatable="false" name="password">Password</string>
+    <string translatable="false" name="display_name">DisplayName</string>
+    <string translatable="false" name="proxy_address">ProxyAddress</string>
+    <string translatable="false" name="port">Port</string>
+    <string translatable="false" name="transport">Protocol</string>
+    <string translatable="false" name="send_keepalive">SendKeepAlive</string>
+    <string translatable="false" name="set_primary">SetPrimary</string>
+    <string translatable="false" name="advanced_settings_container">advanced settings container</string>
+    <string translatable="false" name="auth_username">AuthUserName</string>
+    <!-- End of SIP settings related strings -->
+
+    <!-- Dialog title to notify user that Voice calling is not supported
+         on this device. [CHAR LIMIT=40] -->
+    <string name="not_voice_capable">Voice calling not supported</string>
+
+    <!-- Canned response for the "Respond via SMS" feature for incoming calls. [CHAR LIMIT=35] -->
+    <string name="respond_via_sms_canned_response_1">Can\'t talk now. What\'s up?</string>
+    <!-- Canned response for the "Respond via SMS" feature for incoming calls. [CHAR LIMIT=35] -->
+    <string name="respond_via_sms_canned_response_2">I\'ll call you right back.</string>
+    <!-- Canned response for the "Respond via SMS" feature for incoming calls. [CHAR LIMIT=35] -->
+    <string name="respond_via_sms_canned_response_3">I\'ll call you later.</string>
+    <!-- Canned response for the "Respond via SMS" feature for incoming calls. [CHAR LIMIT=35] -->
+    <string name="respond_via_sms_canned_response_4">Can\'t talk now. Call me later?</string>
+    <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_custom_message">Write your own...</string>
+
+    <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_setting_title">Quick responses</string>
+    <!-- Slightly more verbose title of settings screen for managing the
+         "Respond via SMS" feature. [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_setting_title_2">Edit quick responses</string>
+    <!-- Settings summary string for the "Respond via SMS" feature. [CHAR LIMIT=40] -->
+    <string name="respond_via_sms_setting_summary"></string>
+    <!-- Dialog title when changing a string for the "Respond via SMS" feature. [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_edittext_dialog_title">Quick response</string>
+    <!-- Menu option in  "Respond via SMS" that allows user to reset the default
+         activity used to handle "Respond via SMS" [CHAR LIMIT=30] -->
+    <string name="respond_via_sms_menu_reset_default_activity">Reset default app</string>
+
+    <!-- "Respond via SMS": Confirmation message shown after sending
+         a text response. [CHAR LIMIT=40] -->
+    <string name="respond_via_sms_confirmation_format">Message sent to <xliff:g id="phone_number">%s</xliff:g>.</string>
+
+    <!-- String describing the image on ImageButton one
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_one">one</string>
+
+    <!-- String describing the image on ImageButton two
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_two">two</string>
+
+    <!-- String describing the image on ImageButton three
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_three">three</string>
+
+    <!-- String describing the image on ImageButton four
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_four">four</string>
+
+    <!-- String describing the image on ImageButton five
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_five">five</string>
+
+    <!-- String describing the image on ImageButton six
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_six">six</string>
+
+    <!-- String describing the image on ImageButton seven
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_seven">seven</string>
+
+    <!-- String describing the image on ImageButton eight
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_eight">eight</string>
+
+    <!-- String describing the image on ImageButton nine
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_nine">nine</string>
+
+    <!-- String describing the image on ImageButton star
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_star">star</string>
+
+    <!-- String describing the image on ImageButton zero
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_zero">zero</string>
+
+    <!-- String describing the image on ImageButton pound
+
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+               This is especially valuable for views without textual representation like ImageView.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_image_button_pound">pound</string>
+
+    <!-- String describing the Dial ImageButton
+
+         Used by AccessibilityService to announce the purpose of the button.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_dial_button">dial</string>
+
+    <!-- String describing the Delete/Backspace ImageButton
+
+         Used by AccessibilityService to announce the purpose of the button.
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_delete_button">backspace</string>
+
+    <!-- Content description of the speakerphone enabled notification icon for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+    <string name="accessibility_speakerphone_enabled">Speakerphone enabled.</string>
+
+    <!-- Content description of the call muted notification icon for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+    <string name="accessibility_call_muted">Call muted.</string>
+
+    <!-- Description of the answer target in the Slide unlock screen of Phone. [CHAR LIMIT=NONE] -->
+    <string name="description_target_answer">Answer</string>
+    <!-- Description of the send_sms target in the Slide unlock screen of Phone. [CHAR LIMIT=NONE] -->
+    <string name="description_target_send_sms">Send SMS</string>
+    <!-- Description of the decline on target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
+    <string name="description_target_decline">Decline</string>
+
+    <!-- Dialog title for the vibration settings for voicemail notifications [CHAR LIMIT=40] -->
+    <string name="voicemail_notification_vibrate_when_title" msgid="8731372580674292759">Vibrate</string>
+    <!-- Dialog title for the vibration settings for voice mail notifications [CHAR LIMIT=40]-->
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="8995274609647451109">Vibrate</string>
+
+    <!-- Voicemail ringtone title. The user clicks on this preference to select
+         which sound to play when a voicemail notification is received.
+         [CHAR LIMIT=30] -->
+    <string name="voicemail_notification_ringtone_title">Sound</string>
+
+    <!--  The string used to describe a notification if it is the default one in the system. For
+          example, if the user selects the default notification, it will appear as something like
+          Default sound(Capella) in the notification summary.
+          [CHAR LIMIT=40] -->
+    <string name="default_notification_description">Default sound (<xliff:g id="default_sound_title">%1$s</xliff:g>)</string>
+
+    <!-- The default value value for voicemail notification. -->
+    <string name="voicemail_notification_vibrate_when_default" translatable="false">never</string>
+
+    <!-- Actual values used in our code for voicemail notifications. DO NOT TRANSLATE -->
+    <string-array name="voicemail_notification_vibrate_when_values" translatable="false">
+        <item>always</item>
+        <item>silent</item>
+        <item>never</item>
+    </string-array>
+
+    <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
+    <string name="ringtone_title" msgid="5379026328015343686">Phone ringtone</string>
+
+    <!-- Setting option name to enable or disable vibration when ringing
+         the phone.
+         [CHAR LIMIT=30] -->
+    <string name="vibrate_on_ring_title">Vibrate when ringing</string>
+
+    <!-- Setting option name to enable or disable DTMF tone sound
+         [CHAR LIMIT=30] -->
+    <string name="dtmf_tone_enable_title">Dial pad touch tones</string>
+
+    <!--  Setting option name to enable or disable dialpad autocomplete functionality
+         [CHAR LIMIT=30] -->
+    <string name="dial_pad_autocomplete">Dial pad autocomplete</string>
+
+    <!-- Title for the category "ringtone", which is shown above ringtone and vibration
+         related settings.
+         [CHAR LIMIT=30] -->
+    <string name="preference_category_ringtone">Ringtone &amp; Vibrate</string>
+</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
new file mode 100644
index 0000000..88044b9
--- /dev/null
+++ b/res/values/styles.xml
@@ -0,0 +1,255 @@
+<?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>
+    <drawable name="grayBg">#FF333333</drawable>
+
+    <style name="IccPanel">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowBackground">@drawable/grayBg</item>
+    </style>
+
+    <style name="info_label">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textAppearance">@style/TextAppearance.info_label</item>
+        <item name="android:paddingEnd">4dip</item>
+    </style>
+
+    <style name="info_layout">
+        <item name="android:orientation">vertical</item>
+        <item name="android:paddingStart">10dip</item>
+        <item name="android:paddingTop">10dip</item>
+        <item name="android:paddingEnd">10dip</item>
+        <item name="android:paddingBottom">10dip</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+    </style>
+
+    <style name="entry_layout">
+        <item name="android:orientation">vertical</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="TextAppearance" parent="android:TextAppearance">
+    </style>
+
+    <style name="TextAppearance.info_label">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <!-- Preference Style for the phone number preferences -->
+    <style name="EditPhoneNumberPreference">
+        <item name="enableButtonText">@string/enable</item>
+        <item name="disableButtonText">@string/disable</item>
+        <item name="changeNumButtonText">@string/change_num</item>
+        <item name="confirmMode">activation</item>
+    </style>
+
+    <!-- OTA Call Card styles -->
+    <style name="ccOtaButtonBar">
+        <!-- TODO: change height to 'wrap_content' when layout bug is fixed -->
+        <item name="android:layout_height">60dip</item> 
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:background">@android:drawable/bottom_bar</item>
+    </style>
+
+    <style name="ccOtaButton">
+        <item name="android:layout_width">150dip</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">5dip</item>
+        <item name="android:layout_marginBottom">5dip</item>
+    </style>
+
+    <style name="ccOtaNextButton" parent="ccOtaButton">
+        <!-- <item name="android:drawableEnd">@drawable/ic_btn_next</item>
+             <item name="android:drawablePadding">10dip</item>
+          -->
+        <item name="android:layout_alignParentBottom">true</item>
+        <item name="android:layout_alignParentEnd">true</item>
+        <item name="android:layout_marginEnd">4dip</item>
+    </style>
+
+    <style name="ccOtaSkipButton" parent="ccOtaButton">
+        <item name="android:layout_alignParentBottom">true</item>
+        <item name="android:layout_alignParentStart">true</item>
+        <item name="android:layout_marginStart">4dip</item>
+    </style>
+
+    <style name="ccOtaWizardTitle">
+        <item name="android:textSize">22sp</item>
+        <item name="android:textColor">@color/ota_title_color</item>
+    </style>
+
+    <style name="ccOtaTextPrimary">
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:textSize">17sp</item>
+    </style>
+
+    <!-- Buttons in the main "button row" of the in-call onscreen touch UI. -->
+    <style name="InCallButton">
+        <item name="android:layout_width">0px</item>
+        <item name="android:layout_height">@dimen/in_call_button_height</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:background">?android:attr/selectableItemBackground</item>
+    </style>
+
+    <!-- "Compound button" variation of InCallButton.
+         These buttons have the concept of two states: checked and unchecked.
+         (This style is just like "InCallButton" except that we also
+         clear out android:textOn and android:textOff, to avoid the default
+         text label behavior of the ToggleButton class.) -->
+    <style name="InCallCompoundButton" parent="InCallButton">
+        <item name="android:textOn">@null</item>
+        <item name="android:textOff">@null</item>
+    </style>
+
+    <style name="VerticalSeparator">
+        <item name="android:layout_width">2dp</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:background">@android:color/black</item>
+    </style>
+
+    <!-- "End" button; similar to InCallButton. -->
+    <style name="InCallEndButton">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_height">@dimen/in_call_end_button_height</item>
+        <item name="android:layout_weight">1</item>
+    </style>
+
+    <!-- Buttons in extra button row. -->
+    <style name="InCallExtraRowButton">
+        <item name="android:layout_width">@dimen/extra_row_button_width</item>
+        <item name="android:layout_height">@dimen/extra_row_button_height</item>
+        <item name="android:background">@null</item>
+    </style>
+
+    <!-- Text label drawn alongside buttons in the "extra button row" of
+         the in-call onscreen touch UI. -->
+    <style name="InCallExtraRowButtonLabel">
+        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
+        <item name="android:textColor">@color/incall_call_banner_text_color</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:layout_marginStart">5dip</item>
+        <item name="android:layout_marginEnd">5dip</item>
+    </style>
+
+    <!-- Theme for the activity com.android.phone.Settings, which is the
+         "Mobile network settings" screen (used on non-voice-capable
+         tablets as well as regular phone devices.) -->
+    <style name="Theme.Settings" parent="@android:style/Theme.Holo.DialogWhenLarge">
+        <item name="android:windowCloseOnTouchOutside">true</item>
+    </style>
+
+    <style name="InCallAnimationStyle" parent="@*android:style/Animation.Holo.Activity">
+        <!-- Suppress task-to-task animation happening during the transition from
+             OutgoingCallBroadcaster (and SipOptionHandler) to InCallScreen.
+             The transition unexpectedly happens during the transition (inside the phone task),
+             because InCallScreen is using android:launchMode="singleInstance".
+
+             - taskOpenEnterAnimation/taskOpenExitAnimation is used for the first time
+               InCallScreen instance is created.
+
+             - taskToFrontEnterAnimation/taskToFrontExitAnimation is used when InCallScreen
+               is already available.
+               (Note that InCallScreen won't be destroyed once it is created)
+
+             TODO: try removing the flag instead -->
+        <item name="*android:taskOpenEnterAnimation">@*android:anim/activity_open_enter</item>
+        <item name="*android:taskOpenExitAnimation">@*android:anim/activity_open_exit</item>
+        <item name="*android:taskToFrontEnterAnimation">@*android:anim/activity_open_enter</item>
+        <item name="*android:taskToFrontExitAnimation">@*android:anim/activity_open_exit</item>
+    </style>
+
+    <style name="OutgoingAnimationStyle" parent="@*android:style/Animation.Holo.Activity">
+        <!-- Suppress task-to-task transition animation happening from
+             DialtactsActivity to OutgoingCallBroadcaster. -->
+        <item name="*android:taskOpenEnterAnimation">@*android:anim/activity_open_enter</item>
+        <item name="*android:taskOpenExitAnimation">@*android:anim/activity_open_exit</item>
+    </style>
+
+    <!-- Theme for the InCallScreen activity.  This gives us a totally black
+         window background instead of the default dark grey.  (We don't just use
+         Theme.Black.NoTitleBar directly, since we want any popups or dialogs
+         from the InCallScreen to have the correct holo style. -->
+    <style name="Theme.InCallScreen" parent="@android:style/Theme.Holo.NoActionBar">
+        <item name="android:windowBackground">@android:color/black</item>
+
+        <item name="*android:windowAnimationStyle">@style/InCallAnimationStyle</item>
+    </style>
+
+    <style name="DialpadButtonStyle">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:background">?android:attr/selectableItemBackground</item>
+        <item name="android:soundEffectsEnabled">false</item>
+    </style>
+
+    <style name="ContactsActionBarStyle"
+           parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
+        <item name="android:background">@color/people_app_theme_color</item>
+        <item name="android:backgroundStacked">@color/people_app_theme_color</item>
+    </style>
+
+    <style name="SimImportTheme"
+           parent="@android:style/Theme.Holo.Light.DarkActionBar">
+        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
+    </style>
+
+    <style name="EmergencyDialerTheme" parent="@android:style/Theme.Holo">
+        <item name="android:windowBackground">@android:color/black</item>
+    </style>
+
+    <style name="OutgoingCallBroadcasterTheme" parent="@android:style/Theme.Holo.NoActionBar">
+        <item name="android:windowBackground">@android:color/black</item>
+
+        <item name="*android:windowAnimationStyle">@style/OutgoingAnimationStyle</item>
+    </style>
+
+    <style name="SipCallOptionHandlerTheme" parent="@android:style/Theme.Holo.NoActionBar">
+        <item name="android:windowBackground">@android:color/black</item>
+    </style>
+
+    <style name="DialtactsDigitsTextAppearance">
+        <item name="android:maxLines">1</item>
+        <item name="android:textSize">@dimen/dialpad_digits_text_size</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:freezesText">true</item>
+        <item name="android:editable">true</item>
+        <item name="android:cursorVisible">false</item>
+    </style>
+
+    <style name="PrimaryCallInfoPrimaryCallBanner">
+        <item name="android:layout_alignParentTop">true</item>
+    </style>
+    <style name="PrimaryCallInfoSecondaryInfoContainer">
+        <item name="android:layout_below">@id/primary_call_banner</item>
+    </style>
+
+    <style name="SecondaryCallInfoSecondaryCallName">
+        <item name="android:layout_gravity">top|left</item>
+    </style>
+    <style name="SecondaryCallInfoSecondaryCallStatus">
+        <item name="android:layout_gravity">top|right</item>
+    </style>
+</resources>
diff --git a/res/xml/call_feature_setting.xml b/res/xml/call_feature_setting.xml
new file mode 100644
index 0000000..a418ee2
--- /dev/null
+++ b/res/xml/call_feature_setting.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+    android:title="@string/call_settings">
+
+    <PreferenceCategory
+        android:key="button_ringtone_category_key"
+        android:title="@string/preference_category_ringtone"
+        android:persistent="false">
+
+        <com.android.phone.DefaultRingtonePreference
+            android:key="button_ringtone_key"
+            android:title="@string/ringtone_title"
+            android:dialogTitle="@string/ringtone_title"
+            android:persistent="false"
+            android:ringtoneType="ringtone" />
+
+        <CheckBoxPreference
+            android:key="button_vibrate_on_ring"
+            android:title="@string/vibrate_on_ring_title"
+            android:persistent="false"
+            android:defaultValue="false" />
+    </PreferenceCategory>
+
+  <PreferenceCategory
+      android:key="button_misc_category_key"
+      android:title="@string/other_settings"
+      android:persistent="false" />
+
+  <PreferenceScreen
+      android:key="button_voicemail_category_key"
+      android:title="@string/voicemail"
+      android:persistent="false">
+      <ListPreference
+          android:key="button_voicemail_provider_key"
+          android:title="@string/voicemail_provider"
+          android:summary="@string/sum_voicemail_choose_provider"
+          android:defaultValue=""
+          android:persistent="true" />
+      <PreferenceScreen
+          android:key="button_voicemail_setting_key"
+          android:title="@string/voicemail_settings"
+          android:persistent="false">
+
+          <!-- Note for all com.android.phone.EditPhoneNumberPreference objects
+
+               The last several attributes are for use with the EditText field
+               in the dialog.  These attributes are forwarded to that field
+               when the edittext is created.  The attributes include:
+               1. android:singleLine
+               2. android:autoText
+               3. android:background -->
+
+          <com.android.phone.EditPhoneNumberPreference
+              android:key="button_voicemail_key"
+              android:title="@string/voicemail_settings_number_label"
+              android:persistent="false"
+              android:dialogTitle="@string/voicemail"
+              phone:confirmMode="confirm"
+              android:singleLine="true"
+              android:autoText="false" />
+      </PreferenceScreen>
+
+      <RingtonePreference
+          android:key="button_voicemail_notification_ringtone_key"
+          android:title="@string/voicemail_notification_ringtone_title"
+          android:persistent="true"
+          android:ringtoneType="notification"
+          android:defaultValue="content://settings/system/notification_sound" />
+      <CheckBoxPreference
+          android:key="button_voicemail_notification_vibrate_key"
+          android:title="@string/voicemail_notification_vibrate_when_title"
+          android:persistent="true"
+          />
+  </PreferenceScreen>
+
+  <CheckBoxPreference
+      android:key="button_play_dtmf_tone"
+      android:title="@string/dtmf_tone_enable_title"
+      android:persistent="false"
+      android:defaultValue="true" />
+
+  <CheckBoxPreference
+      android:key="button_dialpad_autocomplete"
+      android:title="@string/dial_pad_autocomplete"
+      android:persistent="false"
+      android:defaultValue="false" />
+
+  <PreferenceScreen
+      android:key="button_respond_via_sms_key"
+      android:title="@string/respond_via_sms_setting_title"
+      android:summary="@string/respond_via_sms_setting_summary"
+      android:persistent="false">
+      <intent
+          android:action="android.intent.action.MAIN"
+          android:targetPackage="com.android.phone"
+          android:targetClass="com.android.phone.RespondViaSmsManager$Settings" />
+  </PreferenceScreen>
+
+  <PreferenceScreen
+      android:key="button_fdn_key"
+      android:title="@string/fdn"
+      android:persistent="false">
+      <intent android:action="android.intent.action.MAIN"
+          android:targetPackage="com.android.phone"
+          android:targetClass="com.android.phone.FdnSetting" />
+  </PreferenceScreen>
+
+    <CheckBoxPreference
+        android:key="button_auto_retry_key"
+        android:title="@string/auto_retry_mode_title"
+        android:persistent="false"
+        android:summary="@string/auto_retry_mode_summary"/>
+
+    <ListPreference
+        android:key="button_tty_mode_key"
+        android:title="@string/tty_mode_option_title"
+        android:summary="@string/tty_mode_option_summary"
+        android:persistent="false"
+        android:entries="@array/tty_mode_entries"
+        android:entryValues="@array/tty_mode_values"/>
+
+     <CheckBoxPreference
+        android:key="button_hac_key"
+        android:title="@string/hac_mode_title"
+        android:persistent="true"
+        android:summary="@string/hac_mode_summary"/>
+
+    <ListPreference
+        android:key="button_dtmf_settings"
+        android:title="@string/dtmf_tones_title"
+        android:summary="@string/dtmf_tones_summary"
+        android:entries="@array/dtmf_tone_entries"
+        android:entryValues="@array/dtmf_tone_values"/>
+
+    <PreferenceScreen
+        android:key="button_gsm_more_expand_key"
+        android:title="@string/labelGSMMore"
+        android:summary="@string/sum_gsm_call_settings"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.GsmUmtsCallOptions"/>
+    </PreferenceScreen>
+
+    <PreferenceScreen
+        android:key="button_cdma_more_expand_key"
+        android:title="@string/labelCDMAMore"
+        android:summary="@string/sum_cdma_call_settings"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.CdmaCallOptions"/>
+    </PreferenceScreen>
+</PreferenceScreen>
diff --git a/res/xml/callforward_options.xml b/res/xml/callforward_options.xml
new file mode 100644
index 0000000..0ff1e90
--- /dev/null
+++ b/res/xml/callforward_options.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+     xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+     android:title="@string/call_forwarding_settings">
+
+
+    <!-- Note for all com.android.phone.EditPreference objects
+
+         The last several attributes are for use with the EditText field
+         in the dialog.  These attributes are forwarded to that field
+         when the edittext is created.  The attributes include:
+           1. android:singleLine
+           2. android:autoText
+           3. android:background -->
+
+    <com.android.phone.CallForwardEditPreference
+        android:key="button_cfu_key"
+        android:title="@string/labelCFU"
+        android:persistent="false"
+        android:summaryOn="@string/sum_cfu_enabled"
+        android:summaryOff="@string/sum_cfu_disabled"
+        android:dialogTitle="@string/labelCFU"
+        android:dialogMessage="@string/messageCFU"
+        phone:confirmMode="activation"
+        phone:serviceClass="voice"
+        phone:reason="unconditional"
+        android:singleLine="true"
+        android:autoText="false"
+        android:enabled="false" />
+
+    <!-- See note on com.android.phone.EditPreference above -->
+    <com.android.phone.CallForwardEditPreference
+        android:key="button_cfb_key"
+        android:title="@string/labelCFB"
+        android:persistent="false"
+        android:summaryOn="@string/sum_cfb_enabled"
+        android:summaryOff="@string/sum_cfb_disabled"
+        android:dialogTitle="@string/labelCFB"
+        android:dialogMessage="@string/messageCFB"
+        phone:confirmMode="activation"
+        phone:serviceClass="voice"
+        phone:reason="busy"
+        android:dependency="button_cfu_key"
+        android:singleLine="true"
+        android:autoText="false"
+        android:enabled="false" />
+
+    <!-- See note on com.android.phone.EditPreference above -->
+    <com.android.phone.CallForwardEditPreference
+        android:key="button_cfnry_key"
+        android:title="@string/labelCFNRy"
+        android:persistent="false"
+        android:summaryOn="@string/sum_cfnry_enabled"
+        android:summaryOff="@string/sum_cfnry_disabled"
+        android:dialogTitle="@string/labelCFNRy"
+        android:dialogMessage="@string/messageCFNRy"
+        phone:confirmMode="activation"
+        phone:serviceClass="voice"
+        phone:reason="no_reply"
+        android:dependency="button_cfu_key"
+        android:singleLine="true"
+        android:autoText="false"
+        android:enabled="false" />
+
+    <!-- See note on com.android.phone.EditPreference above -->
+    <com.android.phone.CallForwardEditPreference
+        android:key="button_cfnrc_key"
+        android:title="@string/labelCFNRc"
+        android:persistent="false"
+        android:summaryOn="@string/sum_cfnrc_enabled"
+        android:summaryOff="@string/sum_cfnrc_disabled"
+        android:dialogTitle="@string/labelCFNRc"
+        android:dialogMessage="@string/messageCFNRc"
+        phone:confirmMode="activation"
+        phone:serviceClass="voice"
+        phone:reason="not_reachable"
+        android:dependency="button_cfu_key"
+        android:singleLine="true"
+        android:autoText="false"
+        android:enabled="false" />
+</PreferenceScreen>
diff --git a/res/xml/carrier_select.xml b/res/xml/carrier_select.xml
new file mode 100644
index 0000000..bc223f1
--- /dev/null
+++ b/res/xml/carrier_select.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:key="list_networks_key" 
+        android:title="@string/label_available">
+    <Preference 
+        android:key="button_srch_netwrks_key" 
+        android:title="@string/search_networks"
+        android:summary="@string/sum_search_networks"
+        android:persistent="false"/>
+    <Preference 
+        android:key="button_auto_select_key" 
+        android:title="@string/select_automatically"
+        android:summary="@string/sum_select_automatically"
+        android:persistent="false"/>
+</PreferenceScreen>
diff --git a/res/xml/cdma_call_privacy.xml b/res/xml/cdma_call_privacy.xml
new file mode 100644
index 0000000..f1a4c94
--- /dev/null
+++ b/res/xml/cdma_call_privacy.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.phone"
+        android:title="@string/additional_cdma_call_settings">
+
+    <com.android.phone.CdmaVoicePrivacyCheckBoxPreference
+        android:key="button_voice_privacy_key"
+        android:title="@string/voice_privacy"
+        android:persistent="false"
+        android:summary="@string/voice_privacy_summary"/>
+</PreferenceScreen>
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
new file mode 100644
index 0000000..89e2fab
--- /dev/null
+++ b/res/xml/cdma_options.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
+
+    <com.android.phone.CdmaSystemSelectListPreference
+        android:key="cdma_system_select_key"
+        android:title="@string/cdma_system_select_title"
+        android:summary="@string/cdma_system_select_summary"
+        android:entries="@array/cdma_system_select_choices"
+        android:entryValues="@array/cdma_system_select_values"
+        android:dialogTitle="@string/cdma_system_select_dialogtitle" />
+
+    <com.android.phone.CdmaSubscriptionListPreference
+        android:key="cdma_subscription_key"
+        android:title="@string/cdma_subscription_title"
+        android:summary="@string/cdma_subscription_summary"
+        android:entries="@array/cdma_subscription_choices"
+        android:entryValues="@array/cdma_subscription_values"
+        android:dialogTitle="@string/cdma_subscription_dialogtitle" />
+
+    <PreferenceScreen
+        android:key="cdma_activate_device_key"
+        android:title="@string/cdma_activate_device">
+        <intent android:action="com.android.phone.PERFORM_VOICELESS_CDMA_PROVISIONING">
+            <extra android:name="autoStart" android:value="true" />
+        </intent>
+    </PreferenceScreen>
+</PreferenceScreen>
diff --git a/res/xml/cell_broadcast_sms.xml b/res/xml/cell_broadcast_sms.xml
new file mode 100644
index 0000000..4b36d52
--- /dev/null
+++ b/res/xml/cell_broadcast_sms.xml
@@ -0,0 +1,317 @@
+<?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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
+        
+    <PreferenceCategory 
+        android:title="@string/cell_broadcast_sms">
+            
+    <CheckBoxPreference 
+        android:key="button_enable_disable_cell_bc_sms" 
+        android:title="@string/enable_disable_cell_bc_sms"
+        android:persistent="false"
+        android:summaryOn="@string/cell_bc_sms_enable"
+        android:summaryOff="@string/cell_bc_sms_disable"/>
+    
+    </PreferenceCategory>
+    
+    <PreferenceCategory
+            android:title="@string/cb_sms_settings">
+        
+        <ListPreference
+            android:key="list_language" 
+            android:title="@string/list_language_title"
+            android:summary="@string/list_language_summary"
+            android:entries="@array/list_language_entries"
+            android:entryValues="@array/list_language_values"
+            android:dialogTitle="@string/list_language_dtitle"/>
+            
+        <CheckBoxPreference 
+                android:key="button_emergency_broadcast" 
+                android:title="@string/enable_disable_emergency_broadcast"
+                android:persistent="false"
+                android:summaryOn="@string/emergency_broadcast_enable"
+                android:summaryOff="@string/emergency_broadcast_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_administrative" 
+                android:title="@string/enable_disable_administrative"
+                android:persistent="false"
+                android:summaryOn="@string/administrative_enable"
+                android:summaryOff="@string/administrative_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_maintenance" 
+                android:title="@string/enable_disable_maintenance"
+                android:persistent="false"
+                android:summaryOn="@string/maintenance_enable"
+                android:summaryOff="@string/maintenance_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_local_weather" 
+                android:title="@string/enable_disable_local_weather"
+                android:persistent="false"
+                android:summaryOn="@string/local_weather_enable"
+                android:summaryOff="@string/local_weather_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_atr" 
+                android:title="@string/enable_disable_atr"
+                android:persistent="false"
+                android:summaryOn="@string/atr_enable"
+                android:summaryOff="@string/atr_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_lafs" 
+                android:title="@string/enable_disable_lafs"
+                android:persistent="false"
+                android:summaryOn="@string/lafs_enable"
+                android:summaryOff="@string/lafs_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_restaurants" 
+                android:title="@string/enable_disable_restaurants"
+                android:persistent="false"
+                android:summaryOn="@string/restaurants_enable"
+                android:summaryOff="@string/restaurants_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_lodgings" 
+                android:title="@string/enable_disable_lodgings"
+                android:persistent="false"
+                android:summaryOn="@string/lodgings_enable"
+                android:summaryOff="@string/lodgings_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_retail_directory" 
+                android:title="@string/enable_disable_retail_directory"
+                android:persistent="false"
+                android:summaryOn="@string/retail_directory_enable"
+                android:summaryOff="@string/retail_directory_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_advertisements" 
+                android:title="@string/enable_disable_advertisements"
+                android:persistent="false"
+                android:summaryOn="@string/advertisements_enable"
+                android:summaryOff="@string/advertisements_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_stock_quotes" 
+                android:title="@string/enable_disable_stock_quotes"
+                android:persistent="false"
+                android:summaryOn="@string/stock_quotes_enable"
+                android:summaryOff="@string/stock_quotes_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_eo" 
+                android:title="@string/enable_disable_eo"
+                android:persistent="false"
+                android:summaryOn="@string/eo_enable"
+                android:summaryOff="@string/eo_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_mhh" 
+                android:title="@string/enable_disable_mhh"
+                android:persistent="false"
+                android:summaryOn="@string/mhh_enable"
+                android:summaryOff="@string/mhh_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_technology_news" 
+                android:title="@string/enable_disable_technology_news"
+                android:persistent="false"
+                android:summaryOn="@string/technology_news_enable"
+                android:summaryOff="@string/technology_news_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_multi_category" 
+                android:title="@string/enable_disable_multi_category"
+                android:persistent="false"
+                android:summaryOn="@string/multi_category_enable"
+                android:summaryOff="@string/multi_category_disable"/>
+                
+    </PreferenceCategory>
+    
+    <PreferenceCategory
+            android:title="@string/general_news_settings">
+        
+        <CheckBoxPreference 
+                android:key="button_local_general_news" 
+                android:title="@string/enable_disable_local"
+                android:persistent="false"
+                android:summaryOn="@string/local_enable"
+                android:summaryOff="@string/local_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_regional_general_news" 
+                android:title="@string/enable_disable_regional"
+                android:persistent="false"
+                android:summaryOn="@string/regional_enable"
+                android:summaryOff="@string/regional_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_national_general_news" 
+                android:title="@string/enable_disable_national"
+                android:persistent="false"
+                android:summaryOn="@string/national_enable"
+                android:summaryOff="@string/national_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_international_general_news" 
+                android:title="@string/enable_disable_international"
+                android:persistent="false"
+                android:summaryOn="@string/international_enable"
+                android:summaryOff="@string/international_disable"/>
+        <!--
+        <ListPreference 
+                android:key="list_general_news"
+                android:title="@string/general_news_title"
+                android:summary="@string/general_news_summary"
+                android:entries="@array/general_news_entries"
+                android:entryValues="@array/general_news_entryvalues"
+                android:dialogTitle="@string/general_news_dialogtitle"/> -->
+                
+    </PreferenceCategory>
+    
+    <PreferenceCategory
+            android:title="@string/bf_news_settings">
+        
+        <CheckBoxPreference 
+                android:key="button_local_bf_news" 
+                android:title="@string/enable_disable_local"
+                android:persistent="false"
+                android:summaryOn="@string/local_enable"
+                android:summaryOff="@string/local_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_regional_bf_news" 
+                android:title="@string/enable_disable_regional"
+                android:persistent="false"
+                android:summaryOn="@string/regional_enable"
+                android:summaryOff="@string/regional_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_national_bf_news" 
+                android:title="@string/enable_disable_national"
+                android:persistent="false"
+                android:summaryOn="@string/national_enable"
+                android:summaryOff="@string/national_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_international_bf_news" 
+                android:title="@string/enable_disable_international"
+                android:persistent="false"
+                android:summaryOn="@string/international_enable"
+                android:summaryOff="@string/international_disable"/>
+                
+        <!--    
+        <ListPreference 
+                android:key="list_bf"
+                android:title="@string/bf_news_title"
+                android:summary="@string/bf_news_summary"
+                android:entries="@array/bf_news_entries"
+                android:entryValues="@array/bf_news_entryvalues"
+                android:dialogTitle="@string/bf_news_dialogtitle"/> -->
+    
+    </PreferenceCategory>
+    
+    <PreferenceCategory
+            android:title="@string/sports_news_settings">
+        
+        <CheckBoxPreference 
+                android:key="button_local_sports_news" 
+                android:title="@string/enable_disable_local"
+                android:persistent="false"
+                android:summaryOn="@string/local_enable"
+                android:summaryOff="@string/local_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_regional_sports_news" 
+                android:title="@string/enable_disable_regional"
+                android:persistent="false"
+                android:summaryOn="@string/regional_enable"
+                android:summaryOff="@string/regional_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_national_sports_news" 
+                android:title="@string/enable_disable_national"
+                android:persistent="false"
+                android:summaryOn="@string/national_enable"
+                android:summaryOff="@string/national_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_international_sports_news" 
+                android:title="@string/enable_disable_international"
+                android:persistent="false"
+                android:summaryOn="@string/international_enable"
+                android:summaryOff="@string/international_disable"/>
+                
+        <!--    
+        <ListPreference 
+                android:key="list_sports_news"
+                android:title="@string/sports_news_title"
+                android:summary="@string/sports_news_summary"
+                android:entries="@array/sports_news_entries"
+                android:entryValues="@array/sports_news_entryvalues"
+                android:dialogTitle="@string/sports_news_dialogtitle"/> -->
+                
+    </PreferenceCategory>
+    
+    <PreferenceCategory
+            android:title="@string/entertainment_news_settings">
+        
+        <CheckBoxPreference 
+                android:key="button_local_entertainment_news" 
+                android:title="@string/enable_disable_local"
+                android:persistent="false"
+                android:summaryOn="@string/local_enable"
+                android:summaryOff="@string/local_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_regional_entertainment_news" 
+                android:title="@string/enable_disable_regional"
+                android:persistent="false"
+                android:summaryOn="@string/regional_enable"
+                android:summaryOff="@string/regional_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_national_entertainment_news" 
+                android:title="@string/enable_disable_national"
+                android:persistent="false"
+                android:summaryOn="@string/national_enable"
+                android:summaryOff="@string/national_disable"/>
+                
+        <CheckBoxPreference 
+                android:key="button_international_entertainment_news" 
+                android:title="@string/enable_disable_international"
+                android:persistent="false"
+                android:summaryOn="@string/international_enable"
+                android:summaryOff="@string/international_disable"/>
+                
+        <!--    
+        <ListPreference 
+                android:key="list_entertainment_news"
+                android:title="@string/entertainment_news_title"
+                android:summary="@string/entertainment_news_summary"
+                android:entries="@array/entertainment_news_entries"
+                android:entryValues="@array/entertainment_news_entryvalues"
+                android:dialogTitle="@string/entertainment_news_dialogtitle"/> -->
+                
+    </PreferenceCategory>
+
+</PreferenceScreen>   
diff --git a/res/xml/data_usage_settings.xml b/res/xml/data_usage_settings.xml
new file mode 100644
index 0000000..fdadb25
--- /dev/null
+++ b/res/xml/data_usage_settings.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
+
+    <Preference
+            android:key="throttle_current_usage"
+            style="?android:preferenceInformationStyle"
+            android:title="@string/throttle_current_usage"
+            android:persistent="false" />
+
+    <Preference
+            android:key="throttle_time_frame"
+            style="?android:preferenceInformationStyle"
+            android:title="@string/throttle_time_frame"
+            android:persistent="false" />
+
+    <Preference
+            android:key="throttle_rate"
+            style="?android:preferenceInformationStyle"
+            android:title="@string/throttle_rate"
+            android:persistent="false" />
+
+    <Preference
+            android:key="throttle_help"
+            android:title="@string/throttle_help"
+            android:persistent="false" />
+
+</PreferenceScreen>
diff --git a/res/xml/fdn_setting.xml b/res/xml/fdn_setting.xml
new file mode 100644
index 0000000..4c62cf5
--- /dev/null
+++ b/res/xml/fdn_setting.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Rearranged to use EditPinPreference -->
+    <com.android.phone.EditPinPreference 
+        android:key="button_fdn_enable_key" 
+        android:persistent="false"
+        android:dialogMessage="@string/enter_pin2_text"
+        android:title="@string/fdn_activation"/>
+        
+    <!-- Rearranged to use EditPinPreference -->
+    <com.android.phone.EditPinPreference 
+        android:key="button_change_pin2_key" 
+        android:title="@string/change_pin2"
+        android:dialogTitle="@string/change_pin2"
+        android:summary="@string/sum_fdn_change_pin"
+        android:persistent="false"/>
+        
+    <PreferenceScreen 
+        android:key="button_fdn_list_key" 
+        android:title="@string/manage_fdn_list"
+        android:summary="@string/sum_fdn_manage_list"
+        android:persistent="false">
+        
+        <!-- Intent to lauch the FDN list. -->
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.FdnList" />
+            
+    </PreferenceScreen>
+    
+</PreferenceScreen>
diff --git a/res/xml/gsm_umts_additional_options.xml b/res/xml/gsm_umts_additional_options.xml
new file mode 100644
index 0000000..19ec56b
--- /dev/null
+++ b/res/xml/gsm_umts_additional_options.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+     xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+     android:title="@string/additional_gsm_call_settings">
+
+    <com.android.phone.CLIRListPreference
+        android:key="button_clir_key"
+        android:title="@string/labelCallerId"
+        android:persistent="false"
+        android:defaultValue="DEFAULT"
+        android:entries="@array/clir_display_values"
+        android:entryValues="@array/clir_values"
+        android:dialogTitle="@string/labelCallerId"
+        android:summary="@string/sum_loading_settings"
+        android:enabled="false"/>
+
+    <com.android.phone.CallWaitingCheckBoxPreference
+        android:key="button_cw_key"
+        android:title="@string/labelCW"
+        android:persistent="false"
+        android:summaryOn="@string/sum_cw_enabled"
+        android:summaryOff="@string/sum_cw_disabled"
+        android:enabled="false"/>
+</PreferenceScreen>
diff --git a/res/xml/gsm_umts_call_options.xml b/res/xml/gsm_umts_call_options.xml
new file mode 100644
index 0000000..2f3c235
--- /dev/null
+++ b/res/xml/gsm_umts_call_options.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+     xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+     android:title="@string/labelGSMMore">
+
+    <PreferenceScreen
+        android:key="button_cf_expand_key"
+        android:title="@string/labelCF"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.GsmUmtsCallForwardOptions"/>
+    </PreferenceScreen>
+
+    <PreferenceScreen
+        android:key="button_more_expand_key"
+        android:title="@string/additional_gsm_call_settings"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.GsmUmtsAdditionalCallOptions"/>
+    </PreferenceScreen>
+</PreferenceScreen>
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
new file mode 100644
index 0000000..afdd0d3
--- /dev/null
+++ b/res/xml/gsm_umts_options.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
+
+    <PreferenceScreen
+        android:key="button_apn_key"
+        android:title="@string/apn_settings"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.settings"
+            android:targetClass="com.android.settings.ApnSettings" />
+
+    </PreferenceScreen>
+
+    <com.android.phone.Use2GOnlyCheckBoxPreference
+        android:key="button_prefer_2g_key"
+        android:title="@string/prefer_2g"
+        android:persistent="false"
+        android:summary="@string/prefer_2g_summary"/>
+
+    <PreferenceScreen
+        android:key="button_carrier_sel_key"
+        android:title="@string/networks"
+        android:summary="@string/sum_carrier_select"
+        android:persistent="false">
+
+        <intent android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.NetworkSetting" />
+
+    </PreferenceScreen>
+
+</PreferenceScreen>
diff --git a/res/xml/network_setting.xml b/res/xml/network_setting.xml
new file mode 100644
index 0000000..7fd00fc
--- /dev/null
+++ b/res/xml/network_setting.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+        android:title="@string/mobile_networks">
+
+    <PreferenceScreen
+        android:key="cdma_lte_data_service_key"
+        android:title="@string/cdma_lte_data_service">
+    </PreferenceScreen>
+
+    <CheckBoxPreference
+        android:key="button_data_enabled_key"
+        android:title="@string/data_enabled"
+        android:persistent="false"
+        android:summary="@string/data_enable_summary"/>
+
+    <CheckBoxPreference
+        android:key="button_roaming_key"
+        android:title="@string/roaming"
+        android:persistent="false"
+        android:summaryOn="@string/roaming_enable"
+        android:summaryOff="@string/roaming_disable"/>
+
+    <ListPreference
+        android:key="preferred_network_mode_key"
+        android:title="@string/preferred_network_mode_title"
+        android:summary="@string/preferred_network_mode_summary"
+        android:entries="@array/preferred_network_mode_choices"
+        android:entryValues="@array/preferred_network_mode_values"
+        android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
+
+</PreferenceScreen>
diff --git a/res/xml/respond_via_sms_settings.xml b/res/xml/respond_via_sms_settings.xml
new file mode 100644
index 0000000..739673c
--- /dev/null
+++ b/res/xml/respond_via_sms_settings.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Settings screen that lets the user manage the canned responses
+     for the "Respond via SMS" feature; see RespondViaSmsManager.java -->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+     android:title="@string/respond_via_sms_setting_title_2">
+
+    <!-- Ultra-simple implementation for now: just provide 4 fixed slots
+         with customizable strings. -->
+
+    <!-- TODO: Potential UI improvements:
+         (1) Allow editing the strings in place, rather than having to tap
+             each one and edit it via the popup dialog.
+         (2) Allow reordering the strings by drag-and-drop.
+         (3) Provide an "Add new string..." option? -->
+
+    <!-- The defaultValues here must agree with the values used with
+         prefs.getString() in RespondViaSmsManager.loadCannedResponses(). -->
+
+    <!-- Use MultiLineTitleEditTextPreference instead of the standard
+         EditTextPreference here, to allow the preference "title" to wrap
+         onto multiple lines if the customized messages are long enough. -->
+
+    <com.android.phone.MultiLineTitleEditTextPreference
+        android:key="canned_response_pref_1"
+        android:defaultValue="@string/respond_via_sms_canned_response_1"
+        android:dialogTitle="@string/respond_via_sms_edittext_dialog_title" />
+
+    <com.android.phone.MultiLineTitleEditTextPreference
+        android:key="canned_response_pref_2"
+        android:defaultValue="@string/respond_via_sms_canned_response_2"
+        android:dialogTitle="@string/respond_via_sms_edittext_dialog_title" />
+
+    <com.android.phone.MultiLineTitleEditTextPreference
+        android:key="canned_response_pref_3"
+        android:defaultValue="@string/respond_via_sms_canned_response_3"
+        android:dialogTitle="@string/respond_via_sms_edittext_dialog_title" />
+
+    <com.android.phone.MultiLineTitleEditTextPreference
+        android:key="canned_response_pref_4"
+        android:defaultValue="@string/respond_via_sms_canned_response_4"
+        android:dialogTitle="@string/respond_via_sms_edittext_dialog_title" />
+
+</PreferenceScreen>
diff --git a/res/xml/sip_advanced_edit.xml b/res/xml/sip_advanced_edit.xml
new file mode 100644
index 0000000..b7974ba
--- /dev/null
+++ b/res/xml/sip_advanced_edit.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:persistent="false">
+
+    <PreferenceCategory
+        android:key="@string/advanced_settings_container"
+        android:persistent="false">
+
+        <EditTextPreference
+            android:key="@string/auth_username"
+            android:title="@string/auth_username_title"
+            android:dialogTitle="@string/auth_username_title"
+            android:summary="@string/auth_username_summary"
+            android:persistent="false"
+            android:singleLine="true"/>
+
+        <EditTextPreference
+            android:key="@string/display_name"
+            android:title="@string/display_name_title"
+            android:dialogTitle="@string/display_name_title"
+            android:summary="@string/display_name_summary"
+            android:persistent="false"
+            android:singleLine="true"/>
+
+        <EditTextPreference
+            android:key="@string/proxy_address"
+            android:title="@string/proxy_address_title"
+            android:dialogTitle="@string/proxy_address_title"
+            android:summary="@string/optional_summary"
+            android:persistent="false"
+            android:singleLine="true"/>
+
+        <EditTextPreference
+            android:key="@string/port"
+            android:title="@string/port_title"
+            android:summary="@string/default_port"
+            android:dialogTitle="@string/port_title"
+            android:persistent="false"
+            android:inputType="number|numberDecimal"
+            android:singleLine="true"/>
+
+        <ListPreference
+            android:key="@string/transport"
+            android:title="@string/transport_title"
+            android:entries="@array/transport_types"
+            android:entryValues="@array/transport_types"
+            android:summary="@string/default_transport"
+            android:persistent="false"
+            android:dialogTitle="@string/transport_title"/>
+
+        <ListPreference
+            android:key="@string/send_keepalive"
+            android:title="@string/send_keepalive_title"
+            android:entries="@array/sip_send_keepalive_options"
+            android:entryValues="@array/sip_send_keepalive_options"
+            android:persistent="false"
+            android:summary="@string/sip_system_decide"/>
+    </PreferenceCategory>
+</PreferenceScreen>
diff --git a/res/xml/sip_edit.xml b/res/xml/sip_edit.xml
new file mode 100644
index 0000000..f091fc1
--- /dev/null
+++ b/res/xml/sip_edit.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/sip_edit_title"
+        android:persistent="false">
+
+    <EditTextPreference
+        android:key="@string/username"
+        android:title="@string/username_title"
+        android:dialogTitle="@string/username_title"
+        android:summary="@string/default_preference_summary"
+        android:persistent="false"
+        android:singleLine="true"
+        android:inputType="textNoSuggestions"/>
+
+    <EditTextPreference
+        android:key="@string/password"
+        android:title="@string/password_title"
+        android:dialogTitle="@string/password_title"
+        android:password="true"
+        android:summary="@string/default_preference_summary"
+        android:persistent="false"
+        android:singleLine="true"/>
+
+    <EditTextPreference
+        android:key="@string/domain_address"
+        android:title="@string/domain_address_title"
+        android:dialogTitle="@string/domain_address_title"
+        android:summary="@string/default_preference_summary"
+        android:persistent="false"
+        android:singleLine="true"
+        android:inputType="textNoSuggestions"/>
+
+    <CheckBoxPreference
+        android:key="@string/set_primary"
+        android:title="@string/set_primary_title"
+        android:persistent="false"
+        android:summary="@string/set_primary_summary"/>
+
+    <PreferenceScreen
+        android:key="@string/advanced_settings"
+        android:title="@string/advanced_settings"
+        android:summary="@string/advanced_settings_show"
+        android:persistent="false"/>
+</PreferenceScreen>
diff --git a/res/xml/sip_setting.xml b/res/xml/sip_setting.xml
new file mode 100644
index 0000000..c754404
--- /dev/null
+++ b/res/xml/sip_setting.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/sip_accounts">
+
+    <CheckBoxPreference
+            android:key="sip_receive_calls_key"
+            android:title="@string/sip_receive_calls"
+            android:summary="@string/sip_receive_calls_summary"
+            android:persistent="true"/>
+
+    <PreferenceCategory android:key="sip_account_list" android:title="@string/sip_account_list"/>
+</PreferenceScreen>
diff --git a/res/xml/sip_settings_category.xml b/res/xml/sip_settings_category.xml
new file mode 100644
index 0000000..e857be6
--- /dev/null
+++ b/res/xml/sip_settings_category.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:phone="http://schemas.android.com/apk/res/com.android.phone">
+    <PreferenceCategory
+            android:key="sip_settings_category_key"
+            android:title="@string/sip_settings"
+            android:persistent="false">
+
+        <PreferenceScreen
+                android:key="sip_account_settings_key"
+                android:title="@string/sip_accounts_title"
+                android:persistent="false">
+
+            <intent android:action="android.intent.action.MAIN"
+                    android:targetPackage="com.android.phone"
+                    android:targetClass="com.android.phone.sip.SipSettings" />
+        </PreferenceScreen>
+
+        <ListPreference
+                android:key="sip_call_options_key"
+                android:title="@string/sip_call_options_title"
+                android:persistent="true"
+                android:entries="@array/sip_call_options_entries"
+                android:entryValues="@array/sip_call_options_values"/>
+
+        <ListPreference
+                android:key="sip_call_options_wifi_only_key"
+                android:title="@string/sip_call_options_title"
+                android:dialogTitle="@string/sip_call_options_wifi_only_title"
+                android:persistent="true"
+                android:entries="@array/sip_call_options_wifi_only_entries"
+                android:entryValues="@array/sip_call_options_values"/>
+    </PreferenceCategory>
+</PreferenceScreen>
diff --git a/src/com/android/phone/ADNList.java b/src/com/android/phone/ADNList.java
new file mode 100644
index 0000000..b4e8ac7
--- /dev/null
+++ b/src/com/android/phone/ADNList.java
@@ -0,0 +1,217 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import static android.view.Window.PROGRESS_VISIBILITY_OFF;
+import static android.view.Window.PROGRESS_VISIBILITY_ON;
+
+import android.app.ListActivity;
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.util.Log;
+import android.view.Window;
+import android.widget.CursorAdapter;
+import android.widget.SimpleCursorAdapter;
+import android.widget.TextView;
+
+/**
+ * ADN List activity for the Phone app.
+ */
+public class ADNList extends ListActivity {
+    protected static final String TAG = "ADNList";
+    protected static final boolean DBG = false;
+
+    private static final String[] COLUMN_NAMES = new String[] {
+        "name",
+        "number",
+        "emails"
+    };
+
+    protected static final int NAME_COLUMN = 0;
+    protected static final int NUMBER_COLUMN = 1;
+    protected static final int EMAILS_COLUMN = 2;
+
+    private static final int[] VIEW_NAMES = new int[] {
+        android.R.id.text1,
+        android.R.id.text2
+    };
+
+    protected static final int QUERY_TOKEN = 0;
+    protected static final int INSERT_TOKEN = 1;
+    protected static final int UPDATE_TOKEN = 2;
+    protected static final int DELETE_TOKEN = 3;
+
+
+    protected QueryHandler mQueryHandler;
+    protected CursorAdapter mCursorAdapter;
+    protected Cursor mCursor = null;
+
+    private TextView mEmptyText;
+
+    protected int mInitialSelection = -1;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.adn_list);
+        mEmptyText = (TextView) findViewById(android.R.id.empty);
+        mQueryHandler = new QueryHandler(getContentResolver());
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        query();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        if (mCursor != null) {
+            mCursor.deactivate();
+        }
+    }
+
+    protected Uri resolveIntent() {
+        Intent intent = getIntent();
+        if (intent.getData() == null) {
+            intent.setData(Uri.parse("content://icc/adn"));
+        }
+
+        return intent.getData();
+    }
+
+    private void query() {
+        Uri uri = resolveIntent();
+        if (DBG) log("query: starting an async query");
+        mQueryHandler.startQuery(QUERY_TOKEN, null, uri, COLUMN_NAMES,
+                null, null, null);
+        displayProgress(true);
+    }
+
+    private void reQuery() {
+        query();
+    }
+
+    private void setAdapter() {
+        // NOTE:
+        // As it it written, the positioning code below is NOT working.
+        // However, this current non-working state is in compliance with
+        // the UI paradigm, so we can't really do much to change it.
+
+        // In the future, if we wish to get this "positioning" correct,
+        // we'll need to do the following:
+        //   1. Change the layout to in the cursor adapter to:
+        //     android.R.layout.simple_list_item_checked
+        //   2. replace the selection / focus code with:
+        //     getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+        //     getListView().setItemChecked(mInitialSelection, true);
+
+        // Since the positioning is really only useful for the dialer's
+        // SpecialCharSequence case (dialing '2#' to get to the 2nd
+        // contact for instance), it doesn't make sense to mess with
+        // the usability of the activity just for this case.
+
+        // These artifacts include:
+        //  1. UI artifacts (checkbox and highlight at the same time)
+        //  2. Allowing the user to edit / create new SIM contacts when
+        //    the user is simply trying to retrieve a number into the d
+        //    dialer.
+
+        if (mCursorAdapter == null) {
+            mCursorAdapter = newAdapter();
+
+            setListAdapter(mCursorAdapter);
+        } else {
+            mCursorAdapter.changeCursor(mCursor);
+        }
+
+        if (mInitialSelection >=0 && mInitialSelection < mCursorAdapter.getCount()) {
+            setSelection(mInitialSelection);
+            getListView().setFocusableInTouchMode(true);
+            boolean gotfocus = getListView().requestFocus();
+        }
+    }
+
+    protected CursorAdapter newAdapter() {
+        return new SimpleCursorAdapter(this,
+                    android.R.layout.simple_list_item_2,
+                    mCursor, COLUMN_NAMES, VIEW_NAMES);
+    }
+
+    private void displayProgress(boolean loading) {
+        if (DBG) log("displayProgress: " + loading);
+
+        mEmptyText.setText(loading ? R.string.simContacts_emptyLoading:
+            (isAirplaneModeOn(this) ? R.string.simContacts_airplaneMode :
+                R.string.simContacts_empty));
+        getWindow().setFeatureInt(
+                Window.FEATURE_INDETERMINATE_PROGRESS,
+                loading ? PROGRESS_VISIBILITY_ON : PROGRESS_VISIBILITY_OFF);
+    }
+
+    private static boolean isAirplaneModeOn(Context context) {
+        return Settings.System.getInt(context.getContentResolver(),
+                Settings.System.AIRPLANE_MODE_ON, 0) != 0;
+    }
+
+    private class QueryHandler extends AsyncQueryHandler {
+        public QueryHandler(ContentResolver cr) {
+            super(cr);
+        }
+
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor c) {
+            if (DBG) log("onQueryComplete: cursor.count=" + c.getCount());
+            mCursor = c;
+            setAdapter();
+            displayProgress(false);
+
+            // Cursor is refreshed and inherited classes may have menu items depending on it.
+            invalidateOptionsMenu();
+        }
+
+        @Override
+        protected void onInsertComplete(int token, Object cookie, Uri uri) {
+            if (DBG) log("onInsertComplete: requery");
+            reQuery();
+        }
+
+        @Override
+        protected void onUpdateComplete(int token, Object cookie, int result) {
+            if (DBG) log("onUpdateComplete: requery");
+            reQuery();
+        }
+
+        @Override
+        protected void onDeleteComplete(int token, Object cookie, int result) {
+            if (DBG) log("onDeleteComplete: requery");
+            reQuery();
+        }
+    }
+
+    protected void log(String msg) {
+        Log.d(TAG, "[ADNList] " + msg);
+    }
+}
diff --git a/src/com/android/phone/AccelerometerListener.java b/src/com/android/phone/AccelerometerListener.java
new file mode 100644
index 0000000..49d4a72
--- /dev/null
+++ b/src/com/android/phone/AccelerometerListener.java
@@ -0,0 +1,161 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+/**
+ * This class is used to listen to the accelerometer to monitor the
+ * orientation of the phone. The client of this class is notified when
+ * the orientation changes between horizontal and vertical.
+ */
+public final class AccelerometerListener {
+    private static final String TAG = "AccelerometerListener";
+    private static final boolean DEBUG = true;
+    private static final boolean VDEBUG = false;
+
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
+
+    // mOrientation is the orientation value most recently reported to the client.
+    private int mOrientation;
+
+    // mPendingOrientation is the latest orientation computed based on the sensor value.
+    // This is sent to the client after a rebounce delay, at which point it is copied to
+    // mOrientation.
+    private int mPendingOrientation;
+
+    private OrientationListener mListener;
+
+    // Device orientation
+    public static final int ORIENTATION_UNKNOWN = 0;
+    public static final int ORIENTATION_VERTICAL = 1;
+    public static final int ORIENTATION_HORIZONTAL = 2;
+
+    private static final int ORIENTATION_CHANGED = 1234;
+
+    private static final int VERTICAL_DEBOUNCE = 100;
+    private static final int HORIZONTAL_DEBOUNCE = 500;
+    private static final double VERTICAL_ANGLE = 50.0;
+
+    public interface OrientationListener {
+        public void orientationChanged(int orientation);
+    }
+
+    public AccelerometerListener(Context context, OrientationListener listener) {
+        mListener = listener;
+        mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+    }
+
+    public void enable(boolean enable) {
+        if (DEBUG) Log.d(TAG, "enable(" + enable + ")");
+        synchronized (this) {
+            if (enable) {
+                mOrientation = ORIENTATION_UNKNOWN;
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+                mSensorManager.registerListener(mSensorListener, mSensor,
+                        SensorManager.SENSOR_DELAY_NORMAL);
+            } else {
+                mSensorManager.unregisterListener(mSensorListener);
+                mHandler.removeMessages(ORIENTATION_CHANGED);
+            }
+        }
+    }
+
+    private void setOrientation(int orientation) {
+        synchronized (this) {
+            if (mPendingOrientation == orientation) {
+                // Pending orientation has not changed, so do nothing.
+                return;
+            }
+
+            // Cancel any pending messages.
+            // We will either start a new timer or cancel alltogether
+            // if the orientation has not changed.
+            mHandler.removeMessages(ORIENTATION_CHANGED);
+
+            if (mOrientation != orientation) {
+                // Set timer to send an event if the orientation has changed since its
+                // previously reported value.
+                mPendingOrientation = orientation;
+                Message m = mHandler.obtainMessage(ORIENTATION_CHANGED);
+                // set delay to our debounce timeout
+                int delay = (orientation == ORIENTATION_VERTICAL ? VERTICAL_DEBOUNCE
+                                                                 : HORIZONTAL_DEBOUNCE);
+                mHandler.sendMessageDelayed(m, delay);
+            } else {
+                // no message is pending
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+            }
+        }
+    }
+
+    private void onSensorEvent(double x, double y, double z) {
+        if (VDEBUG) Log.d(TAG, "onSensorEvent(" + x + ", " + y + ", " + z + ")");
+
+        // If some values are exactly zero, then likely the sensor is not powered up yet.
+        // ignore these events to avoid false horizontal positives.
+        if (x == 0.0 || y == 0.0 || z == 0.0) return;
+
+        // magnitude of the acceleration vector projected onto XY plane
+        double xy = Math.sqrt(x*x + y*y);
+        // compute the vertical angle
+        double angle = Math.atan2(xy, z);
+        // convert to degrees
+        angle = angle * 180.0 / Math.PI;
+        int orientation = (angle >  VERTICAL_ANGLE ? ORIENTATION_VERTICAL : ORIENTATION_HORIZONTAL);
+        if (VDEBUG) Log.d(TAG, "angle: " + angle + " orientation: " + orientation);
+        setOrientation(orientation);
+    }
+
+    SensorEventListener mSensorListener = new SensorEventListener() {
+        public void onSensorChanged(SensorEvent event) {
+            onSensorEvent(event.values[0], event.values[1], event.values[2]);
+        }
+
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            // ignore
+        }
+    };
+
+    Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+            case ORIENTATION_CHANGED:
+                synchronized (this) {
+                    mOrientation = mPendingOrientation;
+                    if (DEBUG) {
+                        Log.d(TAG, "orientation: " +
+                            (mOrientation == ORIENTATION_HORIZONTAL ? "horizontal"
+                                : (mOrientation == ORIENTATION_VERTICAL ? "vertical"
+                                    : "unknown")));
+                    }
+                    mListener.orientationChanged(mOrientation);
+                }
+                break;
+            }
+        }
+    };
+}
diff --git a/src/com/android/phone/AnimationUtils.java b/src/com/android/phone/AnimationUtils.java
new file mode 100644
index 0000000..f7d9e2e
--- /dev/null
+++ b/src/com/android/phone/AnimationUtils.java
@@ -0,0 +1,279 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.graphics.Canvas;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewPropertyAnimator;
+import android.widget.ImageView;
+
+/**
+ * Utilities for Animation.
+ */
+public class AnimationUtils {
+    private static final String LOG_TAG = AnimationUtils.class.getSimpleName();
+    /**
+     * Turn on when you're interested in fading animation. Intentionally untied from other debug
+     * settings.
+     */
+    private static final boolean FADE_DBG = false;
+
+    /**
+     * Duration for animations in msec, which can be used with
+     * {@link ViewPropertyAnimator#setDuration(long)} for example.
+     */
+    public static final int ANIMATION_DURATION = 250;
+
+    private AnimationUtils() {
+    }
+
+    /**
+     * Simple Utility class that runs fading animations on specified views.
+     */
+    public static class Fade {
+
+        // View tag that's set during the fade-out animation; see hide() and
+        // isFadingOut().
+        private static final int FADE_STATE_KEY = R.id.fadeState;
+        private static final String FADING_OUT = "fading_out";
+
+        /**
+         * Sets the visibility of the specified view to View.VISIBLE and then
+         * fades it in. If the view is already visible (and not in the middle
+         * of a fade-out animation), this method will return without doing
+         * anything.
+         *
+         * @param view The view to be faded in
+         */
+        public static void show(final View view) {
+            if (FADE_DBG) log("Fade: SHOW view " + view + "...");
+            if (FADE_DBG) log("Fade: - visibility = " + view.getVisibility());
+            if ((view.getVisibility() != View.VISIBLE) || isFadingOut(view)) {
+                view.animate().cancel();
+                // ...and clear the FADE_STATE_KEY tag in case we just
+                // canceled an in-progress fade-out animation.
+                view.setTag(FADE_STATE_KEY, null);
+
+                view.setAlpha(0);
+                view.setVisibility(View.VISIBLE);
+                view.animate().setDuration(ANIMATION_DURATION);
+                view.animate().alpha(1);
+                if (FADE_DBG) log("Fade: ==> SHOW " + view
+                                  + " DONE.  Set visibility = " + View.VISIBLE);
+            } else {
+                if (FADE_DBG) log("Fade: ==> Ignoring, already visible AND not fading out.");
+            }
+        }
+
+        /**
+         * Fades out the specified view and then sets its visibility to the
+         * specified value (either View.INVISIBLE or View.GONE). If the view
+         * is not currently visibile, the method will return without doing
+         * anything.
+         *
+         * Note that *during* the fade-out the view itself will still have
+         * visibility View.VISIBLE, although the isFadingOut() method will
+         * return true (in case the UI code needs to detect this state.)
+         *
+         * @param view The view to be hidden
+         * @param visibility The value to which the view's visibility will be
+         *                   set after it fades out.
+         *                   Must be either View.INVISIBLE or View.GONE.
+         */
+        public static void hide(final View view, final int visibility) {
+            if (FADE_DBG) log("Fade: HIDE view " + view + "...");
+            if (view.getVisibility() == View.VISIBLE &&
+                (visibility == View.INVISIBLE || visibility == View.GONE)) {
+
+                // Use a view tag to mark this view as being in the middle
+                // of a fade-out animation.
+                view.setTag(FADE_STATE_KEY, FADING_OUT);
+
+                view.animate().cancel();
+                view.animate().setDuration(ANIMATION_DURATION);
+                view.animate().alpha(0f).setListener(new AnimatorListenerAdapter() {
+                    @Override
+                    public void onAnimationEnd(Animator animation) {
+                        view.setAlpha(1);
+                        view.setVisibility(visibility);
+                        view.animate().setListener(null);
+                        // ...and we're done with the fade-out, so clear the view tag.
+                        view.setTag(FADE_STATE_KEY, null);
+                        if (FADE_DBG) log("Fade: HIDE " + view
+                                + " DONE.  Set visibility = " + visibility);
+                    }
+                });
+            }
+        }
+
+        /**
+         * @return true if the specified view is currently in the middle
+         * of a fade-out animation.  (During the fade-out, the view's
+         * visibility is still VISIBLE, although in many cases the UI
+         * should behave as if it's already invisible or gone.  This
+         * method allows the UI code to detect that state.)
+         *
+         * @see #hide(View, int)
+         */
+        public static boolean isFadingOut(final View view) {
+            if (FADE_DBG) {
+                log("Fade: isFadingOut view " + view + "...");
+                log("Fade:   - getTag() returns: " + view.getTag(FADE_STATE_KEY));
+                log("Fade:   - returning: " + (view.getTag(FADE_STATE_KEY) == FADING_OUT));
+            }
+            return (view.getTag(FADE_STATE_KEY) == FADING_OUT);
+        }
+
+    }
+
+    /**
+     * Drawable achieving cross-fade, just like TransitionDrawable. We can have
+     * call-backs via animator object (see also {@link CrossFadeDrawable#getAnimator()}).
+     */
+    private static class CrossFadeDrawable extends LayerDrawable {
+        private final ObjectAnimator mAnimator;
+
+        public CrossFadeDrawable(Drawable[] layers) {
+            super(layers);
+            mAnimator = ObjectAnimator.ofInt(this, "crossFadeAlpha", 0xff, 0);
+        }
+
+        private int mCrossFadeAlpha;
+
+        /**
+         * This will be used from ObjectAnimator.
+         * Note: this method is protected by proguard.flags so that it won't be removed
+         * automatically.
+         */
+        @SuppressWarnings("unused")
+        public void setCrossFadeAlpha(int alpha) {
+            mCrossFadeAlpha = alpha;
+            invalidateSelf();
+        }
+
+        public ObjectAnimator getAnimator() {
+            return mAnimator;
+        }
+
+        @Override
+        public void draw(Canvas canvas) {
+            Drawable first = getDrawable(0);
+            Drawable second = getDrawable(1);
+
+            if (mCrossFadeAlpha > 0) {
+                first.setAlpha(mCrossFadeAlpha);
+                first.draw(canvas);
+                first.setAlpha(255);
+            }
+
+            if (mCrossFadeAlpha < 0xff) {
+                second.setAlpha(0xff - mCrossFadeAlpha);
+                second.draw(canvas);
+                second.setAlpha(0xff);
+            }
+        }
+    }
+
+    private static CrossFadeDrawable newCrossFadeDrawable(Drawable first, Drawable second) {
+        Drawable[] layers = new Drawable[2];
+        layers[0] = first;
+        layers[1] = second;
+        return new CrossFadeDrawable(layers);
+    }
+
+    /**
+     * Starts cross-fade animation using TransitionDrawable. Nothing will happen if "from" and "to"
+     * are the same.
+     */
+    public static void startCrossFade(
+            final ImageView imageView, final Drawable from, final Drawable to) {
+        // We skip the cross-fade when those two Drawables are equal, or they are BitmapDrawables
+        // pointing to the same Bitmap.
+        final boolean areSameImage = from.equals(to) ||
+                ((from instanceof BitmapDrawable)
+                        && (to instanceof BitmapDrawable)
+                        && ((BitmapDrawable) from).getBitmap()
+                                .equals(((BitmapDrawable) to).getBitmap()));
+        if (!areSameImage) {
+            if (FADE_DBG) {
+                log("Start cross-fade animation for " + imageView
+                        + "(" + Integer.toHexString(from.hashCode()) + " -> "
+                        + Integer.toHexString(to.hashCode()) + ")");
+            }
+
+            CrossFadeDrawable crossFadeDrawable = newCrossFadeDrawable(from, to);
+            ObjectAnimator animator = crossFadeDrawable.getAnimator();
+            imageView.setImageDrawable(crossFadeDrawable);
+            animator.setDuration(ANIMATION_DURATION);
+            animator.addListener(new AnimatorListenerAdapter() {
+                @Override
+                public void onAnimationStart(Animator animation) {
+                    if (FADE_DBG) {
+                        log("cross-fade animation start ("
+                                + Integer.toHexString(from.hashCode()) + " -> "
+                                + Integer.toHexString(to.hashCode()) + ")");
+                    }
+                }
+
+                @Override
+                public void onAnimationEnd(Animator animation) {
+                    if (FADE_DBG) {
+                        log("cross-fade animation ended ("
+                                + Integer.toHexString(from.hashCode()) + " -> "
+                                + Integer.toHexString(to.hashCode()) + ")");
+                    }
+                    animation.removeAllListeners();
+                    // Workaround for issue 6300562; this will force the drawable to the
+                    // resultant one regardless of animation glitch.
+                    imageView.setImageDrawable(to);
+                }
+            });
+            animator.start();
+
+            /* We could use TransitionDrawable here, but it may cause some weird animation in
+             * some corner cases. See issue 6300562
+             * TODO: decide which to be used in the long run. TransitionDrawable is old but system
+             * one. Ours uses new animation framework and thus have callback (great for testing),
+             * while no framework support for the exact class.
+
+            Drawable[] layers = new Drawable[2];
+            layers[0] = from;
+            layers[1] = to;
+            TransitionDrawable transitionDrawable = new TransitionDrawable(layers);
+            imageView.setImageDrawable(transitionDrawable);
+            transitionDrawable.startTransition(ANIMATION_DURATION); */
+            imageView.setTag(to);
+        } else {
+            if (FADE_DBG) {
+                log("*Not* start cross-fade. " + imageView);
+            }
+        }
+    }
+
+    // Debugging / testing code
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/phone/BitmapUtils.java b/src/com/android/phone/BitmapUtils.java
new file mode 100644
index 0000000..94d4bf9
--- /dev/null
+++ b/src/com/android/phone/BitmapUtils.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import android.graphics.Bitmap;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.util.Log;
+
+
+/**
+ * Image effects used by the in-call UI.
+ */
+public class BitmapUtils {
+    private static final String TAG = "BitmapUtils";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    /** This class is never instantiated. */
+    private BitmapUtils() {
+    }
+
+    //
+    // Gaussian blur effect
+    //
+    // gaussianBlur() and related methods are borrowed from
+    // BackgroundUtils.java in the Music2 code (which itself was based on
+    // code from the old Cooliris android Gallery app.)
+    //
+    // TODO: possibly consider caching previously-generated blurred bitmaps;
+    // see getAdaptedBitmap() and mAdaptedBitmapCache in the music app code.
+    //
+
+    private static final int RED_MASK = 0xff0000;
+    private static final int RED_MASK_SHIFT = 16;
+    private static final int GREEN_MASK = 0x00ff00;
+    private static final int GREEN_MASK_SHIFT = 8;
+    private static final int BLUE_MASK = 0x0000ff;
+
+    /**
+     * Creates a blurred version of the given Bitmap.
+     *
+     * @param bitmap the input bitmap, presumably a 96x96 pixel contact
+     *               thumbnail.
+     */
+    public static Bitmap createBlurredBitmap(Bitmap bitmap) {
+        if (DBG) log("createBlurredBitmap()...");
+        long startTime = SystemClock.uptimeMillis();
+        if (bitmap == null) {
+            Log.w(TAG, "createBlurredBitmap: null bitmap");
+            return null;
+        }
+
+        if (DBG) log("- input bitmap: " + bitmap.getWidth() + " x " + bitmap.getHeight());
+
+        // The bitmap we pass to gaussianBlur() needs to have a width
+        // that's a power of 2, so scale up to 128x128.
+        final int scaledSize = 128;
+        bitmap = Bitmap.createScaledBitmap(bitmap,
+                                           scaledSize, scaledSize,
+                                           true /* filter */);
+        if (DBG) log("- after resize: " + bitmap.getWidth() + " x " + bitmap.getHeight());
+
+        bitmap = gaussianBlur(bitmap);
+        if (DBG) log("- after blur: " + bitmap.getWidth() + " x " + bitmap.getHeight());
+
+        long endTime = SystemClock.uptimeMillis();
+        if (DBG) log("createBlurredBitmap() done (elapsed = " + (endTime - startTime) + " msec)");
+        return bitmap;
+    }
+
+    /**
+     * Apply a gaussian blur filter, and return a new (blurred) bitmap
+     * that's the same size as the input bitmap.
+     *
+     * @param source input bitmap, whose width must be a power of 2
+     */
+    public static Bitmap gaussianBlur(Bitmap source) {
+        int width = source.getWidth();
+        int height = source.getHeight();
+        if (DBG) log("gaussianBlur(): input: " + width + " x " + height);
+
+        // Create a source and destination buffer for the image.
+        int numPixels = width * height;
+        int[] in = new int[numPixels];
+        int[] tmp = new int[numPixels];
+
+        // Get the source pixels as 32-bit ARGB.
+        source.getPixels(in, 0, width, 0, 0, width, height);
+
+        // Gaussian is a separable kernel, so it is decomposed into a horizontal
+        // and vertical pass.
+        // The filter function applies the kernel across each row and transposes
+        // the output.
+        // Hence we apply it twice to provide efficient horizontal and vertical
+        // convolution.
+        // The filter discards the alpha channel.
+        gaussianBlurFilter(in, tmp, width, height);
+        gaussianBlurFilter(tmp, in, width, height);
+
+        // Return a bitmap scaled to the desired size.
+        Bitmap filtered = Bitmap.createBitmap(in, width, height, Bitmap.Config.ARGB_8888);
+        source.recycle();
+        return filtered;
+    }
+
+    private static void gaussianBlurFilter(int[] in, int[] out, int width, int height) {
+        // This function is currently hardcoded to blur with RADIUS = 4.
+        // (If you change RADIUS, you'll have to change the weights[] too.)
+        final int RADIUS = 4;
+        final int[] weights = { 13, 23, 32, 39, 42, 39, 32, 23, 13}; // Adds up to 256
+        int inPos = 0;
+        int widthMask = width - 1; // width must be a power of two.
+        for (int y = 0; y < height; ++y) {
+            // Compute the alpha value.
+            int alpha = 0xff;
+            // Compute output values for the row.
+            int outPos = y;
+            for (int x = 0; x < width; ++x) {
+                int red = 0;
+                int green = 0;
+                int blue = 0;
+                for (int i = -RADIUS; i <= RADIUS; ++i) {
+                    int argb = in[inPos + (widthMask & (x + i))];
+                    int weight = weights[i+RADIUS];
+                    red += weight *((argb & RED_MASK) >> RED_MASK_SHIFT);
+                    green += weight *((argb & GREEN_MASK) >> GREEN_MASK_SHIFT);
+                    blue += weight *(argb & BLUE_MASK);
+                }
+                // Output the current pixel.
+                out[outPos] = (alpha << 24) | ((red >> 8) << RED_MASK_SHIFT)
+                    | ((green >> 8) << GREEN_MASK_SHIFT)
+                        | (blue >> 8);
+                outPos += height;
+            }
+            inPos += width;
+        }
+    }
+
+    //
+    // Debugging
+    //
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/BluetoothPhoneService.java b/src/com/android/phone/BluetoothPhoneService.java
new file mode 100644
index 0000000..aff6bf2
--- /dev/null
+++ b/src/com/android/phone/BluetoothPhoneService.java
@@ -0,0 +1,903 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.app.Service;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.IBluetoothHeadsetPhone;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+import android.os.SystemProperties;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.ServiceState;
+import android.util.Log;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.CallManager;
+
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Bluetooth headset manager for the Phone app.
+ * @hide
+ */
+public class BluetoothPhoneService extends Service {
+    private static final String TAG = "BluetoothPhoneService";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 1)
+            && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    private static final boolean VDBG = (PhoneGlobals.DBG_LEVEL >= 2);  // even more logging
+
+    private static final String MODIFY_PHONE_STATE = android.Manifest.permission.MODIFY_PHONE_STATE;
+
+    private BluetoothAdapter mAdapter;
+    private CallManager mCM;
+
+    private BluetoothHeadset mBluetoothHeadset;
+
+    private PowerManager mPowerManager;
+
+    private WakeLock mStartCallWakeLock;  // held while waiting for the intent to start call
+
+    private PhoneConstants.State mPhoneState = PhoneConstants.State.IDLE;
+    CdmaPhoneCallState.PhoneCallState mCdmaThreeWayCallState =
+                                            CdmaPhoneCallState.PhoneCallState.IDLE;
+
+    private Call.State mForegroundCallState;
+    private Call.State mRingingCallState;
+    private CallNumber mRingNumber;
+    // number of active calls
+    int mNumActive;
+    // number of background (held) calls
+    int mNumHeld;
+
+    long mBgndEarliestConnectionTime = 0;
+
+    // CDMA specific flag used in context with BT devices having display capabilities
+    // to show which Caller is active. This state might not be always true as in CDMA
+    // networks if a caller drops off no update is provided to the Phone.
+    // This flag is just used as a toggle to provide a update to the BT device to specify
+    // which caller is active.
+    private boolean mCdmaIsSecondCallActive = false;
+    private boolean mCdmaCallsSwapped = false;
+
+    private long[] mClccTimestamps; // Timestamps associated with each clcc index
+    private boolean[] mClccUsed;     // Is this clcc index in use
+
+    private static final int GSM_MAX_CONNECTIONS = 6;  // Max connections allowed by GSM
+    private static final int CDMA_MAX_CONNECTIONS = 2;  // Max connections allowed by CDMA
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mCM = CallManager.getInstance();
+        mAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (mAdapter == null) {
+            if (VDBG) Log.d(TAG, "mAdapter null");
+            return;
+        }
+
+        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
+        mStartCallWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
+                                                       TAG + ":StartCall");
+        mStartCallWakeLock.setReferenceCounted(false);
+
+        mAdapter.getProfileProxy(this, mProfileListener, BluetoothProfile.HEADSET);
+
+        mForegroundCallState = Call.State.IDLE;
+        mRingingCallState = Call.State.IDLE;
+        mNumActive = 0;
+        mNumHeld = 0;
+        mRingNumber = new CallNumber("", 0);;
+
+        handlePreciseCallStateChange(null);
+
+        if(VDBG) Log.d(TAG, "registerForServiceStateChanged");
+        // register for updates
+        mCM.registerForPreciseCallStateChanged(mHandler,
+                                               PRECISE_CALL_STATE_CHANGED, null);
+        mCM.registerForCallWaiting(mHandler,
+                                   PHONE_CDMA_CALL_WAITING, null);
+        // TODO(BT) registerForIncomingRing?
+        // TODO(BT) registerdisconnection?
+        mClccTimestamps = new long[GSM_MAX_CONNECTIONS];
+        mClccUsed = new boolean[GSM_MAX_CONNECTIONS];
+        for (int i = 0; i < GSM_MAX_CONNECTIONS; i++) {
+            mClccUsed[i] = false;
+        }
+    }
+
+    @Override
+    public void onStart(Intent intent, int startId) {
+        if (mAdapter == null) {
+            Log.w(TAG, "Stopping Bluetooth BluetoothPhoneService Service: device does not have BT");
+            stopSelf();
+        }
+        if (VDBG) Log.d(TAG, "BluetoothPhoneService started");
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (DBG) log("Stopping Bluetooth BluetoothPhoneService Service");
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+
+    private static final int PRECISE_CALL_STATE_CHANGED = 1;
+    private static final int PHONE_CDMA_CALL_WAITING = 2;
+    private static final int LIST_CURRENT_CALLS = 3;
+    private static final int QUERY_PHONE_STATE = 4;
+    private static final int CDMA_SWAP_SECOND_CALL_STATE = 5;
+    private static final int CDMA_SET_SECOND_CALL_STATE = 6;
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (VDBG) Log.d(TAG, "handleMessage: " + msg.what);
+            switch(msg.what) {
+                case PRECISE_CALL_STATE_CHANGED:
+                case PHONE_CDMA_CALL_WAITING:
+                    Connection connection = null;
+                    if (((AsyncResult) msg.obj).result instanceof Connection) {
+                        connection = (Connection) ((AsyncResult) msg.obj).result;
+                    }
+                    handlePreciseCallStateChange(connection);
+                    break;
+                case LIST_CURRENT_CALLS:
+                    handleListCurrentCalls();
+                    break;
+                case QUERY_PHONE_STATE:
+                    handleQueryPhoneState();
+                    break;
+                case CDMA_SWAP_SECOND_CALL_STATE:
+                    handleCdmaSwapSecondCallState();
+                    break;
+                case CDMA_SET_SECOND_CALL_STATE:
+                    handleCdmaSetSecondCallState((Boolean) msg.obj);
+                    break;
+            }
+        }
+    };
+
+    private void updateBtPhoneStateAfterRadioTechnologyChange() {
+        if(VDBG) Log.d(TAG, "updateBtPhoneStateAfterRadioTechnologyChange...");
+
+        //Unregister all events from the old obsolete phone
+        mCM.unregisterForPreciseCallStateChanged(mHandler);
+        mCM.unregisterForCallWaiting(mHandler);
+
+        //Register all events new to the new active phone
+        mCM.registerForPreciseCallStateChanged(mHandler,
+                                               PRECISE_CALL_STATE_CHANGED, null);
+        mCM.registerForCallWaiting(mHandler,
+                                   PHONE_CDMA_CALL_WAITING, null);
+    }
+
+    private void handlePreciseCallStateChange(Connection connection) {
+        // get foreground call state
+        int oldNumActive = mNumActive;
+        int oldNumHeld = mNumHeld;
+        Call.State oldRingingCallState = mRingingCallState;
+        Call.State oldForegroundCallState = mForegroundCallState;
+        CallNumber oldRingNumber = mRingNumber;
+
+        Call foregroundCall = mCM.getActiveFgCall();
+
+        if (VDBG)
+            Log.d(TAG, " handlePreciseCallStateChange: foreground: " + foregroundCall +
+                " background: " + mCM.getFirstActiveBgCall() + " ringing: " +
+                mCM.getFirstActiveRingingCall());
+
+        mForegroundCallState = foregroundCall.getState();
+        /* if in transition, do not update */
+        if (mForegroundCallState == Call.State.DISCONNECTING)
+        {
+            Log.d(TAG, "handlePreciseCallStateChange. Call disconnecting, wait before update");
+            return;
+        }
+        else
+            mNumActive = (mForegroundCallState == Call.State.ACTIVE) ? 1 : 0;
+
+        Call ringingCall = mCM.getFirstActiveRingingCall();
+        mRingingCallState = ringingCall.getState();
+        mRingNumber = getCallNumber(connection, ringingCall);
+
+        if (mCM.getDefaultPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            mNumHeld = getNumHeldCdma();
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            if (app.cdmaPhoneCallState != null) {
+                CdmaPhoneCallState.PhoneCallState currCdmaThreeWayCallState =
+                        app.cdmaPhoneCallState.getCurrentCallState();
+                CdmaPhoneCallState.PhoneCallState prevCdmaThreeWayCallState =
+                    app.cdmaPhoneCallState.getPreviousCallState();
+
+                log("CDMA call state: " + currCdmaThreeWayCallState + " prev state:" +
+                    prevCdmaThreeWayCallState);
+
+                if ((mBluetoothHeadset != null) &&
+                    (mCdmaThreeWayCallState != currCdmaThreeWayCallState)) {
+                    // In CDMA, the network does not provide any feedback
+                    // to the phone when the 2nd MO call goes through the
+                    // stages of DIALING > ALERTING -> ACTIVE we fake the
+                    // sequence
+                    log("CDMA 3way call state change. mNumActive: " + mNumActive +
+                        " mNumHeld: " + mNumHeld + " IsThreeWayCallOrigStateDialing: " +
+                        app.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing());
+                    if ((currCdmaThreeWayCallState ==
+                            CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                                && app.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing()) {
+                        // Mimic dialing, put the call on hold, alerting
+                        mBluetoothHeadset.phoneStateChanged(0, mNumHeld,
+                            convertCallState(Call.State.IDLE, Call.State.DIALING),
+                            mRingNumber.mNumber, mRingNumber.mType);
+
+                        mBluetoothHeadset.phoneStateChanged(0, mNumHeld,
+                            convertCallState(Call.State.IDLE, Call.State.ALERTING),
+                            mRingNumber.mNumber, mRingNumber.mType);
+
+                    }
+
+                    // In CDMA, the network does not provide any feedback to
+                    // the phone when a user merges a 3way call or swaps
+                    // between two calls we need to send a CIEV response
+                    // indicating that a call state got changed which should
+                    // trigger a CLCC update request from the BT client.
+                    if (currCdmaThreeWayCallState ==
+                            CdmaPhoneCallState.PhoneCallState.CONF_CALL &&
+                            prevCdmaThreeWayCallState ==
+                              CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                        log("CDMA 3way conf call. mNumActive: " + mNumActive +
+                            " mNumHeld: " + mNumHeld);
+                        mBluetoothHeadset.phoneStateChanged(mNumActive, mNumHeld,
+                            convertCallState(Call.State.IDLE, mForegroundCallState),
+                            mRingNumber.mNumber, mRingNumber.mType);
+                    }
+                }
+                mCdmaThreeWayCallState = currCdmaThreeWayCallState;
+            }
+        } else {
+            mNumHeld = getNumHeldUmts();
+        }
+
+        boolean callsSwitched = false;
+        if (mCM.getDefaultPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA &&
+            mCdmaThreeWayCallState == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+            callsSwitched = mCdmaCallsSwapped;
+        } else {
+            Call backgroundCall = mCM.getFirstActiveBgCall();
+            callsSwitched =
+                (mNumHeld == 1 && ! (backgroundCall.getEarliestConnectTime() ==
+                    mBgndEarliestConnectionTime));
+            mBgndEarliestConnectionTime = backgroundCall.getEarliestConnectTime();
+        }
+
+        if (mNumActive != oldNumActive || mNumHeld != oldNumHeld ||
+            mRingingCallState != oldRingingCallState ||
+            mForegroundCallState != oldForegroundCallState ||
+            !mRingNumber.equalTo(oldRingNumber) ||
+            callsSwitched) {
+            if (mBluetoothHeadset != null) {
+                mBluetoothHeadset.phoneStateChanged(mNumActive, mNumHeld,
+                    convertCallState(mRingingCallState, mForegroundCallState),
+                    mRingNumber.mNumber, mRingNumber.mType);
+            }
+        }
+    }
+
+    private void handleListCurrentCalls() {
+        Phone phone = mCM.getDefaultPhone();
+        int phoneType = phone.getPhoneType();
+
+        // TODO(BT) handle virtual call
+
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            listCurrentCallsCdma();
+        } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+            listCurrentCallsGsm();
+        } else {
+            Log.e(TAG, "Unexpected phone type: " + phoneType);
+        }
+        // end the result
+        // when index is 0, other parameter does not matter
+        mBluetoothHeadset.clccResponse(0, 0, 0, 0, false, "", 0);
+    }
+
+    private void handleQueryPhoneState() {
+        if (mBluetoothHeadset != null) {
+            mBluetoothHeadset.phoneStateChanged(mNumActive, mNumHeld,
+                convertCallState(mRingingCallState, mForegroundCallState),
+                mRingNumber.mNumber, mRingNumber.mType);
+        }
+    }
+
+    private int getNumHeldUmts() {
+        int countHeld = 0;
+        List<Call> heldCalls = mCM.getBackgroundCalls();
+
+        for (Call call : heldCalls) {
+            if (call.getState() == Call.State.HOLDING) {
+                countHeld++;
+            }
+        }
+        return countHeld;
+    }
+
+    private int getNumHeldCdma() {
+        int numHeld = 0;
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        if (app.cdmaPhoneCallState != null) {
+            CdmaPhoneCallState.PhoneCallState curr3WayCallState =
+                app.cdmaPhoneCallState.getCurrentCallState();
+            CdmaPhoneCallState.PhoneCallState prev3WayCallState =
+                app.cdmaPhoneCallState.getPreviousCallState();
+
+            log("CDMA call state: " + curr3WayCallState + " prev state:" +
+                prev3WayCallState);
+            if (curr3WayCallState == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+                if (prev3WayCallState == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                    numHeld = 0; //0: no calls held, as now *both* the caller are active
+                } else {
+                    numHeld = 1; //1: held call and active call, as on answering a
+                    // Call Waiting, one of the caller *is* put on hold
+                }
+            } else if (curr3WayCallState == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                numHeld = 1; //1: held call and active call, as on make a 3 Way Call
+                // the first caller *is* put on hold
+            } else {
+                numHeld = 0; //0: no calls held as this is a SINGLE_ACTIVE call
+            }
+        }
+        return numHeld;
+    }
+
+    private CallNumber getCallNumber(Connection connection, Call call) {
+        String number = null;
+        int type = 128;
+        // find phone number and type
+        if (connection == null) {
+            connection = call.getEarliestConnection();
+            if (connection == null) {
+                Log.e(TAG, "Could not get a handle on Connection object for the call");
+            }
+        }
+        if (connection != null) {
+            number = connection.getAddress();
+            if (number != null) {
+                type = PhoneNumberUtils.toaFromString(number);
+            }
+        }
+        if (number == null) {
+            number = "";
+        }
+        return new CallNumber(number, type);
+    }
+
+    private class CallNumber
+    {
+        private String mNumber = null;
+        private int mType = 0;
+
+        private CallNumber(String number, int type) {
+            mNumber = number;
+            mType = type;
+        }
+
+        private boolean equalTo(CallNumber callNumber) 
+        {
+            if (mType != callNumber.mType) return false;
+            
+            if (mNumber != null && mNumber.compareTo(callNumber.mNumber) == 0) {
+                return true;
+            }
+            return false;
+        }
+    }
+
+    private BluetoothProfile.ServiceListener mProfileListener =
+            new BluetoothProfile.ServiceListener() {
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mBluetoothHeadset = (BluetoothHeadset) proxy;
+        }
+        public void onServiceDisconnected(int profile) {
+            mBluetoothHeadset = null;
+        }
+    };
+
+    private void listCurrentCallsGsm() {
+        // Collect all known connections
+        // clccConnections isindexed by CLCC index
+        Connection[] clccConnections = new Connection[GSM_MAX_CONNECTIONS];
+        LinkedList<Connection> newConnections = new LinkedList<Connection>();
+        LinkedList<Connection> connections = new LinkedList<Connection>();
+
+        Call foregroundCall = mCM.getActiveFgCall();
+        Call backgroundCall = mCM.getFirstActiveBgCall();
+        Call ringingCall = mCM.getFirstActiveRingingCall();
+
+        if (ringingCall.getState().isAlive()) {
+            connections.addAll(ringingCall.getConnections());
+        }
+        if (foregroundCall.getState().isAlive()) {
+            connections.addAll(foregroundCall.getConnections());
+        }
+        if (backgroundCall.getState().isAlive()) {
+            connections.addAll(backgroundCall.getConnections());
+        }
+
+        // Mark connections that we already known about
+        boolean clccUsed[] = new boolean[GSM_MAX_CONNECTIONS];
+        for (int i = 0; i < GSM_MAX_CONNECTIONS; i++) {
+            clccUsed[i] = mClccUsed[i];
+            mClccUsed[i] = false;
+        }
+        for (Connection c : connections) {
+            boolean found = false;
+            long timestamp = c.getCreateTime();
+            for (int i = 0; i < GSM_MAX_CONNECTIONS; i++) {
+                if (clccUsed[i] && timestamp == mClccTimestamps[i]) {
+                    mClccUsed[i] = true;
+                    found = true;
+                    clccConnections[i] = c;
+                    break;
+                }
+            }
+            if (!found) {
+                newConnections.add(c);
+            }
+        }
+
+        // Find a CLCC index for new connections
+        while (!newConnections.isEmpty()) {
+            // Find lowest empty index
+            int i = 0;
+            while (mClccUsed[i]) i++;
+            // Find earliest connection
+            long earliestTimestamp = newConnections.get(0).getCreateTime();
+            Connection earliestConnection = newConnections.get(0);
+            for (int j = 0; j < newConnections.size(); j++) {
+                long timestamp = newConnections.get(j).getCreateTime();
+                if (timestamp < earliestTimestamp) {
+                    earliestTimestamp = timestamp;
+                    earliestConnection = newConnections.get(j);
+                }
+            }
+
+            // update
+            mClccUsed[i] = true;
+            mClccTimestamps[i] = earliestTimestamp;
+            clccConnections[i] = earliestConnection;
+            newConnections.remove(earliestConnection);
+        }
+
+        // Send CLCC response to Bluetooth headset service
+        for (int i = 0; i < clccConnections.length; i++) {
+            if (mClccUsed[i]) {
+                sendClccResponseGsm(i, clccConnections[i]);
+            }
+        }
+    }
+
+    /** Convert a Connection object into a single +CLCC result */
+    private void sendClccResponseGsm(int index, Connection connection) {
+        int state = convertCallState(connection.getState());
+        boolean mpty = false;
+        Call call = connection.getCall();
+        if (call != null) {
+            mpty = call.isMultiparty();
+        }
+
+        int direction = connection.isIncoming() ? 1 : 0;
+
+        String number = connection.getAddress();
+        int type = -1;
+        if (number != null) {
+            type = PhoneNumberUtils.toaFromString(number);
+        }
+
+        mBluetoothHeadset.clccResponse(index + 1, direction, state, 0, mpty, number, type);
+    }
+
+    /** Build the +CLCC result for CDMA
+     *  The complexity arises from the fact that we need to maintain the same
+     *  CLCC index even as a call moves between states. */
+    private synchronized void listCurrentCallsCdma() {
+        // In CDMA at one time a user can have only two live/active connections
+        Connection[] clccConnections = new Connection[CDMA_MAX_CONNECTIONS];// indexed by CLCC index
+        Call foregroundCall = mCM.getActiveFgCall();
+        Call ringingCall = mCM.getFirstActiveRingingCall();
+
+        Call.State ringingCallState = ringingCall.getState();
+        // If the Ringing Call state is INCOMING, that means this is the very first call
+        // hence there should not be any Foreground Call
+        if (ringingCallState == Call.State.INCOMING) {
+            if (VDBG) log("Filling clccConnections[0] for INCOMING state");
+            clccConnections[0] = ringingCall.getLatestConnection();
+        } else if (foregroundCall.getState().isAlive()) {
+            // Getting Foreground Call connection based on Call state
+            if (ringingCall.isRinging()) {
+                if (VDBG) log("Filling clccConnections[0] & [1] for CALL WAITING state");
+                clccConnections[0] = foregroundCall.getEarliestConnection();
+                clccConnections[1] = ringingCall.getLatestConnection();
+            } else {
+                if (foregroundCall.getConnections().size() <= 1) {
+                    // Single call scenario
+                    if (VDBG) {
+                        log("Filling clccConnections[0] with ForgroundCall latest connection");
+                    }
+                    clccConnections[0] = foregroundCall.getLatestConnection();
+                } else {
+                    // Multiple Call scenario. This would be true for both
+                    // CONF_CALL and THRWAY_ACTIVE state
+                    if (VDBG) {
+                        log("Filling clccConnections[0] & [1] with ForgroundCall connections");
+                    }
+                    clccConnections[0] = foregroundCall.getEarliestConnection();
+                    clccConnections[1] = foregroundCall.getLatestConnection();
+                }
+            }
+        }
+
+        // Update the mCdmaIsSecondCallActive flag based on the Phone call state
+        if (PhoneGlobals.getInstance().cdmaPhoneCallState.getCurrentCallState()
+                == CdmaPhoneCallState.PhoneCallState.SINGLE_ACTIVE) {
+            Message msg = mHandler.obtainMessage(CDMA_SET_SECOND_CALL_STATE, false);
+            mHandler.sendMessage(msg);
+        } else if (PhoneGlobals.getInstance().cdmaPhoneCallState.getCurrentCallState()
+                == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+            Message msg = mHandler.obtainMessage(CDMA_SET_SECOND_CALL_STATE, true);
+            mHandler.sendMessage(msg);
+        }
+
+        // send CLCC result
+        for (int i = 0; (i < clccConnections.length) && (clccConnections[i] != null); i++) {
+            sendClccResponseCdma(i, clccConnections[i]);
+        }
+    }
+
+    /** Send ClCC results for a Connection object for CDMA phone */
+    private void sendClccResponseCdma(int index, Connection connection) {
+        int state;
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        CdmaPhoneCallState.PhoneCallState currCdmaCallState =
+                app.cdmaPhoneCallState.getCurrentCallState();
+        CdmaPhoneCallState.PhoneCallState prevCdmaCallState =
+                app.cdmaPhoneCallState.getPreviousCallState();
+
+        if ((prevCdmaCallState == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                && (currCdmaCallState == CdmaPhoneCallState.PhoneCallState.CONF_CALL)) {
+            // If the current state is reached after merging two calls
+            // we set the state of all the connections as ACTIVE
+            state = CALL_STATE_ACTIVE;
+        } else {
+            Call.State callState = connection.getState();
+            switch (callState) {
+            case ACTIVE:
+                // For CDMA since both the connections are set as active by FW after accepting
+                // a Call waiting or making a 3 way call, we need to set the state specifically
+                // to ACTIVE/HOLDING based on the mCdmaIsSecondCallActive flag. This way the
+                // CLCC result will allow BT devices to enable the swap or merge options
+                if (index == 0) { // For the 1st active connection
+                    state = mCdmaIsSecondCallActive ? CALL_STATE_HELD : CALL_STATE_ACTIVE;
+                } else { // for the 2nd active connection
+                    state = mCdmaIsSecondCallActive ? CALL_STATE_ACTIVE : CALL_STATE_HELD;
+                }
+                break;
+            case HOLDING:
+                state = CALL_STATE_HELD;
+                break;
+            case DIALING:
+                state = CALL_STATE_DIALING;
+                break;
+            case ALERTING:
+                state = CALL_STATE_ALERTING;
+                break;
+            case INCOMING:
+                state = CALL_STATE_INCOMING;
+                break;
+            case WAITING:
+                state = CALL_STATE_WAITING;
+                break;
+            default:
+                Log.e(TAG, "bad call state: " + callState);
+                return;
+            }
+        }
+
+        boolean mpty = false;
+        if (currCdmaCallState == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+            if (prevCdmaCallState == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                // If the current state is reached after merging two calls
+                // we set the multiparty call true.
+                mpty = true;
+            } // else
+                // CALL_CONF state is not from merging two calls, but from
+                // accepting the second call. In this case first will be on
+                // hold in most cases but in some cases its already merged.
+                // However, we will follow the common case and the test case
+                // as per Bluetooth SIG PTS
+        }
+
+        int direction = connection.isIncoming() ? 1 : 0;
+
+        String number = connection.getAddress();
+        int type = -1;
+        if (number != null) {
+            type = PhoneNumberUtils.toaFromString(number);
+        } else {
+            number = "";
+        }
+
+        mBluetoothHeadset.clccResponse(index + 1, direction, state, 0, mpty, number, type);
+    }
+
+    private void handleCdmaSwapSecondCallState() {
+        if (VDBG) log("cdmaSwapSecondCallState: Toggling mCdmaIsSecondCallActive");
+        mCdmaIsSecondCallActive = !mCdmaIsSecondCallActive;
+        mCdmaCallsSwapped = true;
+    }
+
+    private void handleCdmaSetSecondCallState(boolean state) {
+        if (VDBG) log("cdmaSetSecondCallState: Setting mCdmaIsSecondCallActive to " + state);
+        mCdmaIsSecondCallActive = state;
+
+        if (!mCdmaIsSecondCallActive) {
+            mCdmaCallsSwapped = false;
+        }
+    }
+
+    private final IBluetoothHeadsetPhone.Stub mBinder = new IBluetoothHeadsetPhone.Stub() {
+        public boolean answerCall() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            return PhoneUtils.answerCall(mCM.getFirstActiveRingingCall());
+        }
+
+        public boolean hangupCall() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            if (mCM.hasActiveFgCall()) {
+                return PhoneUtils.hangupActiveCall(mCM.getActiveFgCall());
+            } else if (mCM.hasActiveRingingCall()) {
+                return PhoneUtils.hangupRingingCall(mCM.getFirstActiveRingingCall());
+            } else if (mCM.hasActiveBgCall()) {
+                return PhoneUtils.hangupHoldingCall(mCM.getFirstActiveBgCall());
+            }
+            // TODO(BT) handle virtual voice call
+            return false;
+        }
+
+        public boolean sendDtmf(int dtmf) {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            return mCM.sendDtmf((char) dtmf);
+        }
+
+        public boolean processChld(int chld) {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            Phone phone = mCM.getDefaultPhone();
+            int phoneType = phone.getPhoneType();
+            Call ringingCall = mCM.getFirstActiveRingingCall();
+            Call backgroundCall = mCM.getFirstActiveBgCall();
+
+            if (chld == CHLD_TYPE_RELEASEHELD) {
+                if (ringingCall.isRinging()) {
+                    return PhoneUtils.hangupRingingCall(ringingCall);
+                } else {
+                    return PhoneUtils.hangupHoldingCall(backgroundCall);
+                }
+            } else if (chld == CHLD_TYPE_RELEASEACTIVE_ACCEPTHELD) {
+                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                    if (ringingCall.isRinging()) {
+                        // Hangup the active call and then answer call waiting call.
+                        if (VDBG) log("CHLD:1 Callwaiting Answer call");
+                        PhoneUtils.hangupRingingAndActive(phone);
+                    } else {
+                        // If there is no Call waiting then just hangup
+                        // the active call. In CDMA this mean that the complete
+                        // call session would be ended
+                        if (VDBG) log("CHLD:1 Hangup Call");
+                        PhoneUtils.hangup(PhoneGlobals.getInstance().mCM);
+                    }
+                    return true;
+                } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                    // Hangup active call, answer held call
+                    return PhoneUtils.answerAndEndActive(PhoneGlobals.getInstance().mCM, ringingCall);
+                } else {
+                    Log.e(TAG, "bad phone type: " + phoneType);
+                    return false;
+                }
+            } else if (chld == CHLD_TYPE_HOLDACTIVE_ACCEPTHELD) {
+                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                    // For CDMA, the way we switch to a new incoming call is by
+                    // calling PhoneUtils.answerCall(). switchAndHoldActive() won't
+                    // properly update the call state within telephony.
+                    // If the Phone state is already in CONF_CALL then we simply send
+                    // a flash cmd by calling switchHoldingAndActive()
+                    if (ringingCall.isRinging()) {
+                        if (VDBG) log("CHLD:2 Callwaiting Answer call");
+                        PhoneUtils.answerCall(ringingCall);
+                        PhoneUtils.setMute(false);
+                        // Setting the second callers state flag to TRUE (i.e. active)
+                        cdmaSetSecondCallState(true);
+                        return true;
+                    } else if (PhoneGlobals.getInstance().cdmaPhoneCallState
+                               .getCurrentCallState()
+                               == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+                        if (VDBG) log("CHLD:2 Swap Calls");
+                        PhoneUtils.switchHoldingAndActive(backgroundCall);
+                        // Toggle the second callers active state flag
+                        cdmaSwapSecondCallState();
+                        return true;
+                    }
+                    Log.e(TAG, "CDMA fail to do hold active and accept held");
+                    return false;
+                } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                    PhoneUtils.switchHoldingAndActive(backgroundCall);
+                    return true;
+                } else {
+                    Log.e(TAG, "Unexpected phone type: " + phoneType);
+                    return false;
+                }
+            } else if (chld == CHLD_TYPE_ADDHELDTOCONF) {
+                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                    CdmaPhoneCallState.PhoneCallState state =
+                        PhoneGlobals.getInstance().cdmaPhoneCallState.getCurrentCallState();
+                    // For CDMA, we need to check if the call is in THRWAY_ACTIVE state
+                    if (state == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                        if (VDBG) log("CHLD:3 Merge Calls");
+                        PhoneUtils.mergeCalls();
+                        return true;
+                    }   else if (state == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+                        // State is CONF_CALL already and we are getting a merge call
+                        // This can happen when CONF_CALL was entered from a Call Waiting
+                        // TODO(BT)
+                        return false;
+                    }
+                    Log.e(TAG, "GSG no call to add conference");
+                    return false;
+                } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                    if (mCM.hasActiveFgCall() && mCM.hasActiveBgCall()) {
+                        PhoneUtils.mergeCalls();
+                        return true;
+                    } else {
+                        Log.e(TAG, "GSG no call to merge");
+                        return false;
+                    }
+                } else {
+                    Log.e(TAG, "Unexpected phone type: " + phoneType);
+                    return false;
+                }                
+            } else {
+                Log.e(TAG, "bad CHLD value: " + chld);
+                return false;
+            }
+        }
+
+        public String getNetworkOperator() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            return mCM.getDefaultPhone().getServiceState().getOperatorAlphaLong();
+        }
+
+        public String getSubscriberNumber() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            return mCM.getDefaultPhone().getLine1Number();
+        }
+
+        public boolean listCurrentCalls() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            Message msg = Message.obtain(mHandler, LIST_CURRENT_CALLS);
+            mHandler.sendMessage(msg);
+            return true;
+        }
+
+        public boolean queryPhoneState() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            Message msg = Message.obtain(mHandler, QUERY_PHONE_STATE);
+            mHandler.sendMessage(msg);
+            return true;
+        }
+
+        public void updateBtHandsfreeAfterRadioTechnologyChange() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            if (VDBG) Log.d(TAG, "updateBtHandsfreeAfterRadioTechnologyChange...");
+            updateBtPhoneStateAfterRadioTechnologyChange();
+        }
+
+        public void cdmaSwapSecondCallState() {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            Message msg = Message.obtain(mHandler, CDMA_SWAP_SECOND_CALL_STATE);
+            mHandler.sendMessage(msg);
+        }
+
+        public void cdmaSetSecondCallState(boolean state) {
+            enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+            Message msg = mHandler.obtainMessage(CDMA_SET_SECOND_CALL_STATE, state);
+            mHandler.sendMessage(msg);
+        }
+    };
+
+    // match up with bthf_call_state_t of bt_hf.h
+    final static int CALL_STATE_ACTIVE = 0;
+    final static int CALL_STATE_HELD = 1;
+    final static int CALL_STATE_DIALING = 2;
+    final static int CALL_STATE_ALERTING = 3;
+    final static int CALL_STATE_INCOMING = 4;
+    final static int CALL_STATE_WAITING = 5;
+    final static int CALL_STATE_IDLE = 6;
+
+    // match up with bthf_chld_type_t of bt_hf.h
+    final static int CHLD_TYPE_RELEASEHELD = 0;
+    final static int CHLD_TYPE_RELEASEACTIVE_ACCEPTHELD = 1;
+    final static int CHLD_TYPE_HOLDACTIVE_ACCEPTHELD = 2;
+    final static int CHLD_TYPE_ADDHELDTOCONF = 3;
+
+     /* Convert telephony phone call state into hf hal call state */
+    static int convertCallState(Call.State ringingState, Call.State foregroundState) {
+        if ((ringingState == Call.State.INCOMING) ||
+            (ringingState == Call.State.WAITING) )
+            return CALL_STATE_INCOMING;
+        else if (foregroundState == Call.State.DIALING)
+            return CALL_STATE_DIALING;
+        else if (foregroundState == Call.State.ALERTING)
+            return CALL_STATE_ALERTING;
+        else
+            return CALL_STATE_IDLE;
+    }
+
+    static int convertCallState(Call.State callState) {
+        switch (callState) {
+        case IDLE:
+        case DISCONNECTED:
+        case DISCONNECTING:
+            return CALL_STATE_IDLE;
+        case ACTIVE:
+            return CALL_STATE_ACTIVE;
+        case HOLDING:
+            return CALL_STATE_HELD;
+        case DIALING:
+            return CALL_STATE_DIALING;
+        case ALERTING:
+            return CALL_STATE_ALERTING;
+        case INCOMING:
+            return CALL_STATE_INCOMING;
+        case WAITING:
+            return CALL_STATE_WAITING;
+        default:
+            Log.e(TAG, "bad call state: " + callState);
+            return CALL_STATE_IDLE;
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CLIRListPreference.java b/src/com/android/phone/CLIRListPreference.java
new file mode 100644
index 0000000..198bdb0
--- /dev/null
+++ b/src/com/android/phone/CLIRListPreference.java
@@ -0,0 +1,170 @@
+package com.android.phone;
+
+import static com.android.phone.TimeConsumingPreferenceActivity.RESPONSE_ERROR;
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.Phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.Parcelable;
+import android.preference.ListPreference;
+import android.util.AttributeSet;
+import android.util.Log;
+
+/**
+ * {@link ListPreference} for CLIR (Calling Line Identification Restriction).
+ * Right now this is used for "Caller ID" setting.
+ */
+public class CLIRListPreference extends ListPreference {
+    private static final String LOG_TAG = "CLIRListPreference";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private final MyHandler mHandler = new MyHandler();
+    private final Phone mPhone;
+    private TimeConsumingPreferenceListener mTcpListener;
+
+    int clirArray[];
+
+    public CLIRListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        mPhone = PhoneGlobals.getPhone();
+    }
+
+    public CLIRListPreference(Context context) {
+        this(context, null);
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+
+        mPhone.setOutgoingCallerIdDisplay(findIndexOfValue(getValue()),
+                mHandler.obtainMessage(MyHandler.MESSAGE_SET_CLIR));
+        if (mTcpListener != null) {
+            mTcpListener.onStarted(this, false);
+        }
+    }
+
+    /* package */ void init(TimeConsumingPreferenceListener listener, boolean skipReading) {
+        mTcpListener = listener;
+        if (!skipReading) {
+            mPhone.getOutgoingCallerIdDisplay(mHandler.obtainMessage(MyHandler.MESSAGE_GET_CLIR,
+                    MyHandler.MESSAGE_GET_CLIR, MyHandler.MESSAGE_GET_CLIR));
+            if (mTcpListener != null) {
+                mTcpListener.onStarted(this, true);
+            }
+        }
+    }
+
+    /* package */ void handleGetCLIRResult(int tmpClirArray[]) {
+        clirArray = tmpClirArray;
+        final boolean enabled =
+                tmpClirArray[1] == 1 || tmpClirArray[1] == 3 || tmpClirArray[1] == 4;
+        setEnabled(enabled);
+
+        // set the value of the preference based upon the clirArgs.
+        int value = CommandsInterface.CLIR_DEFAULT;
+        switch (tmpClirArray[1]) {
+            case 1: // Permanently provisioned
+            case 3: // Temporary presentation disallowed
+            case 4: // Temporary presentation allowed
+                switch (tmpClirArray[0]) {
+                    case 1: // CLIR invoked
+                        value = CommandsInterface.CLIR_INVOCATION;
+                        break;
+                    case 2: // CLIR suppressed
+                        value = CommandsInterface.CLIR_SUPPRESSION;
+                        break;
+                    case 0: // Network default
+                    default:
+                        value = CommandsInterface.CLIR_DEFAULT;
+                        break;
+                }
+                break;
+            case 0: // Not Provisioned
+            case 2: // Unknown (network error, etc)
+            default:
+                value = CommandsInterface.CLIR_DEFAULT;
+                break;
+        }
+        setValueIndex(value);
+
+        // set the string summary to reflect the value
+        int summary = R.string.sum_default_caller_id;
+        switch (value) {
+            case CommandsInterface.CLIR_SUPPRESSION:
+                summary = R.string.sum_show_caller_id;
+                break;
+            case CommandsInterface.CLIR_INVOCATION:
+                summary = R.string.sum_hide_caller_id;
+                break;
+            case CommandsInterface.CLIR_DEFAULT:
+                summary = R.string.sum_default_caller_id;
+                break;
+        }
+        setSummary(summary);
+    }
+
+    private class MyHandler extends Handler {
+        static final int MESSAGE_GET_CLIR = 0;
+        static final int MESSAGE_SET_CLIR = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_CLIR:
+                    handleGetCLIRResponse(msg);
+                    break;
+                case MESSAGE_SET_CLIR:
+                    handleSetCLIRResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetCLIRResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (msg.arg2 == MESSAGE_SET_CLIR) {
+                mTcpListener.onFinished(CLIRListPreference.this, false);
+            } else {
+                mTcpListener.onFinished(CLIRListPreference.this, true);
+            }
+            clirArray = null;
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleGetCLIRResponse: ar.exception="+ar.exception);
+                mTcpListener.onException(CLIRListPreference.this, (CommandException) ar.exception);
+            } else if (ar.userObj instanceof Throwable) {
+                mTcpListener.onError(CLIRListPreference.this, RESPONSE_ERROR);
+            } else {
+                int clirArray[] = (int[]) ar.result;
+                if (clirArray.length != 2) {
+                    mTcpListener.onError(CLIRListPreference.this, RESPONSE_ERROR);
+                } else {
+                    if (DBG) {
+                        Log.d(LOG_TAG, "handleGetCLIRResponse: CLIR successfully queried,"
+                                + " clirArray[0]=" + clirArray[0]
+                                + ", clirArray[1]=" + clirArray[1]);
+                    }
+                    handleGetCLIRResult(clirArray);
+                }
+            }
+        }
+
+        private void handleSetCLIRResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleSetCallWaitingResponse: ar.exception="+ar.exception);
+                //setEnabled(false);
+            }
+            if (DBG) Log.d(LOG_TAG, "handleSetCallWaitingResponse: re get");
+
+            mPhone.getOutgoingCallerIdDisplay(obtainMessage(MESSAGE_GET_CLIR,
+                    MESSAGE_SET_CLIR, MESSAGE_SET_CLIR, ar.exception));
+        }
+    }
+}
diff --git a/src/com/android/phone/CallCard.java b/src/com/android/phone/CallCard.java
new file mode 100644
index 0000000..682113f
--- /dev/null
+++ b/src/com/android/phone/CallCard.java
@@ -0,0 +1,1787 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.animation.LayoutTransition;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.ContactsContract.Contacts;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.CallerInfoAsyncQuery;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+
+import java.util.List;
+
+
+/**
+ * "Call card" UI element: the in-call screen contains a tiled layout of call
+ * cards, each representing the state of a current "call" (ie. an active call,
+ * a call on hold, or an incoming call.)
+ */
+public class CallCard extends LinearLayout
+        implements CallTime.OnTickListener, CallerInfoAsyncQuery.OnQueryCompleteListener,
+                   ContactsAsyncHelper.OnImageLoadCompleteListener {
+    private static final String LOG_TAG = "CallCard";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private static final int TOKEN_UPDATE_PHOTO_FOR_CALL_STATE = 0;
+    private static final int TOKEN_DO_NOTHING = 1;
+
+    /**
+     * Used with {@link ContactsAsyncHelper#startObtainPhotoAsync(int, Context, Uri,
+     * ContactsAsyncHelper.OnImageLoadCompleteListener, Object)}
+     */
+    private static class AsyncLoadCookie {
+        public final ImageView imageView;
+        public final CallerInfo callerInfo;
+        public final Call call;
+        public AsyncLoadCookie(ImageView imageView, CallerInfo callerInfo, Call call) {
+            this.imageView = imageView;
+            this.callerInfo = callerInfo;
+            this.call = call;
+        }
+    }
+
+    /**
+     * Reference to the InCallScreen activity that owns us.  This may be
+     * null if we haven't been initialized yet *or* after the InCallScreen
+     * activity has been destroyed.
+     */
+    private InCallScreen mInCallScreen;
+
+    // Phone app instance
+    private PhoneGlobals mApplication;
+
+    // Top-level subviews of the CallCard
+    /** Container for info about the current call(s) */
+    private ViewGroup mCallInfoContainer;
+    /** Primary "call info" block (the foreground or ringing call) */
+    private ViewGroup mPrimaryCallInfo;
+    /** "Call banner" for the primary call */
+    private ViewGroup mPrimaryCallBanner;
+    /** Secondary "call info" block (the background "on hold" call) */
+    private ViewStub mSecondaryCallInfo;
+
+    /**
+     * Container for both provider info and call state. This will take care of showing/hiding
+     * animation for those views.
+     */
+    private ViewGroup mSecondaryInfoContainer;
+    private ViewGroup mProviderInfo;
+    private TextView mProviderLabel;
+    private TextView mProviderAddress;
+
+    // "Call state" widgets
+    private TextView mCallStateLabel;
+    private TextView mElapsedTime;
+
+    // Text colors, used for various labels / titles
+    private int mTextColorCallTypeSip;
+
+    // The main block of info about the "primary" or "active" call,
+    // including photo / name / phone number / etc.
+    private ImageView mPhoto;
+    private View mPhotoDimEffect;
+
+    private TextView mName;
+    private TextView mPhoneNumber;
+    private TextView mLabel;
+    private TextView mCallTypeLabel;
+    // private TextView mSocialStatus;
+
+    /**
+     * Uri being used to load contact photo for mPhoto. Will be null when nothing is being loaded,
+     * or a photo is already loaded.
+     */
+    private Uri mLoadingPersonUri;
+
+    // Info about the "secondary" call, which is the "call on hold" when
+    // two lines are in use.
+    private TextView mSecondaryCallName;
+    private ImageView mSecondaryCallPhoto;
+    private View mSecondaryCallPhotoDimEffect;
+
+    // Onscreen hint for the incoming call RotarySelector widget.
+    private int mIncomingCallWidgetHintTextResId;
+    private int mIncomingCallWidgetHintColorResId;
+
+    private CallTime mCallTime;
+
+    // Track the state for the photo.
+    private ContactsAsyncHelper.ImageTracker mPhotoTracker;
+
+    // Cached DisplayMetrics density.
+    private float mDensity;
+
+    /**
+     * Sent when it takes too long (MESSAGE_DELAY msec) to load a contact photo for the given
+     * person, at which we just start showing the default avatar picture instead of the person's
+     * one. Note that we will *not* cancel the ongoing query and eventually replace the avatar
+     * with the person's photo, when it is available anyway.
+     */
+    private static final int MESSAGE_SHOW_UNKNOWN_PHOTO = 101;
+    private static final int MESSAGE_DELAY = 500; // msec
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_SHOW_UNKNOWN_PHOTO:
+                    showImage(mPhoto, R.drawable.picture_unknown);
+                    break;
+                default:
+                    Log.wtf(LOG_TAG, "mHandler: unexpected message: " + msg);
+                    break;
+            }
+        }
+    };
+
+    public CallCard(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        if (DBG) log("CallCard constructor...");
+        if (DBG) log("- this = " + this);
+        if (DBG) log("- context " + context + ", attrs " + attrs);
+
+        mApplication = PhoneGlobals.getInstance();
+
+        mCallTime = new CallTime(this);
+
+        // create a new object to track the state for the photo.
+        mPhotoTracker = new ContactsAsyncHelper.ImageTracker();
+
+        mDensity = getResources().getDisplayMetrics().density;
+        if (DBG) log("- Density: " + mDensity);
+    }
+
+    /* package */ void setInCallScreenInstance(InCallScreen inCallScreen) {
+        mInCallScreen = inCallScreen;
+    }
+
+    @Override
+    public void onTickForCallTimeElapsed(long timeElapsed) {
+        // While a call is in progress, update the elapsed time shown
+        // onscreen.
+        updateElapsedTimeWidget(timeElapsed);
+    }
+
+    /* package */ void stopTimer() {
+        mCallTime.cancelTimer();
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        if (DBG) log("CallCard onFinishInflate(this = " + this + ")...");
+
+        mCallInfoContainer = (ViewGroup) findViewById(R.id.call_info_container);
+        mPrimaryCallInfo = (ViewGroup) findViewById(R.id.primary_call_info);
+        mPrimaryCallBanner = (ViewGroup) findViewById(R.id.primary_call_banner);
+
+        mSecondaryInfoContainer = (ViewGroup) findViewById(R.id.secondary_info_container);
+        mProviderInfo = (ViewGroup) findViewById(R.id.providerInfo);
+        mProviderLabel = (TextView) findViewById(R.id.providerLabel);
+        mProviderAddress = (TextView) findViewById(R.id.providerAddress);
+        mCallStateLabel = (TextView) findViewById(R.id.callStateLabel);
+        mElapsedTime = (TextView) findViewById(R.id.elapsedTime);
+
+        // Text colors
+        mTextColorCallTypeSip = getResources().getColor(R.color.incall_callTypeSip);
+
+        // "Caller info" area, including photo / name / phone numbers / etc
+        mPhoto = (ImageView) findViewById(R.id.photo);
+        mPhotoDimEffect = findViewById(R.id.dim_effect_for_primary_photo);
+
+        mName = (TextView) findViewById(R.id.name);
+        mPhoneNumber = (TextView) findViewById(R.id.phoneNumber);
+        mLabel = (TextView) findViewById(R.id.label);
+        mCallTypeLabel = (TextView) findViewById(R.id.callTypeLabel);
+        // mSocialStatus = (TextView) findViewById(R.id.socialStatus);
+
+        // Secondary info area, for the background ("on hold") call
+        mSecondaryCallInfo = (ViewStub) findViewById(R.id.secondary_call_info);
+    }
+
+    /**
+     * Updates the state of all UI elements on the CallCard, based on the
+     * current state of the phone.
+     */
+    /* package */ void updateState(CallManager cm) {
+        if (DBG) log("updateState(" + cm + ")...");
+
+        // Update the onscreen UI based on the current state of the phone.
+
+        PhoneConstants.State state = cm.getState();  // IDLE, RINGING, or OFFHOOK
+        Call ringingCall = cm.getFirstActiveRingingCall();
+        Call fgCall = cm.getActiveFgCall();
+        Call bgCall = cm.getFirstActiveBgCall();
+
+        // Update the overall layout of the onscreen elements, if in PORTRAIT.
+        // Portrait uses a programatically altered layout, whereas landscape uses layout xml's.
+        // Landscape view has the views side by side, so no shifting of the picture is needed
+        if (!PhoneUtils.isLandscape(this.getContext())) {
+            updateCallInfoLayout(state);
+        }
+
+        // If the FG call is dialing/alerting, we should display for that call
+        // and ignore the ringing call. This case happens when the telephony
+        // layer rejects the ringing call while the FG call is dialing/alerting,
+        // but the incoming call *does* briefly exist in the DISCONNECTING or
+        // DISCONNECTED state.
+        if ((ringingCall.getState() != Call.State.IDLE)
+                && !fgCall.getState().isDialing()) {
+            // A phone call is ringing, call waiting *or* being rejected
+            // (ie. another call may also be active as well.)
+            updateRingingCall(cm);
+        } else if ((fgCall.getState() != Call.State.IDLE)
+                || (bgCall.getState() != Call.State.IDLE)) {
+            // We are here because either:
+            // (1) the phone is off hook. At least one call exists that is
+            // dialing, active, or holding, and no calls are ringing or waiting,
+            // or:
+            // (2) the phone is IDLE but a call just ended and it's still in
+            // the DISCONNECTING or DISCONNECTED state. In this case, we want
+            // the main CallCard to display "Hanging up" or "Call ended".
+            // The normal "foreground call" code path handles both cases.
+            updateForegroundCall(cm);
+        } else {
+            // We don't have any DISCONNECTED calls, which means that the phone
+            // is *truly* idle.
+            if (mApplication.inCallUiState.showAlreadyDisconnectedState) {
+                // showAlreadyDisconnectedState implies the phone call is disconnected
+                // and we want to show the disconnected phone call for a moment.
+                //
+                // This happens when a phone call ends while the screen is off,
+                // which means the user had no chance to see the last status of
+                // the call. We'll turn off showAlreadyDisconnectedState flag
+                // and bail out of the in-call screen soon.
+                updateAlreadyDisconnected(cm);
+            } else {
+                // It's very rare to be on the InCallScreen at all in this
+                // state, but it can happen in some cases:
+                // - A stray onPhoneStateChanged() event came in to the
+                //   InCallScreen *after* it was dismissed.
+                // - We're allowed to be on the InCallScreen because
+                //   an MMI or USSD is running, but there's no actual "call"
+                //   to display.
+                // - We're displaying an error dialog to the user
+                //   (explaining why the call failed), so we need to stay on
+                //   the InCallScreen so that the dialog will be visible.
+                //
+                // In these cases, put the callcard into a sane but "blank" state:
+                updateNoCall(cm);
+            }
+        }
+    }
+
+    /**
+     * Updates the overall size and positioning of mCallInfoContainer and
+     * the "Call info" blocks, based on the phone state.
+     */
+    private void updateCallInfoLayout(PhoneConstants.State state) {
+        boolean ringing = (state == PhoneConstants.State.RINGING);
+        if (DBG) log("updateCallInfoLayout()...  ringing = " + ringing);
+
+        // Based on the current state, update the overall
+        // CallCard layout:
+
+        // - Update the bottom margin of mCallInfoContainer to make sure
+        //   the call info area won't overlap with the touchable
+        //   controls on the bottom part of the screen.
+
+        int reservedVerticalSpace = mInCallScreen.getInCallTouchUi().getTouchUiHeight();
+        ViewGroup.MarginLayoutParams callInfoLp =
+                (ViewGroup.MarginLayoutParams) mCallInfoContainer.getLayoutParams();
+        callInfoLp.bottomMargin = reservedVerticalSpace;  // Equivalent to setting
+                                                          // android:layout_marginBottom in XML
+        if (DBG) log("  ==> callInfoLp.bottomMargin: " + reservedVerticalSpace);
+        mCallInfoContainer.setLayoutParams(callInfoLp);
+    }
+
+    /**
+     * Updates the UI for the state where the phone is in use, but not ringing.
+     */
+    private void updateForegroundCall(CallManager cm) {
+        if (DBG) log("updateForegroundCall()...");
+        // if (DBG) PhoneUtils.dumpCallManager();
+
+        Call fgCall = cm.getActiveFgCall();
+        Call bgCall = cm.getFirstActiveBgCall();
+
+        if (fgCall.getState() == Call.State.IDLE) {
+            if (DBG) log("updateForegroundCall: no active call, show holding call");
+            // TODO: make sure this case agrees with the latest UI spec.
+
+            // Display the background call in the main info area of the
+            // CallCard, since there is no foreground call.  Note that
+            // displayMainCallStatus() will notice if the call we passed in is on
+            // hold, and display the "on hold" indication.
+            fgCall = bgCall;
+
+            // And be sure to not display anything in the "on hold" box.
+            bgCall = null;
+        }
+
+        displayMainCallStatus(cm, fgCall);
+
+        Phone phone = fgCall.getPhone();
+
+        int phoneType = phone.getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            if ((mApplication.cdmaPhoneCallState.getCurrentCallState()
+                    == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                    && mApplication.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing()) {
+                displaySecondaryCallStatus(cm, fgCall);
+            } else {
+                //This is required so that even if a background call is not present
+                // we need to clean up the background call area.
+                displaySecondaryCallStatus(cm, bgCall);
+            }
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            displaySecondaryCallStatus(cm, bgCall);
+        }
+    }
+
+    /**
+     * Updates the UI for the state where an incoming call is ringing (or
+     * call waiting), regardless of whether the phone's already offhook.
+     */
+    private void updateRingingCall(CallManager cm) {
+        if (DBG) log("updateRingingCall()...");
+
+        Call ringingCall = cm.getFirstActiveRingingCall();
+
+        // Display caller-id info and photo from the incoming call:
+        displayMainCallStatus(cm, ringingCall);
+
+        // And even in the Call Waiting case, *don't* show any info about
+        // the current ongoing call and/or the current call on hold.
+        // (Since the caller-id info for the incoming call totally trumps
+        // any info about the current call(s) in progress.)
+        displaySecondaryCallStatus(cm, null);
+    }
+
+    /**
+     * Updates the UI for the state where an incoming call is just disconnected while we want to
+     * show the screen for a moment.
+     *
+     * This case happens when the whole in-call screen is in background when phone calls are hanged
+     * up, which means there's no way to determine which call was the last call finished. Right now
+     * this method simply shows the previous primary call status with a photo, closing the
+     * secondary call status. In most cases (including conference call or misc call happening in
+     * CDMA) this behaves right.
+     *
+     * If there were two phone calls both of which were hung up but the primary call was the
+     * first, this would behave a bit odd (since the first one still appears as the
+     * "last disconnected").
+     */
+    private void updateAlreadyDisconnected(CallManager cm) {
+        // For the foreground call, we manually set up every component based on previous state.
+        mPrimaryCallInfo.setVisibility(View.VISIBLE);
+        mSecondaryInfoContainer.setLayoutTransition(null);
+        mProviderInfo.setVisibility(View.GONE);
+        mCallStateLabel.setVisibility(View.VISIBLE);
+        mCallStateLabel.setText(mContext.getString(R.string.card_title_call_ended));
+        mElapsedTime.setVisibility(View.VISIBLE);
+        mCallTime.cancelTimer();
+
+        // Just hide it.
+        displaySecondaryCallStatus(cm, null);
+    }
+
+    /**
+     * Updates the UI for the state where the phone is not in use.
+     * This is analogous to updateForegroundCall() and updateRingingCall(),
+     * but for the (uncommon) case where the phone is
+     * totally idle.  (See comments in updateState() above.)
+     *
+     * This puts the callcard into a sane but "blank" state.
+     */
+    private void updateNoCall(CallManager cm) {
+        if (DBG) log("updateNoCall()...");
+
+        displayMainCallStatus(cm, null);
+        displaySecondaryCallStatus(cm, null);
+    }
+
+    /**
+     * Updates the main block of caller info on the CallCard
+     * (ie. the stuff in the primaryCallInfo block) based on the specified Call.
+     */
+    private void displayMainCallStatus(CallManager cm, Call call) {
+        if (DBG) log("displayMainCallStatus(call " + call + ")...");
+
+        if (call == null) {
+            // There's no call to display, presumably because the phone is idle.
+            mPrimaryCallInfo.setVisibility(View.GONE);
+            return;
+        }
+        mPrimaryCallInfo.setVisibility(View.VISIBLE);
+
+        Call.State state = call.getState();
+        if (DBG) log("  - call.state: " + call.getState());
+
+        switch (state) {
+            case ACTIVE:
+            case DISCONNECTING:
+                // update timer field
+                if (DBG) log("displayMainCallStatus: start periodicUpdateTimer");
+                mCallTime.setActiveCallMode(call);
+                mCallTime.reset();
+                mCallTime.periodicUpdateTimer();
+
+                break;
+
+            case HOLDING:
+                // update timer field
+                mCallTime.cancelTimer();
+
+                break;
+
+            case DISCONNECTED:
+                // Stop getting timer ticks from this call
+                mCallTime.cancelTimer();
+
+                break;
+
+            case DIALING:
+            case ALERTING:
+                // Stop getting timer ticks from a previous call
+                mCallTime.cancelTimer();
+
+                break;
+
+            case INCOMING:
+            case WAITING:
+                // Stop getting timer ticks from a previous call
+                mCallTime.cancelTimer();
+
+                break;
+
+            case IDLE:
+                // The "main CallCard" should never be trying to display
+                // an idle call!  In updateState(), if the phone is idle,
+                // we call updateNoCall(), which means that we shouldn't
+                // have passed a call into this method at all.
+                Log.w(LOG_TAG, "displayMainCallStatus: IDLE call in the main call card!");
+
+                // (It is possible, though, that we had a valid call which
+                // became idle *after* the check in updateState() but
+                // before we get here...  So continue the best we can,
+                // with whatever (stale) info we can get from the
+                // passed-in Call object.)
+
+                break;
+
+            default:
+                Log.w(LOG_TAG, "displayMainCallStatus: unexpected call state: " + state);
+                break;
+        }
+
+        updateCallStateWidgets(call);
+
+        if (PhoneUtils.isConferenceCall(call)) {
+            // Update onscreen info for a conference call.
+            updateDisplayForConference(call);
+        } else {
+            // Update onscreen info for a regular call (which presumably
+            // has only one connection.)
+            Connection conn = null;
+            int phoneType = call.getPhone().getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                conn = call.getLatestConnection();
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                  || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                conn = call.getEarliestConnection();
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+
+            if (conn == null) {
+                if (DBG) log("displayMainCallStatus: connection is null, using default values.");
+                // if the connection is null, we run through the behaviour
+                // we had in the past, which breaks down into trivial steps
+                // with the current implementation of getCallerInfo and
+                // updateDisplayForPerson.
+                CallerInfo info = PhoneUtils.getCallerInfo(getContext(), null /* conn */);
+                updateDisplayForPerson(info, PhoneConstants.PRESENTATION_ALLOWED, false, call,
+                        conn);
+            } else {
+                if (DBG) log("  - CONN: " + conn + ", state = " + conn.getState());
+                int presentation = conn.getNumberPresentation();
+
+                // make sure that we only make a new query when the current
+                // callerinfo differs from what we've been requested to display.
+                boolean runQuery = true;
+                Object o = conn.getUserData();
+                if (o instanceof PhoneUtils.CallerInfoToken) {
+                    runQuery = mPhotoTracker.isDifferentImageRequest(
+                            ((PhoneUtils.CallerInfoToken) o).currentInfo);
+                } else {
+                    runQuery = mPhotoTracker.isDifferentImageRequest(conn);
+                }
+
+                // Adding a check to see if the update was caused due to a Phone number update
+                // or CNAP update. If so then we need to start a new query
+                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                    Object obj = conn.getUserData();
+                    String updatedNumber = conn.getAddress();
+                    String updatedCnapName = conn.getCnapName();
+                    CallerInfo info = null;
+                    if (obj instanceof PhoneUtils.CallerInfoToken) {
+                        info = ((PhoneUtils.CallerInfoToken) o).currentInfo;
+                    } else if (o instanceof CallerInfo) {
+                        info = (CallerInfo) o;
+                    }
+
+                    if (info != null) {
+                        if (updatedNumber != null && !updatedNumber.equals(info.phoneNumber)) {
+                            if (DBG) log("- displayMainCallStatus: updatedNumber = "
+                                    + updatedNumber);
+                            runQuery = true;
+                        }
+                        if (updatedCnapName != null && !updatedCnapName.equals(info.cnapName)) {
+                            if (DBG) log("- displayMainCallStatus: updatedCnapName = "
+                                    + updatedCnapName);
+                            runQuery = true;
+                        }
+                    }
+                }
+
+                if (runQuery) {
+                    if (DBG) log("- displayMainCallStatus: starting CallerInfo query...");
+                    PhoneUtils.CallerInfoToken info =
+                            PhoneUtils.startGetCallerInfo(getContext(), conn, this, call);
+                    updateDisplayForPerson(info.currentInfo, presentation, !info.isFinal,
+                                           call, conn);
+                } else {
+                    // No need to fire off a new query.  We do still need
+                    // to update the display, though (since we might have
+                    // previously been in the "conference call" state.)
+                    if (DBG) log("- displayMainCallStatus: using data we already have...");
+                    if (o instanceof CallerInfo) {
+                        CallerInfo ci = (CallerInfo) o;
+                        // Update CNAP information if Phone state change occurred
+                        ci.cnapName = conn.getCnapName();
+                        ci.numberPresentation = conn.getNumberPresentation();
+                        ci.namePresentation = conn.getCnapNamePresentation();
+                        if (DBG) log("- displayMainCallStatus: CNAP data from Connection: "
+                                + "CNAP name=" + ci.cnapName
+                                + ", Number/Name Presentation=" + ci.numberPresentation);
+                        if (DBG) log("   ==> Got CallerInfo; updating display: ci = " + ci);
+                        updateDisplayForPerson(ci, presentation, false, call, conn);
+                    } else if (o instanceof PhoneUtils.CallerInfoToken){
+                        CallerInfo ci = ((PhoneUtils.CallerInfoToken) o).currentInfo;
+                        if (DBG) log("- displayMainCallStatus: CNAP data from Connection: "
+                                + "CNAP name=" + ci.cnapName
+                                + ", Number/Name Presentation=" + ci.numberPresentation);
+                        if (DBG) log("   ==> Got CallerInfoToken; updating display: ci = " + ci);
+                        updateDisplayForPerson(ci, presentation, true, call, conn);
+                    } else {
+                        Log.w(LOG_TAG, "displayMainCallStatus: runQuery was false, "
+                              + "but we didn't have a cached CallerInfo object!  o = " + o);
+                        // TODO: any easy way to recover here (given that
+                        // the CallCard is probably displaying stale info
+                        // right now?)  Maybe force the CallCard into the
+                        // "Unknown" state?
+                    }
+                }
+            }
+        }
+
+        // In some states we override the "photo" ImageView to be an
+        // indication of the current state, rather than displaying the
+        // regular photo as set above.
+        updatePhotoForCallState(call);
+
+        // One special feature of the "number" text field: For incoming
+        // calls, while the user is dragging the RotarySelector widget, we
+        // use mPhoneNumber to display a hint like "Rotate to answer".
+        if (mIncomingCallWidgetHintTextResId != 0) {
+            // Display the hint!
+            mPhoneNumber.setText(mIncomingCallWidgetHintTextResId);
+            mPhoneNumber.setTextColor(getResources().getColor(mIncomingCallWidgetHintColorResId));
+            mPhoneNumber.setVisibility(View.VISIBLE);
+            mLabel.setVisibility(View.GONE);
+        }
+        // If we don't have a hint to display, just don't touch
+        // mPhoneNumber and mLabel. (Their text / color / visibility have
+        // already been set correctly, by either updateDisplayForPerson()
+        // or updateDisplayForConference().)
+    }
+
+    /**
+     * Implemented for CallerInfoAsyncQuery.OnQueryCompleteListener interface.
+     * refreshes the CallCard data when it called.
+     */
+    @Override
+    public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+        if (DBG) log("onQueryComplete: token " + token + ", cookie " + cookie + ", ci " + ci);
+
+        if (cookie instanceof Call) {
+            // grab the call object and update the display for an individual call,
+            // as well as the successive call to update image via call state.
+            // If the object is a textview instead, we update it as we need to.
+            if (DBG) log("callerinfo query complete, updating ui from displayMainCallStatus()");
+            Call call = (Call) cookie;
+            Connection conn = null;
+            int phoneType = call.getPhone().getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                conn = call.getLatestConnection();
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                  || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                conn = call.getEarliestConnection();
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+            PhoneUtils.CallerInfoToken cit =
+                   PhoneUtils.startGetCallerInfo(getContext(), conn, this, null);
+
+            int presentation = PhoneConstants.PRESENTATION_ALLOWED;
+            if (conn != null) presentation = conn.getNumberPresentation();
+            if (DBG) log("- onQueryComplete: presentation=" + presentation
+                    + ", contactExists=" + ci.contactExists);
+
+            // Depending on whether there was a contact match or not, we want to pass in different
+            // CallerInfo (for CNAP). Therefore if ci.contactExists then use the ci passed in.
+            // Otherwise, regenerate the CIT from the Connection and use the CallerInfo from there.
+            if (ci.contactExists) {
+                updateDisplayForPerson(ci, PhoneConstants.PRESENTATION_ALLOWED, false, call, conn);
+            } else {
+                updateDisplayForPerson(cit.currentInfo, presentation, false, call, conn);
+            }
+            updatePhotoForCallState(call);
+
+        } else if (cookie instanceof TextView){
+            if (DBG) log("callerinfo query complete, updating ui from ongoing or onhold");
+            ((TextView) cookie).setText(PhoneUtils.getCompactNameFromCallerInfo(ci, mContext));
+        }
+    }
+
+    /**
+     * Implemented for ContactsAsyncHelper.OnImageLoadCompleteListener interface.
+     * make sure that the call state is reflected after the image is loaded.
+     */
+    @Override
+    public void onImageLoadComplete(int token, Drawable photo, Bitmap photoIcon, Object cookie) {
+        mHandler.removeMessages(MESSAGE_SHOW_UNKNOWN_PHOTO);
+        if (mLoadingPersonUri != null) {
+            // Start sending view notification after the current request being done.
+            // New image may possibly be available from the next phone calls.
+            //
+            // TODO: may be nice to update the image view again once the newer one
+            // is available on contacts database.
+            PhoneUtils.sendViewNotificationAsync(mApplication, mLoadingPersonUri);
+        } else {
+            // This should not happen while we need some verbose info if it happens..
+            Log.w(LOG_TAG, "Person Uri isn't available while Image is successfully loaded.");
+        }
+        mLoadingPersonUri = null;
+
+        AsyncLoadCookie asyncLoadCookie = (AsyncLoadCookie) cookie;
+        CallerInfo callerInfo = asyncLoadCookie.callerInfo;
+        ImageView imageView = asyncLoadCookie.imageView;
+        Call call = asyncLoadCookie.call;
+
+        callerInfo.cachedPhoto = photo;
+        callerInfo.cachedPhotoIcon = photoIcon;
+        callerInfo.isCachedPhotoCurrent = true;
+
+        // Note: previously ContactsAsyncHelper has done this job.
+        // TODO: We will need fade-in animation. See issue 5236130.
+        if (photo != null) {
+            showImage(imageView, photo);
+        } else if (photoIcon != null) {
+            showImage(imageView, photoIcon);
+        } else {
+            showImage(imageView, R.drawable.picture_unknown);
+        }
+
+        if (token == TOKEN_UPDATE_PHOTO_FOR_CALL_STATE) {
+            updatePhotoForCallState(call);
+        }
+    }
+
+    /**
+     * Updates the "call state label" and the elapsed time widget based on the
+     * current state of the call.
+     */
+    private void updateCallStateWidgets(Call call) {
+        if (DBG) log("updateCallStateWidgets(call " + call + ")...");
+        final Call.State state = call.getState();
+        final Context context = getContext();
+        final Phone phone = call.getPhone();
+        final int phoneType = phone.getPhoneType();
+
+        String callStateLabel = null;  // Label to display as part of the call banner
+        int bluetoothIconId = 0;  // Icon to display alongside the call state label
+
+        switch (state) {
+            case IDLE:
+                // "Call state" is meaningless in this state.
+                break;
+
+            case ACTIVE:
+                // We normally don't show a "call state label" at all in
+                // this state (but see below for some special cases).
+                break;
+
+            case HOLDING:
+                callStateLabel = context.getString(R.string.card_title_on_hold);
+                break;
+
+            case DIALING:
+            case ALERTING:
+                callStateLabel = context.getString(R.string.card_title_dialing);
+                break;
+
+            case INCOMING:
+            case WAITING:
+                callStateLabel = context.getString(R.string.card_title_incoming_call);
+
+                // Also, display a special icon (alongside the "Incoming call"
+                // label) if there's an incoming call and audio will be routed
+                // to bluetooth when you answer it.
+                if (mApplication.showBluetoothIndication()) {
+                    bluetoothIconId = R.drawable.ic_incoming_call_bluetooth;
+                }
+                break;
+
+            case DISCONNECTING:
+                // While in the DISCONNECTING state we display a "Hanging up"
+                // message in order to make the UI feel more responsive.  (In
+                // GSM it's normal to see a delay of a couple of seconds while
+                // negotiating the disconnect with the network, so the "Hanging
+                // up" state at least lets the user know that we're doing
+                // something.  This state is currently not used with CDMA.)
+                callStateLabel = context.getString(R.string.card_title_hanging_up);
+                break;
+
+            case DISCONNECTED:
+                callStateLabel = getCallFailedString(call);
+                break;
+
+            default:
+                Log.wtf(LOG_TAG, "updateCallStateWidgets: unexpected call state: " + state);
+                break;
+        }
+
+        // Check a couple of other special cases (these are all CDMA-specific).
+
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            if ((state == Call.State.ACTIVE)
+                && mApplication.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing()) {
+                // Display "Dialing" while dialing a 3Way call, even
+                // though the foreground call state is actually ACTIVE.
+                callStateLabel = context.getString(R.string.card_title_dialing);
+            } else if (PhoneGlobals.getInstance().notifier.getIsCdmaRedialCall()) {
+                callStateLabel = context.getString(R.string.card_title_redialing);
+            }
+        }
+        if (PhoneUtils.isPhoneInEcm(phone)) {
+            // In emergency callback mode (ECM), use a special label
+            // that shows your own phone number.
+            callStateLabel = getECMCardTitle(context, phone);
+        }
+
+        final InCallUiState inCallUiState = mApplication.inCallUiState;
+        if (DBG) {
+            log("==> callStateLabel: '" + callStateLabel
+                    + "', bluetoothIconId = " + bluetoothIconId
+                    + ", providerInfoVisible = " + inCallUiState.providerInfoVisible);
+        }
+
+        // Animation will be done by mCallerDetail's LayoutTransition, but in some cases, we don't
+        // want that.
+        // - DIALING: This is at the beginning of the phone call.
+        // - DISCONNECTING, DISCONNECTED: Screen will disappear soon; we have no time for animation.
+        final boolean skipAnimation = (state == Call.State.DIALING
+                || state == Call.State.DISCONNECTING
+                || state == Call.State.DISCONNECTED);
+        LayoutTransition layoutTransition = null;
+        if (skipAnimation) {
+            // Evict LayoutTransition object to skip animation.
+            layoutTransition = mSecondaryInfoContainer.getLayoutTransition();
+            mSecondaryInfoContainer.setLayoutTransition(null);
+        }
+
+        if (inCallUiState.providerInfoVisible) {
+            mProviderInfo.setVisibility(View.VISIBLE);
+            mProviderLabel.setText(context.getString(R.string.calling_via_template,
+                    inCallUiState.providerLabel));
+            mProviderAddress.setText(inCallUiState.providerAddress);
+
+            mInCallScreen.requestRemoveProviderInfoWithDelay();
+        } else {
+            mProviderInfo.setVisibility(View.GONE);
+        }
+
+        if (!TextUtils.isEmpty(callStateLabel)) {
+            mCallStateLabel.setVisibility(View.VISIBLE);
+            mCallStateLabel.setText(callStateLabel);
+
+            // ...and display the icon too if necessary.
+            if (bluetoothIconId != 0) {
+                mCallStateLabel.setCompoundDrawablesWithIntrinsicBounds(bluetoothIconId, 0, 0, 0);
+                mCallStateLabel.setCompoundDrawablePadding((int) (mDensity * 5));
+            } else {
+                // Clear out any icons
+                mCallStateLabel.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
+            }
+        } else {
+            mCallStateLabel.setVisibility(View.GONE);
+            // Gravity is aligned left when receiving an incoming call in landscape.
+            // In that rare case, the gravity needs to be reset to the right.
+            // Also, setText("") is used since there is a delay in making the view GONE,
+            // so the user will otherwise see the text jump to the right side before disappearing.
+            if(mCallStateLabel.getGravity() != Gravity.END) {
+                mCallStateLabel.setText("");
+                mCallStateLabel.setGravity(Gravity.END);
+            }
+        }
+        if (skipAnimation) {
+            // Restore LayoutTransition object to recover animation.
+            mSecondaryInfoContainer.setLayoutTransition(layoutTransition);
+        }
+
+        // ...and update the elapsed time widget too.
+        switch (state) {
+            case ACTIVE:
+            case DISCONNECTING:
+                // Show the time with fade-in animation.
+                AnimationUtils.Fade.show(mElapsedTime);
+                updateElapsedTimeWidget(call);
+                break;
+
+            case DISCONNECTED:
+                // In the "Call ended" state, leave the mElapsedTime widget
+                // visible, but don't touch it (so we continue to see the
+                // elapsed time of the call that just ended.)
+                // Check visibility to keep possible fade-in animation.
+                if (mElapsedTime.getVisibility() != View.VISIBLE) {
+                    mElapsedTime.setVisibility(View.VISIBLE);
+                }
+                break;
+
+            default:
+                // Call state here is IDLE, ACTIVE, HOLDING, DIALING, ALERTING,
+                // INCOMING, or WAITING.
+                // In all of these states, the "elapsed time" is meaningless, so
+                // don't show it.
+                AnimationUtils.Fade.hide(mElapsedTime, View.INVISIBLE);
+
+                // Additionally, in call states that can only occur at the start
+                // of a call, reset the elapsed time to be sure we won't display
+                // stale info later (like if we somehow go straight from DIALING
+                // or ALERTING to DISCONNECTED, which can actually happen in
+                // some failure cases like "line busy").
+                if ((state ==  Call.State.DIALING) || (state == Call.State.ALERTING)) {
+                    updateElapsedTimeWidget(0);
+                }
+
+                break;
+        }
+    }
+
+    /**
+     * Updates mElapsedTime based on the given {@link Call} object's information.
+     *
+     * @see CallTime#getCallDuration(Call)
+     * @see Connection#getDurationMillis()
+     */
+    /* package */ void updateElapsedTimeWidget(Call call) {
+        long duration = CallTime.getCallDuration(call);  // msec
+        updateElapsedTimeWidget(duration / 1000);
+        // Also see onTickForCallTimeElapsed(), which updates this
+        // widget once per second while the call is active.
+    }
+
+    /**
+     * Updates mElapsedTime based on the specified number of seconds.
+     */
+    private void updateElapsedTimeWidget(long timeElapsed) {
+        // if (DBG) log("updateElapsedTimeWidget: " + timeElapsed);
+        mElapsedTime.setText(DateUtils.formatElapsedTime(timeElapsed));
+    }
+
+    /**
+     * Updates the "on hold" box in the "other call" info area
+     * (ie. the stuff in the secondaryCallInfo block)
+     * based on the specified Call.
+     * Or, clear out the "on hold" box if the specified call
+     * is null or idle.
+     */
+    private void displaySecondaryCallStatus(CallManager cm, Call call) {
+        if (DBG) log("displayOnHoldCallStatus(call =" + call + ")...");
+
+        if ((call == null) || (PhoneGlobals.getInstance().isOtaCallInActiveState())) {
+            mSecondaryCallInfo.setVisibility(View.GONE);
+            return;
+        }
+
+        Call.State state = call.getState();
+        switch (state) {
+            case HOLDING:
+                // Ok, there actually is a background call on hold.
+                // Display the "on hold" box.
+
+                // Note this case occurs only on GSM devices.  (On CDMA,
+                // the "call on hold" is actually the 2nd connection of
+                // that ACTIVE call; see the ACTIVE case below.)
+                showSecondaryCallInfo();
+
+                if (PhoneUtils.isConferenceCall(call)) {
+                    if (DBG) log("==> conference call.");
+                    mSecondaryCallName.setText(getContext().getString(R.string.confCall));
+                    showImage(mSecondaryCallPhoto, R.drawable.picture_conference);
+                } else {
+                    // perform query and update the name temporarily
+                    // make sure we hand the textview we want updated to the
+                    // callback function.
+                    if (DBG) log("==> NOT a conf call; call startGetCallerInfo...");
+                    PhoneUtils.CallerInfoToken infoToken = PhoneUtils.startGetCallerInfo(
+                            getContext(), call, this, mSecondaryCallName);
+                    mSecondaryCallName.setText(
+                            PhoneUtils.getCompactNameFromCallerInfo(infoToken.currentInfo,
+                                                                    getContext()));
+
+                    // Also pull the photo out of the current CallerInfo.
+                    // (Note we assume we already have a valid photo at
+                    // this point, since *presumably* the caller-id query
+                    // was already run at some point *before* this call
+                    // got put on hold.  If there's no cached photo, just
+                    // fall back to the default "unknown" image.)
+                    if (infoToken.isFinal) {
+                        showCachedImage(mSecondaryCallPhoto, infoToken.currentInfo);
+                    } else {
+                        showImage(mSecondaryCallPhoto, R.drawable.picture_unknown);
+                    }
+                }
+
+                AnimationUtils.Fade.show(mSecondaryCallPhotoDimEffect);
+                break;
+
+            case ACTIVE:
+                // CDMA: This is because in CDMA when the user originates the second call,
+                // although the Foreground call state is still ACTIVE in reality the network
+                // put the first call on hold.
+                if (mApplication.phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                    showSecondaryCallInfo();
+
+                    List<Connection> connections = call.getConnections();
+                    if (connections.size() > 2) {
+                        // This means that current Mobile Originated call is the not the first 3-Way
+                        // call the user is making, which in turn tells the PhoneGlobals that we no
+                        // longer know which previous caller/party had dropped out before the user
+                        // made this call.
+                        mSecondaryCallName.setText(
+                                getContext().getString(R.string.card_title_in_call));
+                        showImage(mSecondaryCallPhoto, R.drawable.picture_unknown);
+                    } else {
+                        // This means that the current Mobile Originated call IS the first 3-Way
+                        // and hence we display the first callers/party's info here.
+                        Connection conn = call.getEarliestConnection();
+                        PhoneUtils.CallerInfoToken infoToken = PhoneUtils.startGetCallerInfo(
+                                getContext(), conn, this, mSecondaryCallName);
+
+                        // Get the compactName to be displayed, but then check that against
+                        // the number presentation value for the call. If it's not an allowed
+                        // presentation, then display the appropriate presentation string instead.
+                        CallerInfo info = infoToken.currentInfo;
+
+                        String name = PhoneUtils.getCompactNameFromCallerInfo(info, getContext());
+                        boolean forceGenericPhoto = false;
+                        if (info != null && info.numberPresentation !=
+                                PhoneConstants.PRESENTATION_ALLOWED) {
+                            name = PhoneUtils.getPresentationString(
+                                    getContext(), info.numberPresentation);
+                            forceGenericPhoto = true;
+                        }
+                        mSecondaryCallName.setText(name);
+
+                        // Also pull the photo out of the current CallerInfo.
+                        // (Note we assume we already have a valid photo at
+                        // this point, since *presumably* the caller-id query
+                        // was already run at some point *before* this call
+                        // got put on hold.  If there's no cached photo, just
+                        // fall back to the default "unknown" image.)
+                        if (!forceGenericPhoto && infoToken.isFinal) {
+                            showCachedImage(mSecondaryCallPhoto, info);
+                        } else {
+                            showImage(mSecondaryCallPhoto, R.drawable.picture_unknown);
+                        }
+                    }
+                } else {
+                    // We shouldn't ever get here at all for non-CDMA devices.
+                    Log.w(LOG_TAG, "displayOnHoldCallStatus: ACTIVE state on non-CDMA device");
+                    mSecondaryCallInfo.setVisibility(View.GONE);
+                }
+
+                AnimationUtils.Fade.hide(mSecondaryCallPhotoDimEffect, View.GONE);
+                break;
+
+            default:
+                // There's actually no call on hold.  (Presumably this call's
+                // state is IDLE, since any other state is meaningless for the
+                // background call.)
+                mSecondaryCallInfo.setVisibility(View.GONE);
+                break;
+        }
+    }
+
+    private void showSecondaryCallInfo() {
+        // This will call ViewStub#inflate() when needed.
+        mSecondaryCallInfo.setVisibility(View.VISIBLE);
+        if (mSecondaryCallName == null) {
+            mSecondaryCallName = (TextView) findViewById(R.id.secondaryCallName);
+        }
+        if (mSecondaryCallPhoto == null) {
+            mSecondaryCallPhoto = (ImageView) findViewById(R.id.secondaryCallPhoto);
+        }
+        if (mSecondaryCallPhotoDimEffect == null) {
+            mSecondaryCallPhotoDimEffect = findViewById(R.id.dim_effect_for_secondary_photo);
+            mSecondaryCallPhotoDimEffect.setOnClickListener(mInCallScreen);
+            // Add a custom OnTouchListener to manually shrink the "hit target".
+            mSecondaryCallPhotoDimEffect.setOnTouchListener(new SmallerHitTargetTouchListener());
+        }
+        mInCallScreen.updateButtonStateOutsideInCallTouchUi();
+    }
+
+    /**
+     * Method which is expected to be called from
+     * {@link InCallScreen#updateButtonStateOutsideInCallTouchUi()}.
+     */
+    /* package */ void setSecondaryCallClickable(boolean clickable) {
+        if (mSecondaryCallPhotoDimEffect != null) {
+            mSecondaryCallPhotoDimEffect.setEnabled(clickable);
+        }
+    }
+
+    private String getCallFailedString(Call call) {
+        Connection c = call.getEarliestConnection();
+        int resID;
+
+        if (c == null) {
+            if (DBG) log("getCallFailedString: connection is null, using default values.");
+            // if this connection is null, just assume that the
+            // default case occurs.
+            resID = R.string.card_title_call_ended;
+        } else {
+
+            Connection.DisconnectCause cause = c.getDisconnectCause();
+
+            // TODO: The card *title* should probably be "Call ended" in all
+            // cases, but if the DisconnectCause was an error condition we should
+            // probably also display the specific failure reason somewhere...
+
+            switch (cause) {
+                case BUSY:
+                    resID = R.string.callFailed_userBusy;
+                    break;
+
+                case CONGESTION:
+                    resID = R.string.callFailed_congestion;
+                    break;
+
+                case TIMED_OUT:
+                    resID = R.string.callFailed_timedOut;
+                    break;
+
+                case SERVER_UNREACHABLE:
+                    resID = R.string.callFailed_server_unreachable;
+                    break;
+
+                case NUMBER_UNREACHABLE:
+                    resID = R.string.callFailed_number_unreachable;
+                    break;
+
+                case INVALID_CREDENTIALS:
+                    resID = R.string.callFailed_invalid_credentials;
+                    break;
+
+                case SERVER_ERROR:
+                    resID = R.string.callFailed_server_error;
+                    break;
+
+                case OUT_OF_NETWORK:
+                    resID = R.string.callFailed_out_of_network;
+                    break;
+
+                case LOST_SIGNAL:
+                case CDMA_DROP:
+                    resID = R.string.callFailed_noSignal;
+                    break;
+
+                case LIMIT_EXCEEDED:
+                    resID = R.string.callFailed_limitExceeded;
+                    break;
+
+                case POWER_OFF:
+                    resID = R.string.callFailed_powerOff;
+                    break;
+
+                case ICC_ERROR:
+                    resID = R.string.callFailed_simError;
+                    break;
+
+                case OUT_OF_SERVICE:
+                    resID = R.string.callFailed_outOfService;
+                    break;
+
+                case INVALID_NUMBER:
+                case UNOBTAINABLE_NUMBER:
+                    resID = R.string.callFailed_unobtainable_number;
+                    break;
+
+                default:
+                    resID = R.string.card_title_call_ended;
+                    break;
+            }
+        }
+        return getContext().getString(resID);
+    }
+
+    /**
+     * Updates the name / photo / number / label fields on the CallCard
+     * based on the specified CallerInfo.
+     *
+     * If the current call is a conference call, use
+     * updateDisplayForConference() instead.
+     */
+    private void updateDisplayForPerson(CallerInfo info,
+                                        int presentation,
+                                        boolean isTemporary,
+                                        Call call,
+                                        Connection conn) {
+        if (DBG) log("updateDisplayForPerson(" + info + ")\npresentation:" +
+                     presentation + " isTemporary:" + isTemporary);
+
+        // inform the state machine that we are displaying a photo.
+        mPhotoTracker.setPhotoRequest(info);
+        mPhotoTracker.setPhotoState(ContactsAsyncHelper.ImageTracker.DISPLAY_IMAGE);
+
+        // The actual strings we're going to display onscreen:
+        String displayName;
+        String displayNumber = null;
+        String label = null;
+        Uri personUri = null;
+        // String socialStatusText = null;
+        // Drawable socialStatusBadge = null;
+
+        // Gather missing info unless the call is generic, in which case we wouldn't use
+        // the gathered information anyway.
+        if (info != null && !call.isGeneric()) {
+
+            // It appears that there is a small change in behaviour with the
+            // PhoneUtils' startGetCallerInfo whereby if we query with an
+            // empty number, we will get a valid CallerInfo object, but with
+            // fields that are all null, and the isTemporary boolean input
+            // parameter as true.
+
+            // In the past, we would see a NULL callerinfo object, but this
+            // ends up causing null pointer exceptions elsewhere down the
+            // line in other cases, so we need to make this fix instead. It
+            // appears that this was the ONLY call to PhoneUtils
+            // .getCallerInfo() that relied on a NULL CallerInfo to indicate
+            // an unknown contact.
+
+            // Currently, infi.phoneNumber may actually be a SIP address, and
+            // if so, it might sometimes include the "sip:" prefix.  That
+            // prefix isn't really useful to the user, though, so strip it off
+            // if present.  (For any other URI scheme, though, leave the
+            // prefix alone.)
+            // TODO: It would be cleaner for CallerInfo to explicitly support
+            // SIP addresses instead of overloading the "phoneNumber" field.
+            // Then we could remove this hack, and instead ask the CallerInfo
+            // for a "user visible" form of the SIP address.
+            String number = info.phoneNumber;
+            if ((number != null) && number.startsWith("sip:")) {
+                number = number.substring(4);
+            }
+
+            if (TextUtils.isEmpty(info.name)) {
+                // No valid "name" in the CallerInfo, so fall back to
+                // something else.
+                // (Typically, we promote the phone number up to the "name" slot
+                // onscreen, and possibly display a descriptive string in the
+                // "number" slot.)
+                if (TextUtils.isEmpty(number)) {
+                    // No name *or* number!  Display a generic "unknown" string
+                    // (or potentially some other default based on the presentation.)
+                    displayName = PhoneUtils.getPresentationString(getContext(), presentation);
+                    if (DBG) log("  ==> no name *or* number! displayName = " + displayName);
+                } else if (presentation != PhoneConstants.PRESENTATION_ALLOWED) {
+                    // This case should never happen since the network should never send a phone #
+                    // AND a restricted presentation. However we leave it here in case of weird
+                    // network behavior
+                    displayName = PhoneUtils.getPresentationString(getContext(), presentation);
+                    if (DBG) log("  ==> presentation not allowed! displayName = " + displayName);
+                } else if (!TextUtils.isEmpty(info.cnapName)) {
+                    // No name, but we do have a valid CNAP name, so use that.
+                    displayName = info.cnapName;
+                    info.name = info.cnapName;
+                    displayNumber = number;
+                    if (DBG) log("  ==> cnapName available: displayName '"
+                                 + displayName + "', displayNumber '" + displayNumber + "'");
+                } else {
+                    // No name; all we have is a number.  This is the typical
+                    // case when an incoming call doesn't match any contact,
+                    // or if you manually dial an outgoing number using the
+                    // dialpad.
+
+                    // Promote the phone number up to the "name" slot:
+                    displayName = number;
+
+                    // ...and use the "number" slot for a geographical description
+                    // string if available (but only for incoming calls.)
+                    if ((conn != null) && (conn.isIncoming())) {
+                        // TODO (CallerInfoAsyncQuery cleanup): Fix the CallerInfo
+                        // query to only do the geoDescription lookup in the first
+                        // place for incoming calls.
+                        displayNumber = info.geoDescription;  // may be null
+                    }
+
+                    if (DBG) log("  ==>  no name; falling back to number: displayName '"
+                                 + displayName + "', displayNumber '" + displayNumber + "'");
+                }
+            } else {
+                // We do have a valid "name" in the CallerInfo.  Display that
+                // in the "name" slot, and the phone number in the "number" slot.
+                if (presentation != PhoneConstants.PRESENTATION_ALLOWED) {
+                    // This case should never happen since the network should never send a name
+                    // AND a restricted presentation. However we leave it here in case of weird
+                    // network behavior
+                    displayName = PhoneUtils.getPresentationString(getContext(), presentation);
+                    if (DBG) log("  ==> valid name, but presentation not allowed!"
+                                 + " displayName = " + displayName);
+                } else {
+                    displayName = info.name;
+                    displayNumber = number;
+                    label = info.phoneLabel;
+                    if (DBG) log("  ==>  name is present in CallerInfo: displayName '"
+                                 + displayName + "', displayNumber '" + displayNumber + "'");
+                }
+            }
+            personUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, info.person_id);
+            if (DBG) log("- got personUri: '" + personUri
+                         + "', based on info.person_id: " + info.person_id);
+        } else {
+            displayName = PhoneUtils.getPresentationString(getContext(), presentation);
+        }
+
+        if (call.isGeneric()) {
+            updateGenericInfoUi();
+        } else {
+            updateInfoUi(displayName, displayNumber, label);
+        }
+
+        // Update mPhoto
+        // if the temporary flag is set, we know we'll be getting another call after
+        // the CallerInfo has been correctly updated.  So, we can skip the image
+        // loading until then.
+
+        // If the photoResource is filled in for the CallerInfo, (like with the
+        // Emergency Number case), then we can just set the photo image without
+        // requesting for an image load. Please refer to CallerInfoAsyncQuery.java
+        // for cases where CallerInfo.photoResource may be set.  We can also avoid
+        // the image load step if the image data is cached.
+        if (isTemporary && (info == null || !info.isCachedPhotoCurrent)) {
+            mPhoto.setTag(null);
+            mPhoto.setVisibility(View.INVISIBLE);
+        } else if (info != null && info.photoResource != 0){
+            showImage(mPhoto, info.photoResource);
+        } else if (!showCachedImage(mPhoto, info)) {
+            if (personUri == null) {
+                Log.w(LOG_TAG, "personPri is null. Just use Unknown picture.");
+                showImage(mPhoto, R.drawable.picture_unknown);
+            } else if (personUri.equals(mLoadingPersonUri)) {
+                if (DBG) {
+                    log("The requested Uri (" + personUri + ") is being loaded already."
+                            + " Ignoret the duplicate load request.");
+                }
+            } else {
+                // Remember which person's photo is being loaded right now so that we won't issue
+                // unnecessary load request multiple times, which will mess up animation around
+                // the contact photo.
+                mLoadingPersonUri = personUri;
+
+                // Forget the drawable previously used.
+                mPhoto.setTag(null);
+                // Show empty screen for a moment.
+                mPhoto.setVisibility(View.INVISIBLE);
+                // Load the image with a callback to update the image state.
+                // When the load is finished, onImageLoadComplete() will be called.
+                ContactsAsyncHelper.startObtainPhotoAsync(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE,
+                        getContext(), personUri, this, new AsyncLoadCookie(mPhoto, info, call));
+
+                // If the image load is too slow, we show a default avatar icon afterward.
+                // If it is fast enough, this message will be canceled on onImageLoadComplete().
+                mHandler.removeMessages(MESSAGE_SHOW_UNKNOWN_PHOTO);
+                mHandler.sendEmptyMessageDelayed(MESSAGE_SHOW_UNKNOWN_PHOTO, MESSAGE_DELAY);
+            }
+        }
+
+        // If the phone call is on hold, show it with darker status.
+        // Right now we achieve it by overlaying opaque View.
+        // Note: See also layout file about why so and what is the other possibilities.
+        if (call.getState() == Call.State.HOLDING) {
+            AnimationUtils.Fade.show(mPhotoDimEffect);
+        } else {
+            AnimationUtils.Fade.hide(mPhotoDimEffect, View.GONE);
+        }
+
+        // Other text fields:
+        updateCallTypeLabel(call);
+        // updateSocialStatus(socialStatusText, socialStatusBadge, call);  // Currently unused
+    }
+
+    /**
+     * Updates the info portion of the UI to be generic.  Used for CDMA 3-way calls.
+     */
+    private void updateGenericInfoUi() {
+        mName.setText(R.string.card_title_in_call);
+        mPhoneNumber.setVisibility(View.GONE);
+        mLabel.setVisibility(View.GONE);
+    }
+
+    /**
+     * Updates the info portion of the call card with passed in values.
+     */
+    private void updateInfoUi(String displayName, String displayNumber, String label) {
+        mName.setText(displayName);
+        mName.setVisibility(View.VISIBLE);
+
+        if (TextUtils.isEmpty(displayNumber)) {
+            mPhoneNumber.setVisibility(View.GONE);
+            // We have a real phone number as "mName" so make it always LTR
+            mName.setTextDirection(View.TEXT_DIRECTION_LTR);
+        } else {
+            mPhoneNumber.setText(displayNumber);
+            mPhoneNumber.setVisibility(View.VISIBLE);
+            // We have a real phone number as "mPhoneNumber" so make it always LTR
+            mPhoneNumber.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
+
+        if (TextUtils.isEmpty(label)) {
+            mLabel.setVisibility(View.GONE);
+        } else {
+            mLabel.setText(label);
+            mLabel.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * Updates the name / photo / number / label fields
+     * for the special "conference call" state.
+     *
+     * If the current call has only a single connection, use
+     * updateDisplayForPerson() instead.
+     */
+    private void updateDisplayForConference(Call call) {
+        if (DBG) log("updateDisplayForConference()...");
+
+        int phoneType = call.getPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            // This state corresponds to both 3-Way merged call and
+            // Call Waiting accepted call.
+            // In this case we display the UI in a "generic" state, with
+            // the generic "dialing" icon and no caller information,
+            // because in this state in CDMA the user does not really know
+            // which caller party he is talking to.
+            showImage(mPhoto, R.drawable.picture_dialing);
+            mName.setText(R.string.card_title_in_call);
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            // Normal GSM (or possibly SIP?) conference call.
+            // Display the "conference call" image as the contact photo.
+            // TODO: Better visual treatment for contact photos in a
+            // conference call (see bug 1313252).
+            showImage(mPhoto, R.drawable.picture_conference);
+            mName.setText(R.string.card_title_conf_call);
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+
+        mName.setVisibility(View.VISIBLE);
+
+        // TODO: For a conference call, the "phone number" slot is specced
+        // to contain a summary of who's on the call, like "Bill Foldes
+        // and Hazel Nutt" or "Bill Foldes and 2 others".
+        // But for now, just hide it:
+        mPhoneNumber.setVisibility(View.GONE);
+        mLabel.setVisibility(View.GONE);
+
+        // Other text fields:
+        updateCallTypeLabel(call);
+        // updateSocialStatus(null, null, null);  // socialStatus is never visible in this state
+
+        // TODO: for a GSM conference call, since we do actually know who
+        // you're talking to, consider also showing names / numbers /
+        // photos of some of the people on the conference here, so you can
+        // see that info without having to click "Manage conference".  We
+        // probably have enough space to show info for 2 people, at least.
+        //
+        // To do this, our caller would pass us the activeConnections
+        // list, and we'd call PhoneUtils.getCallerInfo() separately for
+        // each connection.
+    }
+
+    /**
+     * Updates the CallCard "photo" IFF the specified Call is in a state
+     * that needs a special photo (like "busy" or "dialing".)
+     *
+     * If the current call does not require a special image in the "photo"
+     * slot onscreen, don't do anything, since presumably the photo image
+     * has already been set (to the photo of the person we're talking, or
+     * the generic "picture_unknown" image, or the "conference call"
+     * image.)
+     */
+    private void updatePhotoForCallState(Call call) {
+        if (DBG) log("updatePhotoForCallState(" + call + ")...");
+        int photoImageResource = 0;
+
+        // Check for the (relatively few) telephony states that need a
+        // special image in the "photo" slot.
+        Call.State state = call.getState();
+        switch (state) {
+            case DISCONNECTED:
+                // Display the special "busy" photo for BUSY or CONGESTION.
+                // Otherwise (presumably the normal "call ended" state)
+                // leave the photo alone.
+                Connection c = call.getEarliestConnection();
+                // if the connection is null, we assume the default case,
+                // otherwise update the image resource normally.
+                if (c != null) {
+                    Connection.DisconnectCause cause = c.getDisconnectCause();
+                    if ((cause == Connection.DisconnectCause.BUSY)
+                        || (cause == Connection.DisconnectCause.CONGESTION)) {
+                        photoImageResource = R.drawable.picture_busy;
+                    }
+                } else if (DBG) {
+                    log("updatePhotoForCallState: connection is null, ignoring.");
+                }
+
+                // TODO: add special images for any other DisconnectCauses?
+                break;
+
+            case ALERTING:
+            case DIALING:
+            default:
+                // Leave the photo alone in all other states.
+                // If this call is an individual call, and the image is currently
+                // displaying a state, (rather than a photo), we'll need to update
+                // the image.
+                // This is for the case where we've been displaying the state and
+                // now we need to restore the photo.  This can happen because we
+                // only query the CallerInfo once, and limit the number of times
+                // the image is loaded. (So a state image may overwrite the photo
+                // and we would otherwise have no way of displaying the photo when
+                // the state goes away.)
+
+                // if the photoResource field is filled-in in the Connection's
+                // caller info, then we can just use that instead of requesting
+                // for a photo load.
+
+                // look for the photoResource if it is available.
+                CallerInfo ci = null;
+                {
+                    Connection conn = null;
+                    int phoneType = call.getPhone().getPhoneType();
+                    if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                        conn = call.getLatestConnection();
+                    } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                            || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                        conn = call.getEarliestConnection();
+                    } else {
+                        throw new IllegalStateException("Unexpected phone type: " + phoneType);
+                    }
+
+                    if (conn != null) {
+                        Object o = conn.getUserData();
+                        if (o instanceof CallerInfo) {
+                            ci = (CallerInfo) o;
+                        } else if (o instanceof PhoneUtils.CallerInfoToken) {
+                            ci = ((PhoneUtils.CallerInfoToken) o).currentInfo;
+                        }
+                    }
+                }
+
+                if (ci != null) {
+                    photoImageResource = ci.photoResource;
+                }
+
+                // If no photoResource found, check to see if this is a conference call. If
+                // it is not a conference call:
+                //   1. Try to show the cached image
+                //   2. If the image is not cached, check to see if a load request has been
+                //      made already.
+                //   3. If the load request has not been made [DISPLAY_DEFAULT], start the
+                //      request and note that it has started by updating photo state with
+                //      [DISPLAY_IMAGE].
+                if (photoImageResource == 0) {
+                    if (!PhoneUtils.isConferenceCall(call)) {
+                        if (!showCachedImage(mPhoto, ci) && (mPhotoTracker.getPhotoState() ==
+                                ContactsAsyncHelper.ImageTracker.DISPLAY_DEFAULT)) {
+                            Uri photoUri = mPhotoTracker.getPhotoUri();
+                            if (photoUri == null) {
+                                Log.w(LOG_TAG, "photoUri became null. Show default avatar icon");
+                                showImage(mPhoto, R.drawable.picture_unknown);
+                            } else {
+                                if (DBG) {
+                                    log("start asynchronous load inside updatePhotoForCallState()");
+                                }
+                                mPhoto.setTag(null);
+                                // Make it invisible for a moment
+                                mPhoto.setVisibility(View.INVISIBLE);
+                                ContactsAsyncHelper.startObtainPhotoAsync(TOKEN_DO_NOTHING,
+                                        getContext(), photoUri, this,
+                                        new AsyncLoadCookie(mPhoto, ci, null));
+                            }
+                            mPhotoTracker.setPhotoState(
+                                    ContactsAsyncHelper.ImageTracker.DISPLAY_IMAGE);
+                        }
+                    }
+                } else {
+                    showImage(mPhoto, photoImageResource);
+                    mPhotoTracker.setPhotoState(ContactsAsyncHelper.ImageTracker.DISPLAY_IMAGE);
+                    return;
+                }
+                break;
+        }
+
+        if (photoImageResource != 0) {
+            if (DBG) log("- overrriding photo image: " + photoImageResource);
+            showImage(mPhoto, photoImageResource);
+            // Track the image state.
+            mPhotoTracker.setPhotoState(ContactsAsyncHelper.ImageTracker.DISPLAY_DEFAULT);
+        }
+    }
+
+    /**
+     * Try to display the cached image from the callerinfo object.
+     *
+     *  @return true if we were able to find the image in the cache, false otherwise.
+     */
+    private static final boolean showCachedImage(ImageView view, CallerInfo ci) {
+        if ((ci != null) && ci.isCachedPhotoCurrent) {
+            if (ci.cachedPhoto != null) {
+                showImage(view, ci.cachedPhoto);
+            } else {
+                showImage(view, R.drawable.picture_unknown);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /** Helper function to display the resource in the imageview AND ensure its visibility.*/
+    private static final void showImage(ImageView view, int resource) {
+        showImage(view, view.getContext().getResources().getDrawable(resource));
+    }
+
+    private static final void showImage(ImageView view, Bitmap bitmap) {
+        showImage(view, new BitmapDrawable(view.getContext().getResources(), bitmap));
+    }
+
+    /** Helper function to display the drawable in the imageview AND ensure its visibility.*/
+    private static final void showImage(ImageView view, Drawable drawable) {
+        Resources res = view.getContext().getResources();
+        Drawable current = (Drawable) view.getTag();
+
+        if (current == null) {
+            if (DBG) log("Start fade-in animation for " + view);
+            view.setImageDrawable(drawable);
+            AnimationUtils.Fade.show(view);
+            view.setTag(drawable);
+        } else {
+            AnimationUtils.startCrossFade(view, current, drawable);
+            view.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * Returns the special card title used in emergency callback mode (ECM),
+     * which shows your own phone number.
+     */
+    private String getECMCardTitle(Context context, Phone phone) {
+        String rawNumber = phone.getLine1Number();  // may be null or empty
+        String formattedNumber;
+        if (!TextUtils.isEmpty(rawNumber)) {
+            formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
+        } else {
+            formattedNumber = context.getString(R.string.unknown);
+        }
+        String titleFormat = context.getString(R.string.card_title_my_phone_number);
+        return String.format(titleFormat, formattedNumber);
+    }
+
+    /**
+     * Updates the "Call type" label, based on the current foreground call.
+     * This is a special label and/or branding we display for certain
+     * kinds of calls.
+     *
+     * (So far, this is used only for SIP calls, which get an
+     * "Internet call" label.  TODO: But eventually, the telephony
+     * layer might allow each pluggable "provider" to specify a string
+     * and/or icon to be displayed here.)
+     */
+    private void updateCallTypeLabel(Call call) {
+        int phoneType = (call != null) ? call.getPhone().getPhoneType() :
+                PhoneConstants.PHONE_TYPE_NONE;
+        if (phoneType == PhoneConstants.PHONE_TYPE_SIP) {
+            mCallTypeLabel.setVisibility(View.VISIBLE);
+            mCallTypeLabel.setText(R.string.incall_call_type_label_sip);
+            mCallTypeLabel.setTextColor(mTextColorCallTypeSip);
+            // If desired, we could also display a "badge" next to the label, as follows:
+            //   mCallTypeLabel.setCompoundDrawablesWithIntrinsicBounds(
+            //           callTypeSpecificBadge, null, null, null);
+            //   mCallTypeLabel.setCompoundDrawablePadding((int) (mDensity * 6));
+        } else {
+            mCallTypeLabel.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * Updates the "social status" label with the specified text and
+     * (optional) badge.
+     */
+    /*private void updateSocialStatus(String socialStatusText,
+                                    Drawable socialStatusBadge,
+                                    Call call) {
+        // The socialStatus field is *only* visible while an incoming call
+        // is ringing, never in any other call state.
+        if ((socialStatusText != null)
+                && (call != null)
+                && call.isRinging()
+                && !call.isGeneric()) {
+            mSocialStatus.setVisibility(View.VISIBLE);
+            mSocialStatus.setText(socialStatusText);
+            mSocialStatus.setCompoundDrawablesWithIntrinsicBounds(
+                    socialStatusBadge, null, null, null);
+            mSocialStatus.setCompoundDrawablePadding((int) (mDensity * 6));
+        } else {
+            mSocialStatus.setVisibility(View.GONE);
+        }
+    }*/
+
+    /**
+     * Hides the top-level UI elements of the call card:  The "main
+     * call card" element representing the current active or ringing call,
+     * and also the info areas for "ongoing" or "on hold" calls in some
+     * states.
+     *
+     * This is intended to be used in special states where the normal
+     * in-call UI is totally replaced by some other UI, like OTA mode on a
+     * CDMA device.
+     *
+     * To bring back the regular CallCard UI, just re-run the normal
+     * updateState() call sequence.
+     */
+    public void hideCallCardElements() {
+        mPrimaryCallInfo.setVisibility(View.GONE);
+        mSecondaryCallInfo.setVisibility(View.GONE);
+    }
+
+    /*
+     * Updates the hint (like "Rotate to answer") that we display while
+     * the user is dragging the incoming call RotarySelector widget.
+     */
+    /* package */ void setIncomingCallWidgetHint(int hintTextResId, int hintColorResId) {
+        mIncomingCallWidgetHintTextResId = hintTextResId;
+        mIncomingCallWidgetHintColorResId = hintColorResId;
+    }
+
+    // Accessibility event support.
+    // Since none of the CallCard elements are focusable, we need to manually
+    // fill in the AccessibilityEvent here (so that the name / number / etc will
+    // get pronounced by a screen reader, for example.)
+    @Override
+    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
+            dispatchPopulateAccessibilityEvent(event, mName);
+            dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
+            return true;
+        }
+
+        dispatchPopulateAccessibilityEvent(event, mCallStateLabel);
+        dispatchPopulateAccessibilityEvent(event, mPhoto);
+        dispatchPopulateAccessibilityEvent(event, mName);
+        dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
+        dispatchPopulateAccessibilityEvent(event, mLabel);
+        // dispatchPopulateAccessibilityEvent(event, mSocialStatus);
+        if (mSecondaryCallName != null) {
+            dispatchPopulateAccessibilityEvent(event, mSecondaryCallName);
+        }
+        if (mSecondaryCallPhoto != null) {
+            dispatchPopulateAccessibilityEvent(event, mSecondaryCallPhoto);
+        }
+        return true;
+    }
+
+    private void dispatchPopulateAccessibilityEvent(AccessibilityEvent event, View view) {
+        List<CharSequence> eventText = event.getText();
+        int size = eventText.size();
+        view.dispatchPopulateAccessibilityEvent(event);
+        // if no text added write null to keep relative position
+        if (size == eventText.size()) {
+            eventText.add(null);
+        }
+    }
+
+    public void clear() {
+        // The existing phone design is to keep an instance of call card forever.  Until that
+        // design changes, this method is needed to clear (reset) the call card for the next call
+        // so old data is not shown.
+
+        // Other elements can also be cleared here.  Starting with elapsed time to fix a bug.
+        mElapsedTime.setVisibility(View.GONE);
+        mElapsedTime.setText(null);
+    }
+
+
+    // Debugging / testing code
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CallController.java b/src/com/android/phone/CallController.java
new file mode 100644
index 0000000..11340aa
--- /dev/null
+++ b/src/com/android/phone/CallController.java
@@ -0,0 +1,793 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.phone.Constants.CallStatusCode;
+import com.android.phone.InCallUiState.InCallScreenMode;
+import com.android.phone.OtaUtils.CdmaOtaScreenState;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.provider.CallLog.Calls;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.ServiceState;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+/**
+ * Phone app module in charge of "call control".
+ *
+ * This is a singleton object which acts as the interface to the telephony layer
+ * (and other parts of the Android framework) for all user-initiated telephony
+ * functionality, like making outgoing calls.
+ *
+ * This functionality includes things like:
+ *   - actually running the placeCall() method and handling errors or retries
+ *   - running the whole "emergency call in airplane mode" sequence
+ *   - running the state machine of MMI sequences
+ *   - restoring/resetting mute and speaker state when a new call starts
+ *   - updating the prox sensor wake lock state
+ *   - resolving what the voicemail: intent should mean (and making the call)
+ *
+ * The single CallController instance stays around forever; it's not tied
+ * to the lifecycle of any particular Activity (like the InCallScreen).
+ * There's also no implementation of onscreen UI here (that's all in InCallScreen).
+ *
+ * Note that this class does not handle asynchronous events from the telephony
+ * layer, like reacting to an incoming call; see CallNotifier for that.  This
+ * class purely handles actions initiated by the user, like outgoing calls.
+ */
+public class CallController extends Handler {
+    private static final String TAG = "CallController";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    // Do not check in with VDBG = true, since that may write PII to the system log.
+    private static final boolean VDBG = false;
+
+    /** The singleton CallController instance. */
+    private static CallController sInstance;
+
+    private PhoneGlobals mApp;
+    private CallManager mCM;
+    private CallLogger mCallLogger;
+
+    /** Helper object for emergency calls in some rare use cases.  Created lazily. */
+    private EmergencyCallHelper mEmergencyCallHelper;
+
+
+    //
+    // Message codes; see handleMessage().
+    //
+
+    private static final int THREEWAY_CALLERINFO_DISPLAY_DONE = 1;
+
+
+    //
+    // Misc constants.
+    //
+
+    // Amount of time the UI should display "Dialing" when initiating a CDMA
+    // 3way call.  (See comments on the THRWAY_ACTIVE case in
+    // placeCallInternal() for more info.)
+    private static final int THREEWAY_CALLERINFO_DISPLAY_TIME = 3000; // msec
+
+
+    /**
+     * Initialize the singleton CallController instance.
+     *
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     * From then on, the CallController instance is available via the
+     * PhoneApp's public "callController" field, which is why there's no
+     * getInstance() method here.
+     */
+    /* package */ static CallController init(PhoneGlobals app, CallLogger callLogger) {
+        synchronized (CallController.class) {
+            if (sInstance == null) {
+                sInstance = new CallController(app, callLogger);
+            } else {
+                Log.wtf(TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /**
+     * Private constructor (this is a singleton).
+     * @see init()
+     */
+    private CallController(PhoneGlobals app, CallLogger callLogger) {
+        if (DBG) log("CallController constructor: app = " + app);
+        mApp = app;
+        mCM = app.mCM;
+        mCallLogger = callLogger;
+    }
+
+    @Override
+    public void handleMessage(Message msg) {
+        if (VDBG) log("handleMessage: " + msg);
+        switch (msg.what) {
+
+            case THREEWAY_CALLERINFO_DISPLAY_DONE:
+                if (DBG) log("THREEWAY_CALLERINFO_DISPLAY_DONE...");
+
+                if (mApp.cdmaPhoneCallState.getCurrentCallState()
+                    == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                    // Reset the mThreeWayCallOrigStateDialing state
+                    mApp.cdmaPhoneCallState.setThreeWayCallOrigState(false);
+
+                    // Refresh the in-call UI (based on the current ongoing call)
+                    mApp.updateInCallScreen();
+                }
+                break;
+
+            default:
+                Log.wtf(TAG, "handleMessage: unexpected code: " + msg);
+                break;
+        }
+    }
+
+    //
+    // Outgoing call sequence
+    //
+
+    /**
+     * Initiate an outgoing call.
+     *
+     * Here's the most typical outgoing call sequence:
+     *
+     *  (1) OutgoingCallBroadcaster receives a CALL intent and sends the
+     *      NEW_OUTGOING_CALL broadcast
+     *
+     *  (2) The broadcast finally reaches OutgoingCallReceiver, which stashes
+     *      away a copy of the original CALL intent and launches
+     *      SipCallOptionHandler
+     *
+     *  (3) SipCallOptionHandler decides whether this is a PSTN or SIP call (and
+     *      in some cases brings up a dialog to let the user choose), and
+     *      ultimately calls CallController.placeCall() (from the
+     *      setResultAndFinish() method) with the stashed-away intent from step
+     *      (2) as the "intent" parameter.
+     *
+     *  (4) Here in CallController.placeCall() we read the phone number or SIP
+     *      address out of the intent and actually initiate the call, and
+     *      simultaneously launch the InCallScreen to display the in-call UI.
+     *
+     *  (5) We handle various errors by directing the InCallScreen to
+     *      display error messages or dialogs (via the InCallUiState
+     *      "pending call status code" flag), and in some cases we also
+     *      sometimes continue working in the background to resolve the
+     *      problem (like in the case of an emergency call while in
+     *      airplane mode).  Any time that some onscreen indication to the
+     *      user needs to change, we update the "status dialog" info in
+     *      the inCallUiState and (re)launch the InCallScreen to make sure
+     *      it's visible.
+     */
+    public void placeCall(Intent intent) {
+        log("placeCall()...  intent = " + intent);
+        if (VDBG) log("                extras = " + intent.getExtras());
+
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+
+        // TODO: Do we need to hold a wake lock while this method runs?
+        //       Or did we already acquire one somewhere earlier
+        //       in this sequence (like when we first received the CALL intent?)
+
+        if (intent == null) {
+            Log.wtf(TAG, "placeCall: called with null intent");
+            throw new IllegalArgumentException("placeCall: called with null intent");
+        }
+
+        String action = intent.getAction();
+        Uri uri = intent.getData();
+        if (uri == null) {
+            Log.wtf(TAG, "placeCall: intent had no data");
+            throw new IllegalArgumentException("placeCall: intent had no data");
+        }
+
+        String scheme = uri.getScheme();
+        String number = PhoneNumberUtils.getNumberFromIntent(intent, mApp);
+        if (VDBG) {
+            log("- action: " + action);
+            log("- uri: " + uri);
+            log("- scheme: " + scheme);
+            log("- number: " + number);
+        }
+
+        // This method should only be used with the various flavors of CALL
+        // intents.  (It doesn't make sense for any other action to trigger an
+        // outgoing call!)
+        if (!(Intent.ACTION_CALL.equals(action)
+              || Intent.ACTION_CALL_EMERGENCY.equals(action)
+              || Intent.ACTION_CALL_PRIVILEGED.equals(action))) {
+            Log.wtf(TAG, "placeCall: unexpected intent action " + action);
+            throw new IllegalArgumentException("Unexpected action: " + action);
+        }
+
+        // Check to see if this is an OTASP call (the "activation" call
+        // used to provision CDMA devices), and if so, do some
+        // OTASP-specific setup.
+        Phone phone = mApp.mCM.getDefaultPhone();
+        if (TelephonyCapabilities.supportsOtasp(phone)) {
+            checkForOtaspCall(intent);
+        }
+
+        // Clear out the "restore mute state" flag since we're
+        // initiating a brand-new call.
+        //
+        // (This call to setRestoreMuteOnInCallResume(false) informs the
+        // phone app that we're dealing with a new connection
+        // (i.e. placing an outgoing call, and NOT handling an aborted
+        // "Add Call" request), so we should let the mute state be handled
+        // by the PhoneUtils phone state change handler.)
+        mApp.setRestoreMuteOnInCallResume(false);
+
+        // If a provider is used, extract the info to build the
+        // overlay and route the call.  The overlay will be
+        // displayed when the InCallScreen becomes visible.
+        if (PhoneUtils.hasPhoneProviderExtras(intent)) {
+            inCallUiState.setProviderInfo(intent);
+        } else {
+            inCallUiState.clearProviderInfo();
+        }
+
+        CallStatusCode status = placeCallInternal(intent);
+
+        switch (status) {
+            // Call was placed successfully:
+            case SUCCESS:
+            case EXITED_ECM:
+                if (DBG) log("==> placeCall(): success from placeCallInternal(): " + status);
+
+                if (status == CallStatusCode.EXITED_ECM) {
+                    // Call succeeded, but we also need to tell the
+                    // InCallScreen to show the "Exiting ECM" warning.
+                    inCallUiState.setPendingCallStatusCode(CallStatusCode.EXITED_ECM);
+                } else {
+                    // Call succeeded.  There's no "error condition" that
+                    // needs to be displayed to the user, so clear out the
+                    // InCallUiState's "pending call status code".
+                    inCallUiState.clearPendingCallStatusCode();
+                }
+
+                // Notify the phone app that a call is beginning so it can
+                // enable the proximity sensor
+                mApp.setBeginningCall(true);
+                break;
+
+            default:
+                // Any other status code is a failure.
+                log("==> placeCall(): failure code from placeCallInternal(): " + status);
+                // Handle the various error conditions that can occur when
+                // initiating an outgoing call, typically by directing the
+                // InCallScreen to display a diagnostic message (via the
+                // "pending call status code" flag.)
+                handleOutgoingCallError(status);
+                break;
+        }
+
+        // Finally, regardless of whether we successfully initiated the
+        // outgoing call or not, force the InCallScreen to come to the
+        // foreground.
+        //
+        // (For successful calls the the user will just see the normal
+        // in-call UI.  Or if there was an error, the InCallScreen will
+        // notice the InCallUiState pending call status code flag and display an
+        // error indication instead.)
+
+        // TODO: double-check the behavior of mApp.displayCallScreen()
+        // if the InCallScreen is already visible:
+        // - make sure it forces the UI to refresh
+        // - make sure it does NOT launch a new InCallScreen on top
+        //   of the current one (i.e. the Back button should not take
+        //   you back to the previous InCallScreen)
+        // - it's probably OK to go thru a fresh pause/resume sequence
+        //   though (since that should be fast now)
+        // - if necessary, though, maybe PhoneApp.displayCallScreen()
+        //   could notice that the InCallScreen is already in the foreground,
+        //   and if so simply call updateInCallScreen() instead.
+
+        mApp.displayCallScreen();
+    }
+
+    /**
+     * Actually make a call to whomever the intent tells us to.
+     *
+     * Note that there's no need to explicitly update (or refresh) the
+     * in-call UI at any point in this method, since a fresh InCallScreen
+     * instance will be launched automatically after we return (see
+     * placeCall() above.)
+     *
+     * @param intent the CALL intent describing whom to call
+     * @return CallStatusCode.SUCCESS if we successfully initiated an
+     *    outgoing call.  If there was some kind of failure, return one of
+     *    the other CallStatusCode codes indicating what went wrong.
+     */
+    private CallStatusCode placeCallInternal(Intent intent) {
+        if (DBG) log("placeCallInternal()...  intent = " + intent);
+
+        // TODO: This method is too long.  Break it down into more
+        // manageable chunks.
+
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+        final Uri uri = intent.getData();
+        final String scheme = (uri != null) ? uri.getScheme() : null;
+        String number;
+        Phone phone = null;
+
+        // Check the current ServiceState to make sure it's OK
+        // to even try making a call.
+        CallStatusCode okToCallStatus = checkIfOkToInitiateOutgoingCall(
+                mCM.getServiceState());
+
+        // TODO: Streamline the logic here.  Currently, the code is
+        // unchanged from its original form in InCallScreen.java.  But we
+        // should fix a couple of things:
+        // - Don't call checkIfOkToInitiateOutgoingCall() more than once
+        // - Wrap the try/catch for VoiceMailNumberMissingException
+        //   around *only* the call that can throw that exception.
+
+        try {
+            number = PhoneUtils.getInitialNumber(intent);
+            if (VDBG) log("- actual number to dial: '" + number + "'");
+
+            // find the phone first
+            // TODO Need a way to determine which phone to place the call
+            // It could be determined by SIP setting, i.e. always,
+            // or by number, i.e. for international,
+            // or by user selection, i.e., dialog query,
+            // or any of combinations
+            String sipPhoneUri = intent.getStringExtra(
+                    OutgoingCallBroadcaster.EXTRA_SIP_PHONE_URI);
+            phone = PhoneUtils.pickPhoneBasedOnNumber(mCM, scheme, number, sipPhoneUri);
+            if (VDBG) log("- got Phone instance: " + phone + ", class = " + phone.getClass());
+
+            // update okToCallStatus based on new phone
+            okToCallStatus = checkIfOkToInitiateOutgoingCall(
+                    phone.getServiceState().getState());
+
+        } catch (PhoneUtils.VoiceMailNumberMissingException ex) {
+            // If the call status is NOT in an acceptable state, it
+            // may effect the way the voicemail number is being
+            // retrieved.  Mask the VoiceMailNumberMissingException
+            // with the underlying issue of the phone state.
+            if (okToCallStatus != CallStatusCode.SUCCESS) {
+                if (DBG) log("Voicemail number not reachable in current SIM card state.");
+                return okToCallStatus;
+            }
+            if (DBG) log("VoiceMailNumberMissingException from getInitialNumber()");
+            return CallStatusCode.VOICEMAIL_NUMBER_MISSING;
+        }
+
+        if (number == null) {
+            Log.w(TAG, "placeCall: couldn't get a phone number from Intent " + intent);
+            return CallStatusCode.NO_PHONE_NUMBER_SUPPLIED;
+        }
+
+
+        // Sanity-check that ACTION_CALL_EMERGENCY is used if and only if
+        // this is a call to an emergency number
+        // (This is just a sanity-check; this policy *should* really be
+        // enforced in OutgoingCallBroadcaster.onCreate(), which is the
+        // main entry point for the CALL and CALL_* intents.)
+        boolean isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(number, mApp);
+        boolean isPotentialEmergencyNumber =
+                PhoneNumberUtils.isPotentialLocalEmergencyNumber(number, mApp);
+        boolean isEmergencyIntent = Intent.ACTION_CALL_EMERGENCY.equals(intent.getAction());
+
+        if (isPotentialEmergencyNumber && !isEmergencyIntent) {
+            Log.e(TAG, "Non-CALL_EMERGENCY Intent " + intent
+                    + " attempted to call potential emergency number " + number
+                    + ".");
+            return CallStatusCode.CALL_FAILED;
+        } else if (!isPotentialEmergencyNumber && isEmergencyIntent) {
+            Log.e(TAG, "Received CALL_EMERGENCY Intent " + intent
+                    + " with non-potential-emergency number " + number
+                    + " -- failing call.");
+            return CallStatusCode.CALL_FAILED;
+        }
+
+        // If we're trying to call an emergency number, then it's OK to
+        // proceed in certain states where we'd otherwise bring up
+        // an error dialog:
+        // - If we're in EMERGENCY_ONLY mode, then (obviously) you're allowed
+        //   to dial emergency numbers.
+        // - If we're OUT_OF_SERVICE, we still attempt to make a call,
+        //   since the radio will register to any available network.
+
+        if (isEmergencyNumber
+            && ((okToCallStatus == CallStatusCode.EMERGENCY_ONLY)
+                || (okToCallStatus == CallStatusCode.OUT_OF_SERVICE))) {
+            if (DBG) log("placeCall: Emergency number detected with status = " + okToCallStatus);
+            okToCallStatus = CallStatusCode.SUCCESS;
+            if (DBG) log("==> UPDATING status to: " + okToCallStatus);
+        }
+
+        if (okToCallStatus != CallStatusCode.SUCCESS) {
+            // If this is an emergency call, launch the EmergencyCallHelperService
+            // to turn on the radio and retry the call.
+            if (isEmergencyNumber && (okToCallStatus == CallStatusCode.POWER_OFF)) {
+                Log.i(TAG, "placeCall: Trying to make emergency call while POWER_OFF!");
+
+                // If needed, lazily instantiate an EmergencyCallHelper instance.
+                synchronized (this) {
+                    if (mEmergencyCallHelper == null) {
+                        mEmergencyCallHelper = new EmergencyCallHelper(this);
+                    }
+                }
+
+                // ...and kick off the "emergency call from airplane mode" sequence.
+                mEmergencyCallHelper.startEmergencyCallFromAirplaneModeSequence(number);
+
+                // Finally, return CallStatusCode.SUCCESS right now so
+                // that the in-call UI will remain visible (in order to
+                // display the progress indication.)
+                // TODO: or maybe it would be more clear to return a whole
+                // new CallStatusCode called "TURNING_ON_RADIO" here.
+                // That way, we'd update inCallUiState.progressIndication from
+                // the handleOutgoingCallError() method, rather than here.
+                return CallStatusCode.SUCCESS;
+            } else {
+                // Otherwise, just return the (non-SUCCESS) status code
+                // back to our caller.
+                if (DBG) log("==> placeCallInternal(): non-success status: " + okToCallStatus);
+
+                // Log failed call.
+                // Note: Normally, many of these values we gather from the Connection object but
+                // since no such object is created for unconnected calls, we have to build them
+                // manually.
+                // TODO(santoscordon): Try to restructure code so that we can handle failure-
+                // condition call logging in a single place (placeCall()) that also has access to
+                // the number we attempted to dial (not placeCall()).
+                mCallLogger.logCall(null /* callerInfo */, number, 0 /* presentation */,
+                        Calls.OUTGOING_TYPE, System.currentTimeMillis(), 0 /* duration */);
+
+                return okToCallStatus;
+            }
+        }
+
+        // Ok, we can proceed with this outgoing call.
+
+        // Reset some InCallUiState flags, just in case they're still set
+        // from a prior call.
+        inCallUiState.needToShowCallLostDialog = false;
+        inCallUiState.clearProgressIndication();
+
+        // We have a valid number, so try to actually place a call:
+        // make sure we pass along the intent's URI which is a
+        // reference to the contact. We may have a provider gateway
+        // phone number to use for the outgoing call.
+        Uri contactUri = intent.getData();
+
+        // Watch out: PhoneUtils.placeCall() returns one of the
+        // CALL_STATUS_* constants, not a CallStatusCode enum value.
+        int callStatus = PhoneUtils.placeCall(mApp,
+                                              phone,
+                                              number,
+                                              contactUri,
+                                              (isEmergencyNumber || isEmergencyIntent),
+                                              inCallUiState.providerGatewayUri);
+
+        switch (callStatus) {
+            case PhoneUtils.CALL_STATUS_DIALED:
+                if (VDBG) log("placeCall: PhoneUtils.placeCall() succeeded for regular call '"
+                             + number + "'.");
+
+
+                // TODO(OTASP): still need more cleanup to simplify the mApp.cdma*State objects:
+                // - Rather than checking inCallUiState.inCallScreenMode, the
+                //   code here could also check for
+                //   app.getCdmaOtaInCallScreenUiState() returning NORMAL.
+                // - But overall, app.inCallUiState.inCallScreenMode and
+                //   app.cdmaOtaInCallScreenUiState.state are redundant.
+                //   Combine them.
+
+                if (VDBG) log ("- inCallUiState.inCallScreenMode = "
+                               + inCallUiState.inCallScreenMode);
+                if (inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL) {
+                    if (VDBG) log ("==>  OTA_NORMAL note: switching to OTA_STATUS_LISTENING.");
+                    mApp.cdmaOtaScreenState.otaScreenState =
+                            CdmaOtaScreenState.OtaScreenState.OTA_STATUS_LISTENING;
+                }
+
+                boolean voicemailUriSpecified = scheme != null && scheme.equals("voicemail");
+                // When voicemail is requested most likely the user wants to open
+                // dialpad immediately, so we show it in the first place.
+                // Otherwise we want to make sure the user can see the regular
+                // in-call UI while the new call is dialing, and when it
+                // first gets connected.)
+                inCallUiState.showDialpad = voicemailUriSpecified;
+
+                // For voicemails, we add context text to let the user know they
+                // are dialing their voicemail.
+                // TODO: This is only set here and becomes problematic when swapping calls
+                inCallUiState.dialpadContextText = voicemailUriSpecified ?
+                    phone.getVoiceMailAlphaTag() : "";
+
+                // Also, in case a previous call was already active (i.e. if
+                // we just did "Add call"), clear out the "history" of DTMF
+                // digits you typed, to make sure it doesn't persist from the
+                // previous call to the new call.
+                // TODO: it would be more precise to do this when the actual
+                // phone state change happens (i.e. when a new foreground
+                // call appears and the previous call moves to the
+                // background), but the InCallScreen doesn't keep enough
+                // state right now to notice that specific transition in
+                // onPhoneStateChanged().
+                inCallUiState.dialpadDigits = null;
+
+                // Check for an obscure ECM-related scenario: If the phone
+                // is currently in ECM (Emergency callback mode) and we
+                // dial a non-emergency number, that automatically
+                // *cancels* ECM.  So warn the user about it.
+                // (See InCallScreen.showExitingECMDialog() for more info.)
+                boolean exitedEcm = false;
+                if (PhoneUtils.isPhoneInEcm(phone) && !isEmergencyNumber) {
+                    Log.i(TAG, "About to exit ECM because of an outgoing non-emergency call");
+                    exitedEcm = true;  // this will cause us to return EXITED_ECM from this method
+                }
+
+                if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                    // Start the timer for 3 Way CallerInfo
+                    if (mApp.cdmaPhoneCallState.getCurrentCallState()
+                            == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                        //Unmute for the second MO call
+                        PhoneUtils.setMute(false);
+
+                        // This is a "CDMA 3-way call", which means that you're dialing a
+                        // 2nd outgoing call while a previous call is already in progress.
+                        //
+                        // Due to the limitations of CDMA this call doesn't actually go
+                        // through the DIALING/ALERTING states, so we can't tell for sure
+                        // when (or if) it's actually answered.  But we want to show
+                        // *some* indication of what's going on in the UI, so we "fake it"
+                        // by displaying the "Dialing" state for 3 seconds.
+
+                        // Set the mThreeWayCallOrigStateDialing state to true
+                        mApp.cdmaPhoneCallState.setThreeWayCallOrigState(true);
+
+                        // Schedule the "Dialing" indication to be taken down in 3 seconds:
+                        sendEmptyMessageDelayed(THREEWAY_CALLERINFO_DISPLAY_DONE,
+                                                THREEWAY_CALLERINFO_DISPLAY_TIME);
+                    }
+                }
+
+                // Success!
+                if (exitedEcm) {
+                    return CallStatusCode.EXITED_ECM;
+                } else {
+                    return CallStatusCode.SUCCESS;
+                }
+
+            case PhoneUtils.CALL_STATUS_DIALED_MMI:
+                if (DBG) log("placeCall: specified number was an MMI code: '" + number + "'.");
+                // The passed-in number was an MMI code, not a regular phone number!
+                // This isn't really a failure; the Dialer may have deliberately
+                // fired an ACTION_CALL intent to dial an MMI code, like for a
+                // USSD call.
+                //
+                // Presumably an MMI_INITIATE message will come in shortly
+                // (and we'll bring up the "MMI Started" dialog), or else
+                // an MMI_COMPLETE will come in (which will take us to a
+                // different Activity; see PhoneUtils.displayMMIComplete()).
+                return CallStatusCode.DIALED_MMI;
+
+            case PhoneUtils.CALL_STATUS_FAILED:
+                Log.w(TAG, "placeCall: PhoneUtils.placeCall() FAILED for number '"
+                      + number + "'.");
+                // We couldn't successfully place the call; there was some
+                // failure in the telephony layer.
+
+                // Log failed call.
+                mCallLogger.logCall(null /* callerInfo */, number, 0 /* presentation */,
+                        Calls.OUTGOING_TYPE, System.currentTimeMillis(), 0 /* duration */);
+
+                return CallStatusCode.CALL_FAILED;
+
+            default:
+                Log.wtf(TAG, "placeCall: unknown callStatus " + callStatus
+                        + " from PhoneUtils.placeCall() for number '" + number + "'.");
+                return CallStatusCode.SUCCESS;  // Try to continue anyway...
+        }
+    }
+
+    /**
+     * Checks the current ServiceState to make sure it's OK
+     * to try making an outgoing call to the specified number.
+     *
+     * @return CallStatusCode.SUCCESS if it's OK to try calling the specified
+     *    number.  If not, like if the radio is powered off or we have no
+     *    signal, return one of the other CallStatusCode codes indicating what
+     *    the problem is.
+     */
+    private CallStatusCode checkIfOkToInitiateOutgoingCall(int state) {
+        if (VDBG) log("checkIfOkToInitiateOutgoingCall: ServiceState = " + state);
+
+        switch (state) {
+            case ServiceState.STATE_IN_SERVICE:
+                // Normal operation.  It's OK to make outgoing calls.
+                return CallStatusCode.SUCCESS;
+
+            case ServiceState.STATE_POWER_OFF:
+                // Radio is explictly powered off.
+                return CallStatusCode.POWER_OFF;
+
+            case ServiceState.STATE_EMERGENCY_ONLY:
+                // The phone is registered, but locked. Only emergency
+                // numbers are allowed.
+                // Note that as of Android 2.0 at least, the telephony layer
+                // does not actually use ServiceState.STATE_EMERGENCY_ONLY,
+                // mainly since there's no guarantee that the radio/RIL can
+                // make this distinction.  So in practice the
+                // CallStatusCode.EMERGENCY_ONLY state and the string
+                // "incall_error_emergency_only" are totally unused.
+                return CallStatusCode.EMERGENCY_ONLY;
+
+            case ServiceState.STATE_OUT_OF_SERVICE:
+                // No network connection.
+                return CallStatusCode.OUT_OF_SERVICE;
+
+            default:
+                throw new IllegalStateException("Unexpected ServiceState: " + state);
+        }
+    }
+
+
+
+    /**
+     * Handles the various error conditions that can occur when initiating
+     * an outgoing call.
+     *
+     * Most error conditions are "handled" by simply displaying an error
+     * message to the user.  This is accomplished by setting the
+     * inCallUiState pending call status code flag, which tells the
+     * InCallScreen to display an appropriate message to the user when the
+     * in-call UI comes to the foreground.
+     *
+     * @param status one of the CallStatusCode error codes.
+     */
+    private void handleOutgoingCallError(CallStatusCode status) {
+        if (DBG) log("handleOutgoingCallError(): status = " + status);
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+
+        // In most cases we simply want to have the InCallScreen display
+        // an appropriate error dialog, so we simply copy the specified
+        // status code into the InCallUiState "pending call status code"
+        // field.  (See InCallScreen.showStatusIndication() for the next
+        // step of the sequence.)
+
+        switch (status) {
+            case SUCCESS:
+                // This case shouldn't happen; you're only supposed to call
+                // handleOutgoingCallError() if there was actually an error!
+                Log.wtf(TAG, "handleOutgoingCallError: SUCCESS isn't an error");
+                break;
+
+            case VOICEMAIL_NUMBER_MISSING:
+                // Bring up the "Missing Voicemail Number" dialog, which
+                // will ultimately take us to some other Activity (or else
+                // just bail out of this activity.)
+
+                // Send a request to the InCallScreen to display the
+                // "voicemail missing" dialog when it (the InCallScreen)
+                // comes to the foreground.
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.VOICEMAIL_NUMBER_MISSING);
+                break;
+
+            case POWER_OFF:
+                // Radio is explictly powered off, presumably because the
+                // device is in airplane mode.
+                //
+                // TODO: For now this UI is ultra-simple: we simply display
+                // a message telling the user to turn off airplane mode.
+                // But it might be nicer for the dialog to offer the option
+                // to turn the radio on right there (and automatically retry
+                // the call once network registration is complete.)
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.POWER_OFF);
+                break;
+
+            case EMERGENCY_ONLY:
+                // Only emergency numbers are allowed, but we tried to dial
+                // a non-emergency number.
+                // (This state is currently unused; see comments above.)
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.EMERGENCY_ONLY);
+                break;
+
+            case OUT_OF_SERVICE:
+                // No network connection.
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.OUT_OF_SERVICE);
+                break;
+
+            case NO_PHONE_NUMBER_SUPPLIED:
+                // The supplied Intent didn't contain a valid phone number.
+                // (This is rare and should only ever happen with broken
+                // 3rd-party apps.)  For now just show a generic error.
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.NO_PHONE_NUMBER_SUPPLIED);
+                break;
+
+            case DIALED_MMI:
+                // Our initial phone number was actually an MMI sequence.
+                // There's no real "error" here, but we do bring up the
+                // a Toast (as requested of the New UI paradigm).
+                //
+                // In-call MMIs do not trigger the normal MMI Initiate
+                // Notifications, so we should notify the user here.
+                // Otherwise, the code in PhoneUtils.java should handle
+                // user notifications in the form of Toasts or Dialogs.
+                //
+                // TODO: Rather than launching a toast from here, it would
+                // be cleaner to just set a pending call status code here,
+                // and then let the InCallScreen display the toast...
+                if (mCM.getState() == PhoneConstants.State.OFFHOOK) {
+                    Toast.makeText(mApp, R.string.incall_status_dialed_mmi, Toast.LENGTH_SHORT)
+                            .show();
+                }
+                break;
+
+            case CALL_FAILED:
+                // We couldn't successfully place the call; there was some
+                // failure in the telephony layer.
+                // TODO: Need UI spec for this failure case; for now just
+                // show a generic error.
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.CALL_FAILED);
+                break;
+
+            default:
+                Log.wtf(TAG, "handleOutgoingCallError: unexpected status code " + status);
+                // Show a generic "call failed" error.
+                inCallUiState.setPendingCallStatusCode(CallStatusCode.CALL_FAILED);
+                break;
+        }
+    }
+
+    /**
+     * Checks the current outgoing call to see if it's an OTASP call (the
+     * "activation" call used to provision CDMA devices).  If so, do any
+     * necessary OTASP-specific setup before actually placing the call.
+     */
+    private void checkForOtaspCall(Intent intent) {
+        if (OtaUtils.isOtaspCallIntent(intent)) {
+            Log.i(TAG, "checkForOtaspCall: handling OTASP intent! " + intent);
+
+            // ("OTASP-specific setup" basically means creating and initializing
+            // the OtaUtils instance.  Note that this setup needs to be here in
+            // the CallController.placeCall() sequence, *not* in
+            // OtaUtils.startInteractiveOtasp(), since it's also possible to
+            // start an OTASP call by manually dialing "*228" (in which case
+            // OtaUtils.startInteractiveOtasp() never gets run at all.)
+            OtaUtils.setupOtaspCall(intent);
+        } else {
+            if (DBG) log("checkForOtaspCall: not an OTASP call.");
+        }
+    }
+
+
+    //
+    // Debugging
+    //
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
new file mode 100644
index 0000000..1848e54
--- /dev/null
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -0,0 +1,2205 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteException;
+import android.media.AudioManager;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.net.sip.SipManager;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.UserHandle;
+import android.os.Vibrator;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceGroup;
+import android.preference.PreferenceManager;
+import android.preference.PreferenceScreen;
+import android.provider.ContactsContract.CommonDataKinds;
+import android.provider.MediaStore;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MenuItem;
+import android.view.WindowManager;
+import android.widget.ListAdapter;
+
+import com.android.internal.telephony.CallForwardInfo;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.cdma.TtyIntent;
+import com.android.phone.sip.SipSharedPreferences;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Top level "Call settings" UI; see res/xml/call_feature_setting.xml
+ *
+ * This preference screen is the root of the "Call settings" hierarchy
+ * available from the Phone app; the settings here let you control various
+ * features related to phone calls (including voicemail settings, SIP
+ * settings, the "Respond via SMS" feature, and others.)  It's used only
+ * on voice-capable phone devices.
+ *
+ * Note that this activity is part of the package com.android.phone, even
+ * though you reach it from the "Phone" app (i.e. DialtactsActivity) which
+ * is from the package com.android.contacts.
+ *
+ * For the "Mobile network settings" screen under the main Settings app,
+ * See {@link MobileNetworkSettings}.
+ *
+ * @see com.android.phone.MobileNetworkSettings
+ */
+public class CallFeaturesSetting extends PreferenceActivity
+        implements DialogInterface.OnClickListener,
+        Preference.OnPreferenceChangeListener,
+        EditPhoneNumberPreference.OnDialogClosedListener,
+        EditPhoneNumberPreference.GetDefaultNumberListener{
+    private static final String LOG_TAG = "CallFeaturesSetting";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    /**
+     * Intent action to bring up Voicemail Provider settings.
+     *
+     * @see #IGNORE_PROVIDER_EXTRA
+     */
+    public static final String ACTION_ADD_VOICEMAIL =
+            "com.android.phone.CallFeaturesSetting.ADD_VOICEMAIL";
+    // intent action sent by this activity to a voice mail provider
+    // to trigger its configuration UI
+    public static final String ACTION_CONFIGURE_VOICEMAIL =
+            "com.android.phone.CallFeaturesSetting.CONFIGURE_VOICEMAIL";
+    // Extra put in the return from VM provider config containing voicemail number to set
+    public static final String VM_NUMBER_EXTRA = "com.android.phone.VoicemailNumber";
+    // Extra put in the return from VM provider config containing call forwarding number to set
+    public static final String FWD_NUMBER_EXTRA = "com.android.phone.ForwardingNumber";
+    // Extra put in the return from VM provider config containing call forwarding number to set
+    public static final String FWD_NUMBER_TIME_EXTRA = "com.android.phone.ForwardingNumberTime";
+    // If the VM provider returns non null value in this extra we will force the user to
+    // choose another VM provider
+    public static final String SIGNOUT_EXTRA = "com.android.phone.Signout";
+    //Information about logical "up" Activity
+    private static final String UP_ACTIVITY_PACKAGE = "com.android.dialer";
+    private static final String UP_ACTIVITY_CLASS =
+            "com.android.dialer.DialtactsActivity";
+
+    // Used to tell the saving logic to leave forwarding number as is
+    public static final CallForwardInfo[] FWD_SETTINGS_DONT_TOUCH = null;
+    // Suffix appended to provider key for storing vm number
+    public static final String VM_NUMBER_TAG = "#VMNumber";
+    // Suffix appended to provider key for storing forwarding settings
+    public static final String FWD_SETTINGS_TAG = "#FWDSettings";
+    // Suffix appended to forward settings key for storing length of settings array
+    public static final String FWD_SETTINGS_LENGTH_TAG = "#Length";
+    // Suffix appended to forward settings key for storing an individual setting
+    public static final String FWD_SETTING_TAG = "#Setting";
+    // Suffixes appended to forward setting key for storing an individual setting properties
+    public static final String FWD_SETTING_STATUS = "#Status";
+    public static final String FWD_SETTING_REASON = "#Reason";
+    public static final String FWD_SETTING_NUMBER = "#Number";
+    public static final String FWD_SETTING_TIME = "#Time";
+
+    // Key identifying the default vocie mail provider
+    public static final String DEFAULT_VM_PROVIDER_KEY = "";
+
+    /**
+     * String Extra put into ACTION_ADD_VOICEMAIL call to indicate which provider should be hidden
+     * in the list of providers presented to the user. This allows a provider which is being
+     * disabled (e.g. GV user logging out) to force the user to pick some other provider.
+     */
+    public static final String IGNORE_PROVIDER_EXTRA = "com.android.phone.ProviderToIgnore";
+
+    // string constants
+    private static final String NUM_PROJECTION[] = {CommonDataKinds.Phone.NUMBER};
+
+    // String keys for preference lookup
+    // TODO: Naming these "BUTTON_*" is confusing since they're not actually buttons(!)
+    private static final String BUTTON_VOICEMAIL_KEY = "button_voicemail_key";
+    private static final String BUTTON_VOICEMAIL_PROVIDER_KEY = "button_voicemail_provider_key";
+    private static final String BUTTON_VOICEMAIL_SETTING_KEY = "button_voicemail_setting_key";
+    // New preference key for voicemail notification vibration
+    /* package */ static final String BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY =
+            "button_voicemail_notification_vibrate_key";
+    // Old preference key for voicemail notification vibration. Used for migration to the new
+    // preference key only.
+    /* package */ static final String BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_WHEN_KEY =
+            "button_voicemail_notification_vibrate_when_key";
+    /* package */ static final String BUTTON_VOICEMAIL_NOTIFICATION_RINGTONE_KEY =
+            "button_voicemail_notification_ringtone_key";
+    private static final String BUTTON_FDN_KEY   = "button_fdn_key";
+    private static final String BUTTON_RESPOND_VIA_SMS_KEY   = "button_respond_via_sms_key";
+
+    private static final String BUTTON_RINGTONE_KEY    = "button_ringtone_key";
+    private static final String BUTTON_VIBRATE_ON_RING = "button_vibrate_on_ring";
+    private static final String BUTTON_PLAY_DTMF_TONE  = "button_play_dtmf_tone";
+    private static final String BUTTON_DTMF_KEY        = "button_dtmf_settings";
+    private static final String BUTTON_RETRY_KEY       = "button_auto_retry_key";
+    private static final String BUTTON_TTY_KEY         = "button_tty_mode_key";
+    private static final String BUTTON_HAC_KEY         = "button_hac_key";
+    private static final String BUTTON_DIALPAD_AUTOCOMPLETE = "button_dialpad_autocomplete";
+
+    private static final String BUTTON_GSM_UMTS_OPTIONS = "button_gsm_more_expand_key";
+    private static final String BUTTON_CDMA_OPTIONS = "button_cdma_more_expand_key";
+
+    private static final String VM_NUMBERS_SHARED_PREFERENCES_NAME = "vm_numbers";
+
+    private static final String BUTTON_SIP_CALL_OPTIONS =
+            "sip_call_options_key";
+    private static final String BUTTON_SIP_CALL_OPTIONS_WIFI_ONLY =
+            "sip_call_options_wifi_only_key";
+    private static final String SIP_SETTINGS_CATEGORY_KEY =
+            "sip_settings_category_key";
+
+    private Intent mContactListIntent;
+
+    /** Event for Async voicemail change call */
+    private static final int EVENT_VOICEMAIL_CHANGED        = 500;
+    private static final int EVENT_FORWARDING_CHANGED       = 501;
+    private static final int EVENT_FORWARDING_GET_COMPLETED = 502;
+
+    private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1;
+    private static final int MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY = 2;
+
+    // preferred TTY mode
+    // Phone.TTY_MODE_xxx
+    static final int preferredTtyMode = Phone.TTY_MODE_OFF;
+
+    public static final String HAC_KEY = "HACSetting";
+    public static final String HAC_VAL_ON = "ON";
+    public static final String HAC_VAL_OFF = "OFF";
+
+    /** Handle to voicemail pref */
+    private static final int VOICEMAIL_PREF_ID = 1;
+    private static final int VOICEMAIL_PROVIDER_CFG_ID = 2;
+
+    private Phone mPhone;
+
+    private AudioManager mAudioManager;
+    private SipManager mSipManager;
+
+    private static final int VM_NOCHANGE_ERROR = 400;
+    private static final int VM_RESPONSE_ERROR = 500;
+    private static final int FW_SET_RESPONSE_ERROR = 501;
+    private static final int FW_GET_RESPONSE_ERROR = 502;
+
+
+    // dialog identifiers for voicemail
+    private static final int VOICEMAIL_DIALOG_CONFIRM = 600;
+    private static final int VOICEMAIL_FWD_SAVING_DIALOG = 601;
+    private static final int VOICEMAIL_FWD_READING_DIALOG = 602;
+    private static final int VOICEMAIL_REVERTING_DIALOG = 603;
+
+    // status message sent back from handlers
+    private static final int MSG_OK = 100;
+
+    // special statuses for voicemail controls.
+    private static final int MSG_VM_EXCEPTION = 400;
+    private static final int MSG_FW_SET_EXCEPTION = 401;
+    private static final int MSG_FW_GET_EXCEPTION = 402;
+    private static final int MSG_VM_OK = 600;
+    private static final int MSG_VM_NOCHANGE = 700;
+
+    // voicemail notification vibration string constants
+    private static final String VOICEMAIL_VIBRATION_ALWAYS = "always";
+    private static final String VOICEMAIL_VIBRATION_NEVER = "never";
+
+    private EditPhoneNumberPreference mSubMenuVoicemailSettings;
+
+    private Runnable mRingtoneLookupRunnable;
+    private final Handler mRingtoneLookupComplete = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UPDATE_RINGTONE_SUMMARY:
+                    mRingtonePreference.setSummary((CharSequence) msg.obj);
+                    break;
+                case MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY:
+                    mVoicemailNotificationRingtone.setSummary((CharSequence) msg.obj);
+                    break;
+            }
+        }
+    };
+
+    private Preference mRingtonePreference;
+    private CheckBoxPreference mVibrateWhenRinging;
+    /** Whether dialpad plays DTMF tone or not. */
+    private CheckBoxPreference mPlayDtmfTone;
+    private CheckBoxPreference mDialpadAutocomplete;
+    private CheckBoxPreference mButtonAutoRetry;
+    private CheckBoxPreference mButtonHAC;
+    private ListPreference mButtonDTMF;
+    private ListPreference mButtonTTY;
+    private ListPreference mButtonSipCallOptions;
+    private ListPreference mVoicemailProviders;
+    private PreferenceScreen mVoicemailSettings;
+    private Preference mVoicemailNotificationRingtone;
+    private CheckBoxPreference mVoicemailNotificationVibrate;
+    private SipSharedPreferences mSipSharedPreferences;
+
+    private class VoiceMailProvider {
+        public VoiceMailProvider(String name, Intent intent) {
+            this.name = name;
+            this.intent = intent;
+        }
+        public String name;
+        public Intent intent;
+    }
+
+    /**
+     * Forwarding settings we are going to save.
+     */
+    private static final int [] FORWARDING_SETTINGS_REASONS = new int[] {
+        CommandsInterface.CF_REASON_UNCONDITIONAL,
+        CommandsInterface.CF_REASON_BUSY,
+        CommandsInterface.CF_REASON_NO_REPLY,
+        CommandsInterface.CF_REASON_NOT_REACHABLE
+    };
+
+    private class VoiceMailProviderSettings {
+        /**
+         * Constructs settings object, setting all conditional forwarding to the specified number
+         */
+        public VoiceMailProviderSettings(String voicemailNumber, String forwardingNumber,
+                int timeSeconds) {
+            this.voicemailNumber = voicemailNumber;
+            if (forwardingNumber == null || forwardingNumber.length() == 0) {
+                this.forwardingSettings = FWD_SETTINGS_DONT_TOUCH;
+            } else {
+                this.forwardingSettings = new CallForwardInfo[FORWARDING_SETTINGS_REASONS.length];
+                for (int i = 0; i < this.forwardingSettings.length; i++) {
+                    CallForwardInfo fi = new CallForwardInfo();
+                    this.forwardingSettings[i] = fi;
+                    fi.reason = FORWARDING_SETTINGS_REASONS[i];
+                    fi.status = (fi.reason == CommandsInterface.CF_REASON_UNCONDITIONAL) ? 0 : 1;
+                    fi.serviceClass = CommandsInterface.SERVICE_CLASS_VOICE;
+                    fi.toa = PhoneNumberUtils.TOA_International;
+                    fi.number = forwardingNumber;
+                    fi.timeSeconds = timeSeconds;
+                }
+            }
+        }
+
+        public VoiceMailProviderSettings(String voicemailNumber, CallForwardInfo[] infos) {
+            this.voicemailNumber = voicemailNumber;
+            this.forwardingSettings = infos;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o == null) return false;
+            if (!(o instanceof VoiceMailProviderSettings)) return false;
+            final VoiceMailProviderSettings v = (VoiceMailProviderSettings)o;
+
+            return ((this.voicemailNumber == null &&
+                        v.voicemailNumber == null) ||
+                    this.voicemailNumber != null &&
+                        this.voicemailNumber.equals(v.voicemailNumber))
+                    &&
+                    forwardingSettingsEqual(this.forwardingSettings,
+                            v.forwardingSettings);
+        }
+
+        private boolean forwardingSettingsEqual(CallForwardInfo[] infos1,
+                CallForwardInfo[] infos2) {
+            if (infos1 == infos2) return true;
+            if (infos1 == null || infos2 == null) return false;
+            if (infos1.length != infos2.length) return false;
+            for (int i = 0; i < infos1.length; i++) {
+                CallForwardInfo i1 = infos1[i];
+                CallForwardInfo i2 = infos2[i];
+                if (i1.status != i2.status ||
+                    i1.reason != i2.reason ||
+                    i1.serviceClass != i2.serviceClass ||
+                    i1.toa != i2.toa ||
+                    i1.number != i2.number ||
+                    i1.timeSeconds != i2.timeSeconds) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        @Override
+        public String toString() {
+            return voicemailNumber + ((forwardingSettings != null ) ? (", " +
+                    forwardingSettings.toString()) : "");
+        }
+
+        public String voicemailNumber;
+        public CallForwardInfo[] forwardingSettings;
+    }
+
+    private SharedPreferences mPerProviderSavedVMNumbers;
+
+    /**
+     * Results of reading forwarding settings
+     */
+    private CallForwardInfo[] mForwardingReadResults = null;
+
+    /**
+     * Result of forwarding number change.
+     * Keys are reasons (eg. unconditional forwarding).
+     */
+    private Map<Integer, AsyncResult> mForwardingChangeResults = null;
+
+    /**
+     * Expected CF read result types.
+     * This set keeps track of the CF types for which we've issued change
+     * commands so we can tell when we've received all of the responses.
+     */
+    private Collection<Integer> mExpectedChangeResultReasons = null;
+
+    /**
+     * Result of vm number change
+     */
+    private AsyncResult mVoicemailChangeResult = null;
+
+    /**
+     * Previous VM provider setting so we can return to it in case of failure.
+     */
+    private String mPreviousVMProviderKey = null;
+
+    /**
+     * Id of the dialog being currently shown.
+     */
+    private int mCurrentDialogId = 0;
+
+    /**
+     * Flag indicating that we are invoking settings for the voicemail provider programmatically
+     * due to vm provider change.
+     */
+    private boolean mVMProviderSettingsForced = false;
+
+    /**
+     * Flag indicating that we are making changes to vm or fwd numbers
+     * due to vm provider change.
+     */
+    private boolean mChangingVMorFwdDueToProviderChange = false;
+
+    /**
+     * True if we are in the process of vm & fwd number change and vm has already been changed.
+     * This is used to decide what to do in case of rollback.
+     */
+    private boolean mVMChangeCompletedSuccessfully = false;
+
+    /**
+     * True if we had full or partial failure setting forwarding numbers and so need to roll them
+     * back.
+     */
+    private boolean mFwdChangesRequireRollback = false;
+
+    /**
+     * Id of error msg to display to user once we are done reverting the VM provider to the previous
+     * one.
+     */
+    private int mVMOrFwdSetError = 0;
+
+    /**
+     * Data about discovered voice mail settings providers.
+     * Is populated by querying which activities can handle ACTION_CONFIGURE_VOICEMAIL.
+     * They key in this map is package name + activity name.
+     * We always add an entry for the default provider with a key of empty
+     * string and intent value of null.
+     * @see #initVoiceMailProviders()
+     */
+    private final Map<String, VoiceMailProvider> mVMProvidersData =
+            new HashMap<String, VoiceMailProvider>();
+
+    /** string to hold old voicemail number as it is being updated. */
+    private String mOldVmNumber;
+
+    // New call forwarding settings and vm number we will be setting
+    // Need to save these since before we get to saving we need to asynchronously
+    // query the existing forwarding settings.
+    private CallForwardInfo[] mNewFwdSettings;
+    private String mNewVMNumber;
+
+    private boolean mForeground;
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mForeground = false;
+    }
+
+    /**
+     * We have to pull current settings from the network for all kinds of
+     * voicemail providers so we can tell whether we have to update them,
+     * so use this bit to keep track of whether we're reading settings for the
+     * default provider and should therefore save them out when done.
+     */
+    private boolean mReadingSettingsForDefaultProvider = false;
+
+    /*
+     * Click Listeners, handle click based on objects attached to UI.
+     */
+
+    // Click listener for all toggle events
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        if (preference == mSubMenuVoicemailSettings) {
+            return true;
+        } else if (preference == mPlayDtmfTone) {
+            Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
+                    mPlayDtmfTone.isChecked() ? 1 : 0);
+        } else if (preference == mDialpadAutocomplete) {
+            Settings.Secure.putInt(getContentResolver(), Settings.Secure.DIALPAD_AUTOCOMPLETE,
+                    mDialpadAutocomplete.isChecked() ? 1 : 0);
+        } else if (preference == mButtonDTMF) {
+            return true;
+        } else if (preference == mButtonTTY) {
+            return true;
+        } else if (preference == mButtonAutoRetry) {
+            android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                    android.provider.Settings.Global.CALL_AUTO_RETRY,
+                    mButtonAutoRetry.isChecked() ? 1 : 0);
+            return true;
+        } else if (preference == mButtonHAC) {
+            int hac = mButtonHAC.isChecked() ? 1 : 0;
+            // Update HAC value in Settings database
+            Settings.System.putInt(mPhone.getContext().getContentResolver(),
+                    Settings.System.HEARING_AID, hac);
+
+            // Update HAC Value in AudioManager
+            mAudioManager.setParameter(HAC_KEY, hac != 0 ? HAC_VAL_ON : HAC_VAL_OFF);
+            return true;
+        } else if (preference == mVoicemailSettings) {
+            if (DBG) log("onPreferenceTreeClick: Voicemail Settings Preference is clicked.");
+            if (preference.getIntent() != null) {
+                if (DBG) {
+                    log("onPreferenceTreeClick: Invoking cfg intent "
+                            + preference.getIntent().getPackage());
+                }
+
+                // onActivityResult() will be responsible for resetting some of variables.
+                this.startActivityForResult(preference.getIntent(), VOICEMAIL_PROVIDER_CFG_ID);
+                return true;
+            } else {
+                if (DBG) {
+                    log("onPreferenceTreeClick:"
+                            + " No Intent is available. Use default behavior defined in xml.");
+                }
+
+                // There's no onActivityResult(), so we need to take care of some of variables
+                // which should be reset here.
+                mPreviousVMProviderKey = DEFAULT_VM_PROVIDER_KEY;
+                mVMProviderSettingsForced = false;
+
+                // This should let the preference use default behavior in the xml.
+                return false;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Implemented to support onPreferenceChangeListener to look for preference
+     * changes.
+     *
+     * @param preference is the preference to be changed
+     * @param objValue should be the value of the selection, NOT its localized
+     * display value.
+     */
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object objValue) {
+        if (DBG) {
+            log("onPreferenceChange(). preferenece: \"" + preference + "\""
+                    + ", value: \"" + objValue + "\"");
+        }
+        if (preference == mVibrateWhenRinging) {
+            boolean doVibrate = (Boolean) objValue;
+            Settings.System.putInt(mPhone.getContext().getContentResolver(),
+                    Settings.System.VIBRATE_WHEN_RINGING, doVibrate ? 1 : 0);
+        } else if (preference == mButtonDTMF) {
+            int index = mButtonDTMF.findIndexOfValue((String) objValue);
+            Settings.System.putInt(mPhone.getContext().getContentResolver(),
+                    Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, index);
+        } else if (preference == mButtonTTY) {
+            handleTTYChange(preference, objValue);
+        } else if (preference == mVoicemailProviders) {
+            final String newProviderKey = (String) objValue;
+            if (DBG) {
+                log("Voicemail Provider changes from \"" + mPreviousVMProviderKey
+                    + "\" to \"" + newProviderKey + "\".");
+            }
+            // If previous provider key and the new one is same, we don't need to handle it.
+            if (mPreviousVMProviderKey.equals(newProviderKey)) {
+                if (DBG) log("No change is made toward VM provider setting.");
+                return true;
+            }
+            updateVMPreferenceWidgets(newProviderKey);
+
+            final VoiceMailProviderSettings newProviderSettings =
+                    loadSettingsForVoiceMailProvider(newProviderKey);
+
+            // If the user switches to a voice mail provider and we have a
+            // numbers stored for it we will automatically change the
+            // phone's
+            // voice mail and forwarding number to the stored ones.
+            // Otherwise we will bring up provider's configuration UI.
+
+            if (newProviderSettings == null) {
+                // Force the user into a configuration of the chosen provider
+                Log.w(LOG_TAG, "Saved preferences not found - invoking config");
+                mVMProviderSettingsForced = true;
+                simulatePreferenceClick(mVoicemailSettings);
+            } else {
+                if (DBG) log("Saved preferences found - switching to them");
+                // Set this flag so if we get a failure we revert to previous provider
+                mChangingVMorFwdDueToProviderChange = true;
+                saveVoiceMailAndForwardingNumber(newProviderKey, newProviderSettings);
+            }
+        } else if (preference == mButtonSipCallOptions) {
+            handleSipCallOptionsChange(objValue);
+        }
+        // always let the preference setting proceed.
+        return true;
+    }
+
+    @Override
+    public void onDialogClosed(EditPhoneNumberPreference preference, int buttonClicked) {
+        if (DBG) log("onPreferenceClick: request preference click on dialog close: " +
+                buttonClicked);
+        if (buttonClicked == DialogInterface.BUTTON_NEGATIVE) {
+            return;
+        }
+
+        if (preference == mSubMenuVoicemailSettings) {
+            handleVMBtnClickRequest();
+        }
+    }
+
+    /**
+     * Implemented for EditPhoneNumberPreference.GetDefaultNumberListener.
+     * This method set the default values for the various
+     * EditPhoneNumberPreference dialogs.
+     */
+    @Override
+    public String onGetDefaultNumber(EditPhoneNumberPreference preference) {
+        if (preference == mSubMenuVoicemailSettings) {
+            // update the voicemail number field, which takes care of the
+            // mSubMenuVoicemailSettings itself, so we should return null.
+            if (DBG) log("updating default for voicemail dialog");
+            updateVoiceNumberField();
+            return null;
+        }
+
+        String vmDisplay = mPhone.getVoiceMailNumber();
+        if (TextUtils.isEmpty(vmDisplay)) {
+            // if there is no voicemail number, we just return null to
+            // indicate no contribution.
+            return null;
+        }
+
+        // Return the voicemail number prepended with "VM: "
+        if (DBG) log("updating default for call forwarding dialogs");
+        return getString(R.string.voicemail_abbreviated) + " " + vmDisplay;
+    }
+
+
+    // override the startsubactivity call to make changes in state consistent.
+    @Override
+    public void startActivityForResult(Intent intent, int requestCode) {
+        if (requestCode == -1) {
+            // this is an intent requested from the preference framework.
+            super.startActivityForResult(intent, requestCode);
+            return;
+        }
+
+        if (DBG) log("startSubActivity: starting requested subactivity");
+        super.startActivityForResult(intent, requestCode);
+    }
+
+    private void switchToPreviousVoicemailProvider() {
+        if (DBG) log("switchToPreviousVoicemailProvider " + mPreviousVMProviderKey);
+        if (mPreviousVMProviderKey != null) {
+            if (mVMChangeCompletedSuccessfully || mFwdChangesRequireRollback) {
+                // we have to revert with carrier
+                if (DBG) {
+                    log("Needs to rollback."
+                            + " mVMChangeCompletedSuccessfully=" + mVMChangeCompletedSuccessfully
+                            + ", mFwdChangesRequireRollback=" + mFwdChangesRequireRollback);
+                }
+
+                showDialogIfForeground(VOICEMAIL_REVERTING_DIALOG);
+                final VoiceMailProviderSettings prevSettings =
+                        loadSettingsForVoiceMailProvider(mPreviousVMProviderKey);
+                if (prevSettings == null) {
+                    // prevSettings never becomes null since it should be already loaded!
+                    Log.e(LOG_TAG, "VoiceMailProviderSettings for the key \""
+                            + mPreviousVMProviderKey + "\" becomes null, which is unexpected.");
+                    if (DBG) {
+                        Log.e(LOG_TAG,
+                                "mVMChangeCompletedSuccessfully: " + mVMChangeCompletedSuccessfully
+                                + ", mFwdChangesRequireRollback: " + mFwdChangesRequireRollback);
+                    }
+                }
+                if (mVMChangeCompletedSuccessfully) {
+                    mNewVMNumber = prevSettings.voicemailNumber;
+                    Log.i(LOG_TAG, "VM change is already completed successfully."
+                            + "Have to revert VM back to " + mNewVMNumber + " again.");
+                    mPhone.setVoiceMailNumber(
+                            mPhone.getVoiceMailAlphaTag().toString(),
+                            mNewVMNumber,
+                            Message.obtain(mRevertOptionComplete, EVENT_VOICEMAIL_CHANGED));
+                }
+                if (mFwdChangesRequireRollback) {
+                    Log.i(LOG_TAG, "Requested to rollback Fwd changes.");
+                    final CallForwardInfo[] prevFwdSettings =
+                        prevSettings.forwardingSettings;
+                    if (prevFwdSettings != null) {
+                        Map<Integer, AsyncResult> results =
+                            mForwardingChangeResults;
+                        resetForwardingChangeState();
+                        for (int i = 0; i < prevFwdSettings.length; i++) {
+                            CallForwardInfo fi = prevFwdSettings[i];
+                            if (DBG) log("Reverting fwd #: " + i + ": " + fi.toString());
+                            // Only revert the settings for which the update
+                            // succeeded
+                            AsyncResult result = results.get(fi.reason);
+                            if (result != null && result.exception == null) {
+                                mExpectedChangeResultReasons.add(fi.reason);
+                                mPhone.setCallForwardingOption(
+                                        (fi.status == 1 ?
+                                                CommandsInterface.CF_ACTION_REGISTRATION :
+                                                CommandsInterface.CF_ACTION_DISABLE),
+                                        fi.reason,
+                                        fi.number,
+                                        fi.timeSeconds,
+                                        mRevertOptionComplete.obtainMessage(
+                                                EVENT_FORWARDING_CHANGED, i, 0));
+                            }
+                        }
+                    }
+                }
+            } else {
+                if (DBG) log("No need to revert");
+                onRevertDone();
+            }
+        }
+    }
+
+    private void onRevertDone() {
+        if (DBG) log("Flipping provider key back to " + mPreviousVMProviderKey);
+        mVoicemailProviders.setValue(mPreviousVMProviderKey);
+        updateVMPreferenceWidgets(mPreviousVMProviderKey);
+        updateVoiceNumberField();
+        if (mVMOrFwdSetError != 0) {
+            showVMDialog(mVMOrFwdSetError);
+            mVMOrFwdSetError = 0;
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (DBG) {
+            log("onActivityResult: requestCode: " + requestCode
+                    + ", resultCode: " + resultCode
+                    + ", data: " + data);
+        }
+        // there are cases where the contact picker may end up sending us more than one
+        // request.  We want to ignore the request if we're not in the correct state.
+        if (requestCode == VOICEMAIL_PROVIDER_CFG_ID) {
+            boolean failure = false;
+
+            // No matter how the processing of result goes lets clear the flag
+            if (DBG) log("mVMProviderSettingsForced: " + mVMProviderSettingsForced);
+            final boolean isVMProviderSettingsForced = mVMProviderSettingsForced;
+            mVMProviderSettingsForced = false;
+
+            String vmNum = null;
+            if (resultCode != RESULT_OK) {
+                if (DBG) log("onActivityResult: vm provider cfg result not OK.");
+                failure = true;
+            } else {
+                if (data == null) {
+                    if (DBG) log("onActivityResult: vm provider cfg result has no data");
+                    failure = true;
+                } else {
+                    if (data.getBooleanExtra(SIGNOUT_EXTRA, false)) {
+                        if (DBG) log("Provider requested signout");
+                        if (isVMProviderSettingsForced) {
+                            if (DBG) log("Going back to previous provider on signout");
+                            switchToPreviousVoicemailProvider();
+                        } else {
+                            final String victim = getCurrentVoicemailProviderKey();
+                            if (DBG) log("Relaunching activity and ignoring " + victim);
+                            Intent i = new Intent(ACTION_ADD_VOICEMAIL);
+                            i.putExtra(IGNORE_PROVIDER_EXTRA, victim);
+                            i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                            this.startActivity(i);
+                        }
+                        return;
+                    }
+                    vmNum = data.getStringExtra(VM_NUMBER_EXTRA);
+                    if (vmNum == null || vmNum.length() == 0) {
+                        if (DBG) log("onActivityResult: vm provider cfg result has no vmnum");
+                        failure = true;
+                    }
+                }
+            }
+            if (failure) {
+                if (DBG) log("Failure in return from voicemail provider");
+                if (isVMProviderSettingsForced) {
+                    switchToPreviousVoicemailProvider();
+                } else {
+                    if (DBG) log("Not switching back the provider since this is not forced config");
+                }
+                return;
+            }
+            mChangingVMorFwdDueToProviderChange = isVMProviderSettingsForced;
+            final String fwdNum = data.getStringExtra(FWD_NUMBER_EXTRA);
+
+            // TODO(iliat): It would be nice to load the current network setting for this and
+            // send it to the provider when it's config is invoked so it can use this as default
+            final int fwdNumTime = data.getIntExtra(FWD_NUMBER_TIME_EXTRA, 20);
+
+            if (DBG) log("onActivityResult: vm provider cfg result " +
+                    (fwdNum != null ? "has" : " does not have") + " forwarding number");
+            saveVoiceMailAndForwardingNumber(getCurrentVoicemailProviderKey(),
+                    new VoiceMailProviderSettings(vmNum, fwdNum, fwdNumTime));
+            return;
+        }
+
+        if (requestCode == VOICEMAIL_PREF_ID) {
+            if (resultCode != RESULT_OK) {
+                if (DBG) log("onActivityResult: contact picker result not OK.");
+                return;
+            }
+
+            Cursor cursor = null;
+            try {
+                cursor = getContentResolver().query(data.getData(),
+                    NUM_PROJECTION, null, null, null);
+                if ((cursor == null) || (!cursor.moveToFirst())) {
+                    if (DBG) log("onActivityResult: bad contact data, no results found.");
+                    return;
+                }
+                mSubMenuVoicemailSettings.onPickActivityResult(cursor.getString(0));
+                return;
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+        }
+
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+
+    // Voicemail button logic
+    private void handleVMBtnClickRequest() {
+        // normally called on the dialog close.
+
+        // Since we're stripping the formatting out on the getPhoneNumber()
+        // call now, we won't need to do so here anymore.
+
+        saveVoiceMailAndForwardingNumber(
+                getCurrentVoicemailProviderKey(),
+                new VoiceMailProviderSettings(mSubMenuVoicemailSettings.getPhoneNumber(),
+                        FWD_SETTINGS_DONT_TOUCH));
+    }
+
+
+    /**
+     * Wrapper around showDialog() that will silently do nothing if we're
+     * not in the foreground.
+     *
+     * This is useful here because most of the dialogs we display from
+     * this class are triggered by asynchronous events (like
+     * success/failure messages from the telephony layer) and it's
+     * possible for those events to come in even after the user has gone
+     * to a different screen.
+     */
+    // TODO: this is too brittle: it's still easy to accidentally add new
+    // code here that calls showDialog() directly (which will result in a
+    // WindowManager$BadTokenException if called after the activity has
+    // been stopped.)
+    //
+    // It would be cleaner to do the "if (mForeground)" check in one
+    // central place, maybe by using a single Handler for all asynchronous
+    // events (and have *that* discard events if we're not in the
+    // foreground.)
+    //
+    // Unfortunately it's not that simple, since we sometimes need to do
+    // actual work to handle these events whether or not we're in the
+    // foreground (see the Handler code in mSetOptionComplete for
+    // example.)
+    private void showDialogIfForeground(int id) {
+        if (mForeground) {
+            showDialog(id);
+        }
+    }
+
+    private void dismissDialogSafely(int id) {
+        try {
+            dismissDialog(id);
+        } catch (IllegalArgumentException e) {
+            // This is expected in the case where we were in the background
+            // at the time we would normally have shown the dialog, so we didn't
+            // show it.
+        }
+    }
+
+    private void saveVoiceMailAndForwardingNumber(String key,
+            VoiceMailProviderSettings newSettings) {
+        if (DBG) log("saveVoiceMailAndForwardingNumber: " + newSettings.toString());
+        mNewVMNumber = newSettings.voicemailNumber;
+        // empty vm number == clearing the vm number ?
+        if (mNewVMNumber == null) {
+            mNewVMNumber = "";
+        }
+
+        mNewFwdSettings = newSettings.forwardingSettings;
+        if (DBG) log("newFwdNumber " +
+                String.valueOf((mNewFwdSettings != null ? mNewFwdSettings.length : 0))
+                + " settings");
+
+        // No fwd settings on CDMA
+        if (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            if (DBG) log("ignoring forwarding setting since this is CDMA phone");
+            mNewFwdSettings = FWD_SETTINGS_DONT_TOUCH;
+        }
+
+        //throw a warning if the vm is the same and we do not touch forwarding.
+        if (mNewVMNumber.equals(mOldVmNumber) && mNewFwdSettings == FWD_SETTINGS_DONT_TOUCH) {
+            showVMDialog(MSG_VM_NOCHANGE);
+            return;
+        }
+
+        maybeSaveSettingsForVoicemailProvider(key, newSettings);
+        mVMChangeCompletedSuccessfully = false;
+        mFwdChangesRequireRollback = false;
+        mVMOrFwdSetError = 0;
+        if (!key.equals(mPreviousVMProviderKey)) {
+            mReadingSettingsForDefaultProvider =
+                    mPreviousVMProviderKey.equals(DEFAULT_VM_PROVIDER_KEY);
+            if (DBG) log("Reading current forwarding settings");
+            mForwardingReadResults = new CallForwardInfo[FORWARDING_SETTINGS_REASONS.length];
+            for (int i = 0; i < FORWARDING_SETTINGS_REASONS.length; i++) {
+                mForwardingReadResults[i] = null;
+                mPhone.getCallForwardingOption(FORWARDING_SETTINGS_REASONS[i],
+                        mGetOptionComplete.obtainMessage(EVENT_FORWARDING_GET_COMPLETED, i, 0));
+            }
+            showDialogIfForeground(VOICEMAIL_FWD_READING_DIALOG);
+        } else {
+            saveVoiceMailAndForwardingNumberStage2();
+        }
+    }
+
+    private final Handler mGetOptionComplete = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult result = (AsyncResult) msg.obj;
+            switch (msg.what) {
+                case EVENT_FORWARDING_GET_COMPLETED:
+                    handleForwardingSettingsReadResult(result, msg.arg1);
+                    break;
+            }
+        }
+    };
+
+    private void handleForwardingSettingsReadResult(AsyncResult ar, int idx) {
+        if (DBG) Log.d(LOG_TAG, "handleForwardingSettingsReadResult: " + idx);
+        Throwable error = null;
+        if (ar.exception != null) {
+            if (DBG) Log.d(LOG_TAG, "FwdRead: ar.exception=" +
+                    ar.exception.getMessage());
+            error = ar.exception;
+        }
+        if (ar.userObj instanceof Throwable) {
+            if (DBG) Log.d(LOG_TAG, "FwdRead: userObj=" +
+                    ((Throwable)ar.userObj).getMessage());
+            error = (Throwable)ar.userObj;
+        }
+
+        // We may have already gotten an error and decided to ignore the other results.
+        if (mForwardingReadResults == null) {
+            if (DBG) Log.d(LOG_TAG, "ignoring fwd reading result: " + idx);
+            return;
+        }
+
+        // In case of error ignore other results, show an error dialog
+        if (error != null) {
+            if (DBG) Log.d(LOG_TAG, "Error discovered for fwd read : " + idx);
+            mForwardingReadResults = null;
+            dismissDialogSafely(VOICEMAIL_FWD_READING_DIALOG);
+            showVMDialog(MSG_FW_GET_EXCEPTION);
+            return;
+        }
+
+        // Get the forwarding info
+        final CallForwardInfo cfInfoArray[] = (CallForwardInfo[]) ar.result;
+        CallForwardInfo fi = null;
+        for (int i = 0 ; i < cfInfoArray.length; i++) {
+            if ((cfInfoArray[i].serviceClass & CommandsInterface.SERVICE_CLASS_VOICE) != 0) {
+                fi = cfInfoArray[i];
+                break;
+            }
+        }
+        if (fi == null) {
+
+            // In case we go nothing it means we need this reason disabled
+            // so create a CallForwardInfo for capturing this
+            if (DBG) Log.d(LOG_TAG, "Creating default info for " + idx);
+            fi = new CallForwardInfo();
+            fi.status = 0;
+            fi.reason = FORWARDING_SETTINGS_REASONS[idx];
+            fi.serviceClass = CommandsInterface.SERVICE_CLASS_VOICE;
+        } else {
+            // if there is not a forwarding number, ensure the entry is set to "not active."
+            if (fi.number == null || fi.number.length() == 0) {
+                fi.status = 0;
+            }
+
+            if (DBG) Log.d(LOG_TAG, "Got  " + fi.toString() + " for " + idx);
+        }
+        mForwardingReadResults[idx] = fi;
+
+        // Check if we got all the results already
+        boolean done = true;
+        for (int i = 0; i < mForwardingReadResults.length; i++) {
+            if (mForwardingReadResults[i] == null) {
+                done = false;
+                break;
+            }
+        }
+        if (done) {
+            if (DBG) Log.d(LOG_TAG, "Done receiving fwd info");
+            dismissDialogSafely(VOICEMAIL_FWD_READING_DIALOG);
+            if (mReadingSettingsForDefaultProvider) {
+                maybeSaveSettingsForVoicemailProvider(DEFAULT_VM_PROVIDER_KEY,
+                        new VoiceMailProviderSettings(this.mOldVmNumber,
+                                mForwardingReadResults));
+                mReadingSettingsForDefaultProvider = false;
+            }
+            saveVoiceMailAndForwardingNumberStage2();
+        } else {
+            if (DBG) Log.d(LOG_TAG, "Not done receiving fwd info");
+        }
+    }
+
+    private CallForwardInfo infoForReason(CallForwardInfo[] infos, int reason) {
+        CallForwardInfo result = null;
+        if (null != infos) {
+            for (CallForwardInfo info : infos) {
+                if (info.reason == reason) {
+                    result = info;
+                    break;
+                }
+            }
+        }
+        return result;
+    }
+
+    private boolean isUpdateRequired(CallForwardInfo oldInfo,
+            CallForwardInfo newInfo) {
+        boolean result = true;
+        if (0 == newInfo.status) {
+            // If we're disabling a type of forwarding, and it's already
+            // disabled for the account, don't make any change
+            if (oldInfo != null && oldInfo.status == 0) {
+                result = false;
+            }
+        }
+        return result;
+    }
+
+    private void resetForwardingChangeState() {
+        mForwardingChangeResults = new HashMap<Integer, AsyncResult>();
+        mExpectedChangeResultReasons = new HashSet<Integer>();
+    }
+
+    // Called after we are done saving the previous forwarding settings if
+    // we needed.
+    private void saveVoiceMailAndForwardingNumberStage2() {
+        mForwardingChangeResults = null;
+        mVoicemailChangeResult = null;
+        if (mNewFwdSettings != FWD_SETTINGS_DONT_TOUCH) {
+            resetForwardingChangeState();
+            for (int i = 0; i < mNewFwdSettings.length; i++) {
+                CallForwardInfo fi = mNewFwdSettings[i];
+
+                final boolean doUpdate = isUpdateRequired(infoForReason(
+                            mForwardingReadResults, fi.reason), fi);
+
+                if (doUpdate) {
+                    if (DBG) log("Setting fwd #: " + i + ": " + fi.toString());
+                    mExpectedChangeResultReasons.add(i);
+
+                    mPhone.setCallForwardingOption(
+                            fi.status == 1 ?
+                                    CommandsInterface.CF_ACTION_REGISTRATION :
+                                    CommandsInterface.CF_ACTION_DISABLE,
+                            fi.reason,
+                            fi.number,
+                            fi.timeSeconds,
+                            mSetOptionComplete.obtainMessage(
+                                    EVENT_FORWARDING_CHANGED, fi.reason, 0));
+                }
+            }
+            showDialogIfForeground(VOICEMAIL_FWD_SAVING_DIALOG);
+        } else {
+            if (DBG) log("Not touching fwd #");
+            setVMNumberWithCarrier();
+        }
+    }
+
+    private void setVMNumberWithCarrier() {
+        if (DBG) log("save voicemail #: " + mNewVMNumber);
+        mPhone.setVoiceMailNumber(
+                mPhone.getVoiceMailAlphaTag().toString(),
+                mNewVMNumber,
+                Message.obtain(mSetOptionComplete, EVENT_VOICEMAIL_CHANGED));
+    }
+
+    /**
+     * Callback to handle option update completions
+     */
+    private final Handler mSetOptionComplete = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult result = (AsyncResult) msg.obj;
+            boolean done = false;
+            switch (msg.what) {
+                case EVENT_VOICEMAIL_CHANGED:
+                    mVoicemailChangeResult = result;
+                    mVMChangeCompletedSuccessfully = checkVMChangeSuccess() == null;
+                    if (DBG) log("VM change complete msg, VM change done = " +
+                            String.valueOf(mVMChangeCompletedSuccessfully));
+                    done = true;
+                    break;
+                case EVENT_FORWARDING_CHANGED:
+                    mForwardingChangeResults.put(msg.arg1, result);
+                    if (result.exception != null) {
+                        Log.w(LOG_TAG, "Error in setting fwd# " + msg.arg1 + ": " +
+                                result.exception.getMessage());
+                    } else {
+                        if (DBG) log("Success in setting fwd# " + msg.arg1);
+                    }
+                    final boolean completed = checkForwardingCompleted();
+                    if (completed) {
+                        if (checkFwdChangeSuccess() == null) {
+                            if (DBG) log("Overall fwd changes completed ok, starting vm change");
+                            setVMNumberWithCarrier();
+                        } else {
+                            Log.w(LOG_TAG, "Overall fwd changes completed in failure. " +
+                                    "Check if we need to try rollback for some settings.");
+                            mFwdChangesRequireRollback = false;
+                            Iterator<Map.Entry<Integer,AsyncResult>> it =
+                                mForwardingChangeResults.entrySet().iterator();
+                            while (it.hasNext()) {
+                                Map.Entry<Integer,AsyncResult> entry = it.next();
+                                if (entry.getValue().exception == null) {
+                                    // If at least one succeeded we have to revert
+                                    Log.i(LOG_TAG, "Rollback will be required");
+                                    mFwdChangesRequireRollback = true;
+                                    break;
+                                }
+                            }
+                            if (!mFwdChangesRequireRollback) {
+                                Log.i(LOG_TAG, "No rollback needed.");
+                            }
+                            done = true;
+                        }
+                    }
+                    break;
+                default:
+                    // TODO: should never reach this, may want to throw exception
+            }
+            if (done) {
+                if (DBG) log("All VM provider related changes done");
+                if (mForwardingChangeResults != null) {
+                    dismissDialogSafely(VOICEMAIL_FWD_SAVING_DIALOG);
+                }
+                handleSetVMOrFwdMessage();
+            }
+        }
+    };
+
+    /**
+     * Callback to handle option revert completions
+     */
+    private final Handler mRevertOptionComplete = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult result = (AsyncResult) msg.obj;
+            switch (msg.what) {
+                case EVENT_VOICEMAIL_CHANGED:
+                    mVoicemailChangeResult = result;
+                    if (DBG) log("VM revert complete msg");
+                    break;
+                case EVENT_FORWARDING_CHANGED:
+                    mForwardingChangeResults.put(msg.arg1, result);
+                    if (result.exception != null) {
+                        if (DBG) log("Error in reverting fwd# " + msg.arg1 + ": " +
+                                result.exception.getMessage());
+                    } else {
+                        if (DBG) log("Success in reverting fwd# " + msg.arg1);
+                    }
+                    if (DBG) log("FWD revert complete msg ");
+                    break;
+                default:
+                    // TODO: should never reach this, may want to throw exception
+            }
+            final boolean done =
+                (!mVMChangeCompletedSuccessfully || mVoicemailChangeResult != null) &&
+                (!mFwdChangesRequireRollback || checkForwardingCompleted());
+            if (done) {
+                if (DBG) log("All VM reverts done");
+                dismissDialogSafely(VOICEMAIL_REVERTING_DIALOG);
+                onRevertDone();
+            }
+        }
+    };
+
+    /**
+     * @return true if forwarding change has completed
+     */
+    private boolean checkForwardingCompleted() {
+        boolean result;
+        if (mForwardingChangeResults == null) {
+            result = true;
+        } else {
+            // return true iff there is a change result for every reason for
+            // which we expected a result
+            result = true;
+            for (Integer reason : mExpectedChangeResultReasons) {
+                if (mForwardingChangeResults.get(reason) == null) {
+                    result = false;
+                    break;
+                }
+            }
+        }
+        return result;
+    }
+    /**
+     * @return error string or null if successful
+     */
+    private String checkFwdChangeSuccess() {
+        String result = null;
+        Iterator<Map.Entry<Integer,AsyncResult>> it =
+            mForwardingChangeResults.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry<Integer,AsyncResult> entry = it.next();
+            Throwable exception = entry.getValue().exception;
+            if (exception != null) {
+                result = exception.getMessage();
+                if (result == null) {
+                    result = "";
+                }
+                break;
+            }
+        }
+        return result;
+    }
+
+    /**
+     * @return error string or null if successful
+     */
+    private String checkVMChangeSuccess() {
+        if (mVoicemailChangeResult.exception != null) {
+            final String msg = mVoicemailChangeResult.exception.getMessage();
+            if (msg == null) {
+                return "";
+            }
+            return msg;
+        }
+        return null;
+    }
+
+    private void handleSetVMOrFwdMessage() {
+        if (DBG) {
+            log("handleSetVMMessage: set VM request complete");
+        }
+        boolean success = true;
+        boolean fwdFailure = false;
+        String exceptionMessage = "";
+        if (mForwardingChangeResults != null) {
+            exceptionMessage = checkFwdChangeSuccess();
+            if (exceptionMessage != null) {
+                success = false;
+                fwdFailure = true;
+            }
+        }
+        if (success) {
+            exceptionMessage = checkVMChangeSuccess();
+            if (exceptionMessage != null) {
+                success = false;
+            }
+        }
+        if (success) {
+            if (DBG) log("change VM success!");
+            handleVMAndFwdSetSuccess(MSG_VM_OK);
+        } else {
+            if (fwdFailure) {
+                Log.w(LOG_TAG, "Failed to change fowarding setting. Reason: " + exceptionMessage);
+                handleVMOrFwdSetError(MSG_FW_SET_EXCEPTION);
+            } else {
+                Log.w(LOG_TAG, "Failed to change voicemail. Reason: " + exceptionMessage);
+                handleVMOrFwdSetError(MSG_VM_EXCEPTION);
+            }
+        }
+    }
+
+    /**
+     * Called when Voicemail Provider or its forwarding settings failed. Rolls back partly made
+     * changes to those settings and show "failure" dialog.
+     *
+     * @param msgId Message ID used for the specific error case. {@link #MSG_FW_SET_EXCEPTION} or
+     * {@link #MSG_VM_EXCEPTION}
+     */
+    private void handleVMOrFwdSetError(int msgId) {
+        if (mChangingVMorFwdDueToProviderChange) {
+            mVMOrFwdSetError = msgId;
+            mChangingVMorFwdDueToProviderChange = false;
+            switchToPreviousVoicemailProvider();
+            return;
+        }
+        mChangingVMorFwdDueToProviderChange = false;
+        showVMDialog(msgId);
+        updateVoiceNumberField();
+    }
+
+    /**
+     * Called when Voicemail Provider and its forwarding settings were successfully finished.
+     * This updates a bunch of variables and show "success" dialog.
+     */
+    private void handleVMAndFwdSetSuccess(int msg) {
+        if (DBG) {
+            log("handleVMAndFwdSetSuccess(). current voicemail provider key: "
+                    + getCurrentVoicemailProviderKey());
+        }
+        mPreviousVMProviderKey = getCurrentVoicemailProviderKey();
+        mChangingVMorFwdDueToProviderChange = false;
+        showVMDialog(msg);
+        updateVoiceNumberField();
+    }
+
+    /**
+     * Update the voicemail number from what we've recorded on the sim.
+     */
+    private void updateVoiceNumberField() {
+        if (DBG) {
+            log("updateVoiceNumberField(). mSubMenuVoicemailSettings=" + mSubMenuVoicemailSettings);
+        }
+        if (mSubMenuVoicemailSettings == null) {
+            return;
+        }
+
+        mOldVmNumber = mPhone.getVoiceMailNumber();
+        if (mOldVmNumber == null) {
+            mOldVmNumber = "";
+        }
+        mSubMenuVoicemailSettings.setPhoneNumber(mOldVmNumber);
+        final String summary = (mOldVmNumber.length() > 0) ? mOldVmNumber :
+                getString(R.string.voicemail_number_not_set);
+        mSubMenuVoicemailSettings.setSummary(summary);
+    }
+
+    /*
+     * Helper Methods for Activity class.
+     * The initial query commands are split into two pieces now
+     * for individual expansion.  This combined with the ability
+     * to cancel queries allows for a much better user experience,
+     * and also ensures that the user only waits to update the
+     * data that is relevant.
+     */
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog) {
+        super.onPrepareDialog(id, dialog);
+        mCurrentDialogId = id;
+    }
+
+    // dialog creation method, called by showDialog()
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        if ((id == VM_RESPONSE_ERROR) || (id == VM_NOCHANGE_ERROR) ||
+            (id == FW_SET_RESPONSE_ERROR) || (id == FW_GET_RESPONSE_ERROR) ||
+                (id == VOICEMAIL_DIALOG_CONFIRM)) {
+
+            AlertDialog.Builder b = new AlertDialog.Builder(this);
+
+            int msgId;
+            int titleId = R.string.error_updating_title;
+            switch (id) {
+                case VOICEMAIL_DIALOG_CONFIRM:
+                    msgId = R.string.vm_changed;
+                    titleId = R.string.voicemail;
+                    // Set Button 2
+                    b.setNegativeButton(R.string.close_dialog, this);
+                    break;
+                case VM_NOCHANGE_ERROR:
+                    // even though this is technically an error,
+                    // keep the title friendly.
+                    msgId = R.string.no_change;
+                    titleId = R.string.voicemail;
+                    // Set Button 2
+                    b.setNegativeButton(R.string.close_dialog, this);
+                    break;
+                case VM_RESPONSE_ERROR:
+                    msgId = R.string.vm_change_failed;
+                    // Set Button 1
+                    b.setPositiveButton(R.string.close_dialog, this);
+                    break;
+                case FW_SET_RESPONSE_ERROR:
+                    msgId = R.string.fw_change_failed;
+                    // Set Button 1
+                    b.setPositiveButton(R.string.close_dialog, this);
+                    break;
+                case FW_GET_RESPONSE_ERROR:
+                    msgId = R.string.fw_get_in_vm_failed;
+                    b.setPositiveButton(R.string.alert_dialog_yes, this);
+                    b.setNegativeButton(R.string.alert_dialog_no, this);
+                    break;
+                default:
+                    msgId = R.string.exception_error;
+                    // Set Button 3, tells the activity that the error is
+                    // not recoverable on dialog exit.
+                    b.setNeutralButton(R.string.close_dialog, this);
+                    break;
+            }
+
+            b.setTitle(getText(titleId));
+            String message = getText(msgId).toString();
+            b.setMessage(message);
+            b.setCancelable(false);
+            AlertDialog dialog = b.create();
+
+            // make the dialog more obvious by bluring the background.
+            dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+
+            return dialog;
+        } else if (id == VOICEMAIL_FWD_SAVING_DIALOG || id == VOICEMAIL_FWD_READING_DIALOG ||
+                id == VOICEMAIL_REVERTING_DIALOG) {
+            ProgressDialog dialog = new ProgressDialog(this);
+            dialog.setTitle(getText(R.string.updating_title));
+            dialog.setIndeterminate(true);
+            dialog.setCancelable(false);
+            dialog.setMessage(getText(
+                    id == VOICEMAIL_FWD_SAVING_DIALOG ? R.string.updating_settings :
+                    (id == VOICEMAIL_REVERTING_DIALOG ? R.string.reverting_settings :
+                    R.string.reading_settings)));
+            return dialog;
+        }
+
+
+        return null;
+    }
+
+    // This is a method implemented for DialogInterface.OnClickListener.
+    // Used with the error dialog to close the app, voicemail dialog to just dismiss.
+    // Close button is mapped to BUTTON_POSITIVE for the errors that close the activity,
+    // while those that are mapped to BUTTON_NEUTRAL only move the preference focus.
+    public void onClick(DialogInterface dialog, int which) {
+        dialog.dismiss();
+        switch (which){
+            case DialogInterface.BUTTON_NEUTRAL:
+                if (DBG) log("Neutral button");
+                break;
+            case DialogInterface.BUTTON_NEGATIVE:
+                if (DBG) log("Negative button");
+                if (mCurrentDialogId == FW_GET_RESPONSE_ERROR) {
+                    // We failed to get current forwarding settings and the user
+                    // does not wish to continue.
+                    switchToPreviousVoicemailProvider();
+                }
+                break;
+            case DialogInterface.BUTTON_POSITIVE:
+                if (DBG) log("Positive button");
+                if (mCurrentDialogId == FW_GET_RESPONSE_ERROR) {
+                    // We failed to get current forwarding settings but the user
+                    // wishes to continue changing settings to the new vm provider
+                    saveVoiceMailAndForwardingNumberStage2();
+                } else {
+                    finish();
+                }
+                return;
+            default:
+                // just let the dialog close and go back to the input
+        }
+        // In all dialogs, all buttons except BUTTON_POSITIVE lead to the end of user interaction
+        // with settings UI. If we were called to explicitly configure voice mail then
+        // we finish the settings activity here to come back to whatever the user was doing.
+        if (getIntent().getAction().equals(ACTION_ADD_VOICEMAIL)) {
+            finish();
+        }
+    }
+
+    // set the app state with optional status.
+    private void showVMDialog(int msgStatus) {
+        switch (msgStatus) {
+            // It's a bit worrisome to punt in the error cases here when we're
+            // not in the foreground; maybe toast instead?
+            case MSG_VM_EXCEPTION:
+                showDialogIfForeground(VM_RESPONSE_ERROR);
+                break;
+            case MSG_FW_SET_EXCEPTION:
+                showDialogIfForeground(FW_SET_RESPONSE_ERROR);
+                break;
+            case MSG_FW_GET_EXCEPTION:
+                showDialogIfForeground(FW_GET_RESPONSE_ERROR);
+                break;
+            case MSG_VM_NOCHANGE:
+                showDialogIfForeground(VM_NOCHANGE_ERROR);
+                break;
+            case MSG_VM_OK:
+                showDialogIfForeground(VOICEMAIL_DIALOG_CONFIRM);
+                break;
+            case MSG_OK:
+            default:
+                // This should never happen.
+        }
+    }
+
+    /*
+     * Activity class methods
+     */
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        if (DBG) log("onCreate(). Intent: " + getIntent());
+        mPhone = PhoneGlobals.getPhone();
+
+        addPreferencesFromResource(R.xml.call_feature_setting);
+
+        mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+
+        // get buttons
+        PreferenceScreen prefSet = getPreferenceScreen();
+        mSubMenuVoicemailSettings = (EditPhoneNumberPreference)findPreference(BUTTON_VOICEMAIL_KEY);
+        if (mSubMenuVoicemailSettings != null) {
+            mSubMenuVoicemailSettings.setParentActivity(this, VOICEMAIL_PREF_ID, this);
+            mSubMenuVoicemailSettings.setDialogOnClosedListener(this);
+            mSubMenuVoicemailSettings.setDialogTitle(R.string.voicemail_settings_number_label);
+        }
+
+        mRingtonePreference = findPreference(BUTTON_RINGTONE_KEY);
+        mVibrateWhenRinging = (CheckBoxPreference) findPreference(BUTTON_VIBRATE_ON_RING);
+        mPlayDtmfTone = (CheckBoxPreference) findPreference(BUTTON_PLAY_DTMF_TONE);
+        mDialpadAutocomplete = (CheckBoxPreference) findPreference(BUTTON_DIALPAD_AUTOCOMPLETE);
+        mButtonDTMF = (ListPreference) findPreference(BUTTON_DTMF_KEY);
+        mButtonAutoRetry = (CheckBoxPreference) findPreference(BUTTON_RETRY_KEY);
+        mButtonHAC = (CheckBoxPreference) findPreference(BUTTON_HAC_KEY);
+        mButtonTTY = (ListPreference) findPreference(BUTTON_TTY_KEY);
+        mVoicemailProviders = (ListPreference) findPreference(BUTTON_VOICEMAIL_PROVIDER_KEY);
+        if (mVoicemailProviders != null) {
+            mVoicemailProviders.setOnPreferenceChangeListener(this);
+            mVoicemailSettings = (PreferenceScreen)findPreference(BUTTON_VOICEMAIL_SETTING_KEY);
+            mVoicemailNotificationRingtone =
+                    findPreference(BUTTON_VOICEMAIL_NOTIFICATION_RINGTONE_KEY);
+            mVoicemailNotificationVibrate =
+                    (CheckBoxPreference) findPreference(BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY);
+            initVoiceMailProviders();
+        }
+
+        if (mVibrateWhenRinging != null) {
+            Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+            if (vibrator != null && vibrator.hasVibrator()) {
+                mVibrateWhenRinging.setOnPreferenceChangeListener(this);
+            } else {
+                prefSet.removePreference(mVibrateWhenRinging);
+                mVibrateWhenRinging = null;
+            }
+        }
+
+        final ContentResolver contentResolver = getContentResolver();
+
+        if (mPlayDtmfTone != null) {
+            mPlayDtmfTone.setChecked(Settings.System.getInt(contentResolver,
+                    Settings.System.DTMF_TONE_WHEN_DIALING, 1) != 0);
+        }
+
+        if (mDialpadAutocomplete != null) {
+            mDialpadAutocomplete.setChecked(Settings.Secure.getInt(contentResolver,
+                    Settings.Secure.DIALPAD_AUTOCOMPLETE, 0) != 0);
+        }
+
+        if (mButtonDTMF != null) {
+            if (getResources().getBoolean(R.bool.dtmf_type_enabled)) {
+                mButtonDTMF.setOnPreferenceChangeListener(this);
+            } else {
+                prefSet.removePreference(mButtonDTMF);
+                mButtonDTMF = null;
+            }
+        }
+
+        if (mButtonAutoRetry != null) {
+            if (getResources().getBoolean(R.bool.auto_retry_enabled)) {
+                mButtonAutoRetry.setOnPreferenceChangeListener(this);
+            } else {
+                prefSet.removePreference(mButtonAutoRetry);
+                mButtonAutoRetry = null;
+            }
+        }
+
+        if (mButtonHAC != null) {
+            if (getResources().getBoolean(R.bool.hac_enabled)) {
+
+                mButtonHAC.setOnPreferenceChangeListener(this);
+            } else {
+                prefSet.removePreference(mButtonHAC);
+                mButtonHAC = null;
+            }
+        }
+
+        if (mButtonTTY != null) {
+            if (getResources().getBoolean(R.bool.tty_enabled)) {
+                mButtonTTY.setOnPreferenceChangeListener(this);
+            } else {
+                prefSet.removePreference(mButtonTTY);
+                mButtonTTY = null;
+            }
+        }
+
+        if (!getResources().getBoolean(R.bool.world_phone)) {
+            Preference options = prefSet.findPreference(BUTTON_CDMA_OPTIONS);
+            if (options != null)
+                prefSet.removePreference(options);
+            options = prefSet.findPreference(BUTTON_GSM_UMTS_OPTIONS);
+            if (options != null)
+                prefSet.removePreference(options);
+
+            int phoneType = mPhone.getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                Preference fdnButton = prefSet.findPreference(BUTTON_FDN_KEY);
+                if (fdnButton != null)
+                    prefSet.removePreference(fdnButton);
+                if (!getResources().getBoolean(R.bool.config_voice_privacy_disable)) {
+                    addPreferencesFromResource(R.xml.cdma_call_privacy);
+                }
+            } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                addPreferencesFromResource(R.xml.gsm_umts_call_options);
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        }
+
+        // create intent to bring up contact list
+        mContactListIntent = new Intent(Intent.ACTION_GET_CONTENT);
+        mContactListIntent.setType(android.provider.Contacts.Phones.CONTENT_ITEM_TYPE);
+
+        // check the intent that started this activity and pop up the voicemail
+        // dialog if we've been asked to.
+        // If we have at least one non default VM provider registered then bring up
+        // the selection for the VM provider, otherwise bring up a VM number dialog.
+        // We only bring up the dialog the first time we are called (not after orientation change)
+        if (icicle == null) {
+            if (getIntent().getAction().equals(ACTION_ADD_VOICEMAIL) &&
+                    mVoicemailProviders != null) {
+                if (DBG) {
+                    log("ACTION_ADD_VOICEMAIL Intent is thrown. current VM data size: "
+                            + mVMProvidersData.size());
+                }
+                if (mVMProvidersData.size() > 1) {
+                    simulatePreferenceClick(mVoicemailProviders);
+                } else {
+                    onPreferenceChange(mVoicemailProviders, DEFAULT_VM_PROVIDER_KEY);
+                    mVoicemailProviders.setValue(DEFAULT_VM_PROVIDER_KEY);
+                }
+            }
+        }
+        updateVoiceNumberField();
+        mVMProviderSettingsForced = false;
+        createSipCallSettings();
+
+        mRingtoneLookupRunnable = new Runnable() {
+            @Override
+            public void run() {
+                if (mRingtonePreference != null) {
+                    updateRingtoneName(RingtoneManager.TYPE_RINGTONE, mRingtonePreference,
+                            MSG_UPDATE_RINGTONE_SUMMARY);
+                }
+                if (mVoicemailNotificationRingtone != null) {
+                    updateRingtoneName(RingtoneManager.TYPE_NOTIFICATION,
+                            mVoicemailNotificationRingtone, MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY);
+                }
+            }
+        };
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    /**
+     * Updates ringtone name. This is a method copied from com.android.settings.SoundSettings
+     *
+     * @see com.android.settings.SoundSettings
+     */
+    private void updateRingtoneName(int type, Preference preference, int msg) {
+        if (preference == null) return;
+        final Uri ringtoneUri;
+        boolean defaultRingtone = false;
+        if (type == RingtoneManager.TYPE_RINGTONE) {
+            // For ringtones, we can just lookup the system default because changing the settings
+            // in Call Settings changes the system default.
+            ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
+        } else {
+            final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
+                    mPhone.getContext());
+            // for voicemail notifications, we use the value saved in Phone's shared preferences.
+            String uriString = prefs.getString(preference.getKey(), null);
+            if (TextUtils.isEmpty(uriString)) {
+                // silent ringtone
+                ringtoneUri = null;
+            } else {
+                if (uriString.equals(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) {
+                    // If it turns out that the voicemail notification is set to the system
+                    // default notification, we retrieve the actual URI to prevent it from showing
+                    // up as "Unknown Ringtone".
+                    defaultRingtone = true;
+                    ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
+                } else {
+                    ringtoneUri = Uri.parse(uriString);
+                }
+            }
+        }
+        CharSequence summary = getString(com.android.internal.R.string.ringtone_unknown);
+        // Is it a silent ringtone?
+        if (ringtoneUri == null) {
+            summary = getString(com.android.internal.R.string.ringtone_silent);
+        } else {
+            // Fetch the ringtone title from the media provider
+            try {
+                Cursor cursor = getContentResolver().query(ringtoneUri,
+                        new String[] { MediaStore.Audio.Media.TITLE }, null, null, null);
+                if (cursor != null) {
+                    if (cursor.moveToFirst()) {
+                        summary = cursor.getString(0);
+                    }
+                    cursor.close();
+                }
+            } catch (SQLiteException sqle) {
+                // Unknown title for the ringtone
+            }
+        }
+        if (defaultRingtone) {
+            summary = mPhone.getContext().getString(
+                    R.string.default_notification_description, summary);
+        }
+        mRingtoneLookupComplete.sendMessage(mRingtoneLookupComplete.obtainMessage(msg, summary));
+    }
+
+    private void createSipCallSettings() {
+        // Add Internet call settings.
+        if (PhoneUtils.isVoipSupported()) {
+            mSipManager = SipManager.newInstance(this);
+            mSipSharedPreferences = new SipSharedPreferences(this);
+            addPreferencesFromResource(R.xml.sip_settings_category);
+            mButtonSipCallOptions = getSipCallOptionPreference();
+            mButtonSipCallOptions.setOnPreferenceChangeListener(this);
+            mButtonSipCallOptions.setValueIndex(
+                    mButtonSipCallOptions.findIndexOfValue(
+                            mSipSharedPreferences.getSipCallOption()));
+            mButtonSipCallOptions.setSummary(mButtonSipCallOptions.getEntry());
+        }
+    }
+
+    // Gets the call options for SIP depending on whether SIP is allowed only
+    // on Wi-Fi only; also make the other options preference invisible.
+    private ListPreference getSipCallOptionPreference() {
+        ListPreference wifiAnd3G = (ListPreference)
+                findPreference(BUTTON_SIP_CALL_OPTIONS);
+        ListPreference wifiOnly = (ListPreference)
+                findPreference(BUTTON_SIP_CALL_OPTIONS_WIFI_ONLY);
+        PreferenceGroup sipSettings = (PreferenceGroup)
+                findPreference(SIP_SETTINGS_CATEGORY_KEY);
+        if (SipManager.isSipWifiOnly(this)) {
+            sipSettings.removePreference(wifiAnd3G);
+            return wifiOnly;
+        } else {
+            sipSettings.removePreference(wifiOnly);
+            return wifiAnd3G;
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mForeground = true;
+
+        if (isAirplaneModeOn()) {
+            Preference sipSettings = findPreference(SIP_SETTINGS_CATEGORY_KEY);
+            PreferenceScreen screen = getPreferenceScreen();
+            int count = screen.getPreferenceCount();
+            for (int i = 0 ; i < count ; ++i) {
+                Preference pref = screen.getPreference(i);
+                if (pref != sipSettings) pref.setEnabled(false);
+            }
+            return;
+        }
+
+        if (mVibrateWhenRinging != null) {
+            mVibrateWhenRinging.setChecked(getVibrateWhenRinging(this));
+        }
+
+        if (mButtonDTMF != null) {
+            int dtmf = Settings.System.getInt(getContentResolver(),
+                    Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, Constants.DTMF_TONE_TYPE_NORMAL);
+            mButtonDTMF.setValueIndex(dtmf);
+        }
+
+        if (mButtonAutoRetry != null) {
+            int autoretry = Settings.Global.getInt(getContentResolver(),
+                    Settings.Global.CALL_AUTO_RETRY, 0);
+            mButtonAutoRetry.setChecked(autoretry != 0);
+        }
+
+        if (mButtonHAC != null) {
+            int hac = Settings.System.getInt(getContentResolver(), Settings.System.HEARING_AID, 0);
+            mButtonHAC.setChecked(hac != 0);
+        }
+
+        if (mButtonTTY != null) {
+            int settingsTtyMode = Settings.Secure.getInt(getContentResolver(),
+                    Settings.Secure.PREFERRED_TTY_MODE,
+                    Phone.TTY_MODE_OFF);
+            mButtonTTY.setValue(Integer.toString(settingsTtyMode));
+            updatePreferredTtyModeSummary(settingsTtyMode);
+        }
+
+        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
+                mPhone.getContext());
+        if (migrateVoicemailVibrationSettingsIfNeeded(prefs)) {
+            mVoicemailNotificationVibrate.setChecked(prefs.getBoolean(
+                    BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY, false));
+        }
+
+        lookupRingtoneName();
+    }
+
+    // Migrate settings from BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_WHEN_KEY to
+    // BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY, if the latter does not exist.
+    // Returns true if migration was performed.
+    public static boolean migrateVoicemailVibrationSettingsIfNeeded(SharedPreferences prefs) {
+        if (!prefs.contains(BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY)) {
+            String vibrateWhen = prefs.getString(
+                    BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_WHEN_KEY, VOICEMAIL_VIBRATION_NEVER);
+            // If vibrateWhen is always, then voicemailVibrate should be True.
+            // otherwise if vibrateWhen is "only in silent mode", or "never", then
+            // voicemailVibrate = False.
+            boolean voicemailVibrate = vibrateWhen.equals(VOICEMAIL_VIBRATION_ALWAYS);
+            final SharedPreferences.Editor editor = prefs.edit();
+            editor.putBoolean(BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY, voicemailVibrate);
+            editor.commit();
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Obtain the setting for "vibrate when ringing" setting.
+     *
+     * Watch out: if the setting is missing in the device, this will try obtaining the old
+     * "vibrate on ring" setting from AudioManager, and save the previous setting to the new one.
+     */
+    public static boolean getVibrateWhenRinging(Context context) {
+        Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+        if (vibrator == null || !vibrator.hasVibrator()) {
+            return false;
+        }
+        return Settings.System.getInt(context.getContentResolver(),
+                Settings.System.VIBRATE_WHEN_RINGING, 0) != 0;
+    }
+
+    /**
+     * Lookups ringtone name asynchronously and updates the relevant Preference.
+     */
+    private void lookupRingtoneName() {
+        new Thread(mRingtoneLookupRunnable).start();
+    }
+
+    private boolean isAirplaneModeOn() {
+        return Settings.System.getInt(getContentResolver(),
+                Settings.System.AIRPLANE_MODE_ON, 0) != 0;
+    }
+
+    private void handleTTYChange(Preference preference, Object objValue) {
+        int buttonTtyMode;
+        buttonTtyMode = Integer.valueOf((String) objValue).intValue();
+        int settingsTtyMode = android.provider.Settings.Secure.getInt(
+                getContentResolver(),
+                android.provider.Settings.Secure.PREFERRED_TTY_MODE, preferredTtyMode);
+        if (DBG) log("handleTTYChange: requesting set TTY mode enable (TTY) to" +
+                Integer.toString(buttonTtyMode));
+
+        if (buttonTtyMode != settingsTtyMode) {
+            switch(buttonTtyMode) {
+            case Phone.TTY_MODE_OFF:
+            case Phone.TTY_MODE_FULL:
+            case Phone.TTY_MODE_HCO:
+            case Phone.TTY_MODE_VCO:
+                android.provider.Settings.Secure.putInt(getContentResolver(),
+                        android.provider.Settings.Secure.PREFERRED_TTY_MODE, buttonTtyMode);
+                break;
+            default:
+                buttonTtyMode = Phone.TTY_MODE_OFF;
+            }
+
+            mButtonTTY.setValue(Integer.toString(buttonTtyMode));
+            updatePreferredTtyModeSummary(buttonTtyMode);
+            Intent ttyModeChanged = new Intent(TtyIntent.TTY_PREFERRED_MODE_CHANGE_ACTION);
+            ttyModeChanged.putExtra(TtyIntent.TTY_PREFFERED_MODE, buttonTtyMode);
+            sendBroadcastAsUser(ttyModeChanged, UserHandle.ALL);
+        }
+    }
+
+    private void handleSipCallOptionsChange(Object objValue) {
+        String option = objValue.toString();
+        mSipSharedPreferences.setSipCallOption(option);
+        mButtonSipCallOptions.setValueIndex(
+                mButtonSipCallOptions.findIndexOfValue(option));
+        mButtonSipCallOptions.setSummary(mButtonSipCallOptions.getEntry());
+    }
+
+    private void updatePreferredTtyModeSummary(int TtyMode) {
+        String [] txts = getResources().getStringArray(R.array.tty_mode_entries);
+        switch(TtyMode) {
+            case Phone.TTY_MODE_OFF:
+            case Phone.TTY_MODE_HCO:
+            case Phone.TTY_MODE_VCO:
+            case Phone.TTY_MODE_FULL:
+                mButtonTTY.setSummary(txts[TtyMode]);
+                break;
+            default:
+                mButtonTTY.setEnabled(false);
+                mButtonTTY.setSummary(txts[Phone.TTY_MODE_OFF]);
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    /**
+     * Updates the look of the VM preference widgets based on current VM provider settings.
+     * Note that the provider name is loaded form the found activity via loadLabel in
+     * {@link #initVoiceMailProviders()} in order for it to be localizable.
+     */
+    private void updateVMPreferenceWidgets(String currentProviderSetting) {
+        final String key = currentProviderSetting;
+        final VoiceMailProvider provider = mVMProvidersData.get(key);
+
+        /* This is the case when we are coming up on a freshly wiped phone and there is no
+         persisted value for the list preference mVoicemailProviders.
+         In this case we want to show the UI asking the user to select a voicemail provider as
+         opposed to silently falling back to default one. */
+        if (provider == null) {
+            if (DBG) {
+                log("updateVMPreferenceWidget: provider for the key \"" + key + "\" is null.");
+            }
+            mVoicemailProviders.setSummary(getString(R.string.sum_voicemail_choose_provider));
+            mVoicemailSettings.setEnabled(false);
+            mVoicemailSettings.setIntent(null);
+
+            mVoicemailNotificationVibrate.setEnabled(false);
+        } else {
+            if (DBG) {
+                log("updateVMPreferenceWidget: provider for the key \"" + key + "\".."
+                        + "name: " + provider.name
+                        + ", intent: " + provider.intent);
+            }
+            final String providerName = provider.name;
+            mVoicemailProviders.setSummary(providerName);
+            mVoicemailSettings.setEnabled(true);
+            mVoicemailSettings.setIntent(provider.intent);
+
+            mVoicemailNotificationVibrate.setEnabled(true);
+        }
+    }
+
+    /**
+     * Enumerates existing VM providers and puts their data into the list and populates
+     * the preference list objects with their names.
+     * In case we are called with ACTION_ADD_VOICEMAIL intent the intent may have
+     * an extra string called IGNORE_PROVIDER_EXTRA with "package.activityName" of the provider
+     * which should be hidden when we bring up the list of possible VM providers to choose.
+     */
+    private void initVoiceMailProviders() {
+        if (DBG) log("initVoiceMailProviders()");
+        mPerProviderSavedVMNumbers =
+                this.getApplicationContext().getSharedPreferences(
+                        VM_NUMBERS_SHARED_PREFERENCES_NAME, MODE_PRIVATE);
+
+        String providerToIgnore = null;
+        if (getIntent().getAction().equals(ACTION_ADD_VOICEMAIL)) {
+            if (getIntent().hasExtra(IGNORE_PROVIDER_EXTRA)) {
+                providerToIgnore = getIntent().getStringExtra(IGNORE_PROVIDER_EXTRA);
+            }
+            if (DBG) log("Found ACTION_ADD_VOICEMAIL. providerToIgnore=" + providerToIgnore);
+            if (providerToIgnore != null) {
+                // IGNORE_PROVIDER_EXTRA implies we want to remove the choice from the list.
+                deleteSettingsForVoicemailProvider(providerToIgnore);
+            }
+        }
+
+        mVMProvidersData.clear();
+
+        // Stick the default element which is always there
+        final String myCarrier = getString(R.string.voicemail_default);
+        mVMProvidersData.put(DEFAULT_VM_PROVIDER_KEY, new VoiceMailProvider(myCarrier, null));
+
+        // Enumerate providers
+        PackageManager pm = getPackageManager();
+        Intent intent = new Intent();
+        intent.setAction(ACTION_CONFIGURE_VOICEMAIL);
+        List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
+        int len = resolveInfos.size() + 1; // +1 for the default choice we will insert.
+
+        // Go through the list of discovered providers populating the data map
+        // skip the provider we were instructed to ignore if there was one
+        for (int i = 0; i < resolveInfos.size(); i++) {
+            final ResolveInfo ri= resolveInfos.get(i);
+            final ActivityInfo currentActivityInfo = ri.activityInfo;
+            final String key = makeKeyForActivity(currentActivityInfo);
+            if (key.equals(providerToIgnore)) {
+                if (DBG) log("Ignoring key: " + key);
+                len--;
+                continue;
+            }
+            if (DBG) log("Loading key: " + key);
+            final String nameForDisplay = ri.loadLabel(pm).toString();
+            Intent providerIntent = new Intent();
+            providerIntent.setAction(ACTION_CONFIGURE_VOICEMAIL);
+            providerIntent.setClassName(currentActivityInfo.packageName,
+                    currentActivityInfo.name);
+            if (DBG) {
+                log("Store loaded VoiceMailProvider. key: " + key
+                        + " -> name: " + nameForDisplay + ", intent: " + providerIntent);
+            }
+            mVMProvidersData.put(
+                    key,
+                    new VoiceMailProvider(nameForDisplay, providerIntent));
+
+        }
+
+        // Now we know which providers to display - create entries and values array for
+        // the list preference
+        String [] entries = new String [len];
+        String [] values = new String [len];
+        entries[0] = myCarrier;
+        values[0] = DEFAULT_VM_PROVIDER_KEY;
+        int entryIdx = 1;
+        for (int i = 0; i < resolveInfos.size(); i++) {
+            final String key = makeKeyForActivity(resolveInfos.get(i).activityInfo);
+            if (!mVMProvidersData.containsKey(key)) {
+                continue;
+            }
+            entries[entryIdx] = mVMProvidersData.get(key).name;
+            values[entryIdx] = key;
+            entryIdx++;
+        }
+
+        // ListPreference is now updated.
+        mVoicemailProviders.setEntries(entries);
+        mVoicemailProviders.setEntryValues(values);
+
+        // Remember the current Voicemail Provider key as a "previous" key. This will be used
+        // when we fail to update Voicemail Provider, which requires rollback.
+        // We will update this when the VM Provider setting is successfully updated.
+        mPreviousVMProviderKey = getCurrentVoicemailProviderKey();
+        if (DBG) log("Set up the first mPreviousVMProviderKey: " + mPreviousVMProviderKey);
+
+        // Finally update the preference texts.
+        updateVMPreferenceWidgets(mPreviousVMProviderKey);
+    }
+
+    private String makeKeyForActivity(ActivityInfo ai) {
+        return ai.name;
+    }
+
+    /**
+     * Simulates user clicking on a passed preference.
+     * Usually needed when the preference is a dialog preference and we want to invoke
+     * a dialog for this preference programmatically.
+     * TODO(iliat): figure out if there is a cleaner way to cause preference dlg to come up
+     */
+    private void simulatePreferenceClick(Preference preference) {
+        // Go through settings until we find our setting
+        // and then simulate a click on it to bring up the dialog
+        final ListAdapter adapter = getPreferenceScreen().getRootAdapter();
+        for (int idx = 0; idx < adapter.getCount(); idx++) {
+            if (adapter.getItem(idx) == preference) {
+                getPreferenceScreen().onItemClick(this.getListView(),
+                        null, idx, adapter.getItemId(idx));
+                break;
+            }
+        }
+    }
+
+    /**
+     * Saves new VM provider settings associating them with the currently selected
+     * provider if settings are different than the ones already stored for this
+     * provider.
+     * Later on these will be used when the user switches a provider.
+     */
+    private void maybeSaveSettingsForVoicemailProvider(String key,
+            VoiceMailProviderSettings newSettings) {
+        if (mVoicemailProviders == null) {
+            return;
+        }
+        final VoiceMailProviderSettings curSettings = loadSettingsForVoiceMailProvider(key);
+        if (newSettings.equals(curSettings)) {
+            if (DBG) {
+                log("maybeSaveSettingsForVoicemailProvider:"
+                        + " Not saving setting for " + key + " since they have not changed");
+            }
+            return;
+        }
+        if (DBG) log("Saving settings for " + key + ": " + newSettings.toString());
+        Editor editor = mPerProviderSavedVMNumbers.edit();
+        editor.putString(key + VM_NUMBER_TAG, newSettings.voicemailNumber);
+        String fwdKey = key + FWD_SETTINGS_TAG;
+        CallForwardInfo[] s = newSettings.forwardingSettings;
+        if (s != FWD_SETTINGS_DONT_TOUCH) {
+            editor.putInt(fwdKey + FWD_SETTINGS_LENGTH_TAG, s.length);
+            for (int i = 0; i < s.length; i++) {
+                final String settingKey = fwdKey + FWD_SETTING_TAG + String.valueOf(i);
+                final CallForwardInfo fi = s[i];
+                editor.putInt(settingKey + FWD_SETTING_STATUS, fi.status);
+                editor.putInt(settingKey + FWD_SETTING_REASON, fi.reason);
+                editor.putString(settingKey + FWD_SETTING_NUMBER, fi.number);
+                editor.putInt(settingKey + FWD_SETTING_TIME, fi.timeSeconds);
+            }
+        } else {
+            editor.putInt(fwdKey + FWD_SETTINGS_LENGTH_TAG, 0);
+        }
+        editor.apply();
+    }
+
+    /**
+     * Returns settings previously stored for the currently selected
+     * voice mail provider. If none is stored returns null.
+     * If the user switches to a voice mail provider and we have settings
+     * stored for it we will automatically change the phone's voice mail number
+     * and forwarding number to the stored one. Otherwise we will bring up provider's configuration
+     * UI.
+     */
+    private VoiceMailProviderSettings loadSettingsForVoiceMailProvider(String key) {
+        final String vmNumberSetting = mPerProviderSavedVMNumbers.getString(key + VM_NUMBER_TAG,
+                null);
+        if (vmNumberSetting == null) {
+            Log.w(LOG_TAG, "VoiceMailProvider settings for the key \"" + key + "\""
+                    + " was not found. Returning null.");
+            return null;
+        }
+
+        CallForwardInfo[] cfi = FWD_SETTINGS_DONT_TOUCH;
+        String fwdKey = key + FWD_SETTINGS_TAG;
+        final int fwdLen = mPerProviderSavedVMNumbers.getInt(fwdKey + FWD_SETTINGS_LENGTH_TAG, 0);
+        if (fwdLen > 0) {
+            cfi = new CallForwardInfo[fwdLen];
+            for (int i = 0; i < cfi.length; i++) {
+                final String settingKey = fwdKey + FWD_SETTING_TAG + String.valueOf(i);
+                cfi[i] = new CallForwardInfo();
+                cfi[i].status = mPerProviderSavedVMNumbers.getInt(
+                        settingKey + FWD_SETTING_STATUS, 0);
+                cfi[i].reason = mPerProviderSavedVMNumbers.getInt(
+                        settingKey + FWD_SETTING_REASON,
+                        CommandsInterface.CF_REASON_ALL_CONDITIONAL);
+                cfi[i].serviceClass = CommandsInterface.SERVICE_CLASS_VOICE;
+                cfi[i].toa = PhoneNumberUtils.TOA_International;
+                cfi[i].number = mPerProviderSavedVMNumbers.getString(
+                        settingKey + FWD_SETTING_NUMBER, "");
+                cfi[i].timeSeconds = mPerProviderSavedVMNumbers.getInt(
+                        settingKey + FWD_SETTING_TIME, 20);
+            }
+        }
+
+        VoiceMailProviderSettings settings =  new VoiceMailProviderSettings(vmNumberSetting, cfi);
+        if (DBG) log("Loaded settings for " + key + ": " + settings.toString());
+        return settings;
+    }
+
+    /**
+     * Deletes settings for the specified provider.
+     */
+    private void deleteSettingsForVoicemailProvider(String key) {
+        if (DBG) log("Deleting settings for" + key);
+        if (mVoicemailProviders == null) {
+            return;
+        }
+        mPerProviderSavedVMNumbers.edit()
+            .putString(key + VM_NUMBER_TAG, null)
+            .putInt(key + FWD_SETTINGS_TAG + FWD_SETTINGS_LENGTH_TAG, 0)
+            .commit();
+    }
+
+    private String getCurrentVoicemailProviderKey() {
+        final String key = mVoicemailProviders.getValue();
+        return (key != null) ? key : DEFAULT_VM_PROVIDER_KEY;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            Intent intent = new Intent();
+            intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
+            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            startActivity(intent);
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    /**
+     * Finish current Activity and go up to the top level Settings ({@link CallFeaturesSetting}).
+     * This is useful for implementing "HomeAsUp" capability for second-level Settings.
+     */
+    public static void goUpToTopLevelSetting(Activity activity) {
+        Intent intent = new Intent(activity, CallFeaturesSetting.class);
+        intent.setAction(Intent.ACTION_MAIN);
+        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        activity.startActivity(intent);
+        activity.finish();
+    }
+}
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
new file mode 100644
index 0000000..f925022
--- /dev/null
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -0,0 +1,265 @@
+package com.android.phone;
+
+import com.android.internal.telephony.CallForwardInfo;
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.Phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.res.TypedArray;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+
+import static com.android.phone.TimeConsumingPreferenceActivity.RESPONSE_ERROR;
+
+public class CallForwardEditPreference extends EditPhoneNumberPreference {
+    private static final String LOG_TAG = "CallForwardEditPreference";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private static final String SRC_TAGS[]       = {"{0}"};
+    private CharSequence mSummaryOnTemplate;
+    /**
+     * Remembers which button was clicked by a user. If no button is clicked yet, this should have
+     * {@link DialogInterface#BUTTON_NEGATIVE}, meaning "cancel".
+     *
+     * TODO: consider removing this variable and having getButtonClicked() in
+     * EditPhoneNumberPreference instead.
+     */
+    private int mButtonClicked;
+    private int mServiceClass;
+    private MyHandler mHandler = new MyHandler();
+    int reason;
+    Phone phone;
+    CallForwardInfo callForwardInfo;
+    TimeConsumingPreferenceListener tcpListener;
+
+    public CallForwardEditPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        phone = PhoneGlobals.getPhone();
+        mSummaryOnTemplate = this.getSummaryOn();
+
+        TypedArray a = context.obtainStyledAttributes(attrs,
+                R.styleable.CallForwardEditPreference, 0, R.style.EditPhoneNumberPreference);
+        mServiceClass = a.getInt(R.styleable.CallForwardEditPreference_serviceClass,
+                CommandsInterface.SERVICE_CLASS_VOICE);
+        reason = a.getInt(R.styleable.CallForwardEditPreference_reason,
+                CommandsInterface.CF_REASON_UNCONDITIONAL);
+        a.recycle();
+
+        if (DBG) Log.d(LOG_TAG, "mServiceClass=" + mServiceClass + ", reason=" + reason);
+    }
+
+    public CallForwardEditPreference(Context context) {
+        this(context, null);
+    }
+
+    void init(TimeConsumingPreferenceListener listener, boolean skipReading) {
+        tcpListener = listener;
+        if (!skipReading) {
+            phone.getCallForwardingOption(reason,
+                    mHandler.obtainMessage(MyHandler.MESSAGE_GET_CF,
+                            // unused in this case
+                            CommandsInterface.CF_ACTION_DISABLE,
+                            MyHandler.MESSAGE_GET_CF, null));
+            if (tcpListener != null) {
+                tcpListener.onStarted(this, true);
+            }
+        }
+    }
+
+    @Override
+    protected void onBindDialogView(View view) {
+        // default the button clicked to be the cancel button.
+        mButtonClicked = DialogInterface.BUTTON_NEGATIVE;
+        super.onBindDialogView(view);
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        super.onClick(dialog, which);
+        mButtonClicked = which;
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+
+        if (DBG) Log.d(LOG_TAG, "mButtonClicked=" + mButtonClicked
+                + ", positiveResult=" + positiveResult);
+        // Ignore this event if the user clicked the cancel button, or if the dialog is dismissed
+        // without any button being pressed (back button press or click event outside the dialog).
+        if (this.mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
+            int action = (isToggled() || (mButtonClicked == DialogInterface.BUTTON_POSITIVE)) ?
+                    CommandsInterface.CF_ACTION_REGISTRATION :
+                    CommandsInterface.CF_ACTION_DISABLE;
+            int time = (reason != CommandsInterface.CF_REASON_NO_REPLY) ? 0 : 20;
+            final String number = getPhoneNumber();
+
+            if (DBG) Log.d(LOG_TAG, "callForwardInfo=" + callForwardInfo);
+
+            if (action == CommandsInterface.CF_ACTION_REGISTRATION
+                    && callForwardInfo != null
+                    && callForwardInfo.status == 1
+                    && number.equals(callForwardInfo.number)) {
+                // no change, do nothing
+                if (DBG) Log.d(LOG_TAG, "no change, do nothing");
+            } else {
+                // set to network
+                if (DBG) Log.d(LOG_TAG, "reason=" + reason + ", action=" + action
+                        + ", number=" + number);
+
+                // Display no forwarding number while we're waiting for
+                // confirmation
+                setSummaryOn("");
+
+                // the interface of Phone.setCallForwardingOption has error:
+                // should be action, reason...
+                phone.setCallForwardingOption(action,
+                        reason,
+                        number,
+                        time,
+                        mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
+                                action,
+                                MyHandler.MESSAGE_SET_CF));
+
+                if (tcpListener != null) {
+                    tcpListener.onStarted(this, false);
+                }
+            }
+        }
+    }
+
+    void handleCallForwardResult(CallForwardInfo cf) {
+        callForwardInfo = cf;
+        if (DBG) Log.d(LOG_TAG, "handleGetCFResponse done, callForwardInfo=" + callForwardInfo);
+
+        setToggled(callForwardInfo.status == 1);
+        setPhoneNumber(callForwardInfo.number);
+    }
+
+    private void updateSummaryText() {
+        if (isToggled()) {
+            CharSequence summaryOn;
+            final String number = getRawPhoneNumber();
+            if (number != null && number.length() > 0) {
+                String values[] = { number };
+                summaryOn = TextUtils.replace(mSummaryOnTemplate, SRC_TAGS, values);
+            } else {
+                summaryOn = getContext().getString(R.string.sum_cfu_enabled_no_number);
+            }
+            setSummaryOn(summaryOn);
+        }
+
+    }
+
+    // Message protocol:
+    // what: get vs. set
+    // arg1: action -- register vs. disable
+    // arg2: get vs. set for the preceding request
+    private class MyHandler extends Handler {
+        static final int MESSAGE_GET_CF = 0;
+        static final int MESSAGE_SET_CF = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_CF:
+                    handleGetCFResponse(msg);
+                    break;
+                case MESSAGE_SET_CF:
+                    handleSetCFResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetCFResponse(Message msg) {
+            if (DBG) Log.d(LOG_TAG, "handleGetCFResponse: done");
+
+            if (msg.arg2 == MESSAGE_SET_CF) {
+                tcpListener.onFinished(CallForwardEditPreference.this, false);
+            } else {
+                tcpListener.onFinished(CallForwardEditPreference.this, true);
+            }
+
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            callForwardInfo = null;
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleGetCFResponse: ar.exception=" + ar.exception);
+                tcpListener.onException(CallForwardEditPreference.this,
+                        (CommandException) ar.exception);
+            } else {
+                if (ar.userObj instanceof Throwable) {
+                    tcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
+                }
+                CallForwardInfo cfInfoArray[] = (CallForwardInfo[]) ar.result;
+                if (cfInfoArray.length == 0) {
+                    if (DBG) Log.d(LOG_TAG, "handleGetCFResponse: cfInfoArray.length==0");
+                    setEnabled(false);
+                    tcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
+                } else {
+                    for (int i = 0, length = cfInfoArray.length; i < length; i++) {
+                        if (DBG) Log.d(LOG_TAG, "handleGetCFResponse, cfInfoArray[" + i + "]="
+                                + cfInfoArray[i]);
+                        if ((mServiceClass & cfInfoArray[i].serviceClass) != 0) {
+                            // corresponding class
+                            CallForwardInfo info = cfInfoArray[i];
+                            handleCallForwardResult(info);
+
+                            // Show an alert if we got a success response but
+                            // with unexpected values.
+                            // Currently only handle the fail-to-disable case
+                            // since we haven't observed fail-to-enable.
+                            if (msg.arg2 == MESSAGE_SET_CF &&
+                                    msg.arg1 == CommandsInterface.CF_ACTION_DISABLE &&
+                                    info.status == 1) {
+                                CharSequence s;
+                                switch (reason) {
+                                    case CommandsInterface.CF_REASON_BUSY:
+                                        s = getContext().getText(R.string.disable_cfb_forbidden);
+                                        break;
+                                    case CommandsInterface.CF_REASON_NO_REPLY:
+                                        s = getContext().getText(R.string.disable_cfnry_forbidden);
+                                        break;
+                                    default: // not reachable
+                                        s = getContext().getText(R.string.disable_cfnrc_forbidden);
+                                }
+                                AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+                                builder.setNeutralButton(R.string.close_dialog, null);
+                                builder.setTitle(getContext().getText(R.string.error_updating_title));
+                                builder.setMessage(s);
+                                builder.setCancelable(true);
+                                builder.create().show();
+                            }
+                        }
+                    }
+                }
+            }
+
+            // Now whether or not we got a new number, reset our enabled
+            // summary text since it may have been replaced by an empty
+            // placeholder.
+            updateSummaryText();
+        }
+
+        private void handleSetCFResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleSetCFResponse: ar.exception=" + ar.exception);
+                // setEnabled(false);
+            }
+            if (DBG) Log.d(LOG_TAG, "handleSetCFResponse: re get");
+            phone.getCallForwardingOption(reason,
+                    obtainMessage(MESSAGE_GET_CF, msg.arg1, MESSAGE_SET_CF, ar.exception));
+        }
+    }
+}
diff --git a/src/com/android/phone/CallLogger.java b/src/com/android/phone/CallLogger.java
new file mode 100644
index 0000000..644812f
--- /dev/null
+++ b/src/com/android/phone/CallLogger.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.phone.common.CallLogAsync;
+
+import android.net.Uri;
+import android.os.SystemProperties;
+import android.provider.CallLog.Calls;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+
+/**
+ * Helper class for interacting with the call log.
+ */
+class CallLogger {
+    private static final String LOG_TAG = CallLogger.class.getSimpleName();
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 1) &&
+        (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    private static final boolean VDBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private PhoneGlobals mApplication;
+    private CallLogAsync mCallLog;
+
+    public CallLogger(PhoneGlobals application, CallLogAsync callLogAsync) {
+        mApplication = application;
+        mCallLog = callLogAsync;
+    }
+
+    /**
+     * Logs a call to the call log based on the connection object passed in.
+     *
+     * @param c The connection object for the call being logged.
+     * @param callLogType The type of call log entry.
+     */
+    public void logCall(Connection c, int callLogType) {
+        final String number = c.getAddress();
+        final long date = c.getCreateTime();
+        final long duration = c.getDurationMillis();
+        final Phone phone = c.getCall().getPhone();
+
+        final CallerInfo ci = getCallerInfoFromConnection(c);  // May be null.
+        final String logNumber = getLogNumber(c, ci);
+
+        if (DBG) {
+            log("- onDisconnect(): logNumber set to:" + PhoneUtils.toLogSafePhoneNumber(logNumber) +
+                ", number set to: " + PhoneUtils.toLogSafePhoneNumber(number));
+        }
+
+        // TODO: In getLogNumber we use the presentation from
+        // the connection for the CNAP. Should we use the one
+        // below instead? (comes from caller info)
+
+        // For international calls, 011 needs to be logged as +
+        final int presentation = getPresentation(c, ci);
+
+        final boolean isOtaspNumber = TelephonyCapabilities.supportsOtasp(phone)
+                && phone.isOtaSpNumber(number);
+
+        // Don't log OTASP calls.
+        if (!isOtaspNumber) {
+            logCall(ci, logNumber, presentation, callLogType, date, duration);
+        }
+    }
+
+    /**
+     * Came as logCall(Connection,int) but calculates the call type from the connection object.
+     */
+    public void logCall(Connection c) {
+        final Connection.DisconnectCause cause = c.getDisconnectCause();
+
+        // Set the "type" to be displayed in the call log (see constants in CallLog.Calls)
+        final int callLogType;
+
+        if (c.isIncoming()) {
+            callLogType = (cause == Connection.DisconnectCause.INCOMING_MISSED ?
+                           Calls.MISSED_TYPE : Calls.INCOMING_TYPE);
+        } else {
+            callLogType = Calls.OUTGOING_TYPE;
+        }
+        if (VDBG) log("- callLogType: " + callLogType + ", UserData: " + c.getUserData());
+
+        logCall(c, callLogType);
+    }
+
+    /**
+     * Logs a call to the call from the parameters passed in.
+     */
+    public void logCall(CallerInfo ci, String number, int presentation, int callType, long start,
+                        long duration) {
+        final boolean isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(number,
+                mApplication);
+
+        // On some devices, to avoid accidental redialing of
+        // emergency numbers, we *never* log emergency calls to
+        // the Call Log.  (This behavior is set on a per-product
+        // basis, based on carrier requirements.)
+        final boolean okToLogEmergencyNumber =
+            mApplication.getResources().getBoolean(
+                        R.bool.allow_emergency_numbers_in_call_log);
+
+        // Don't log emergency numbers if the device doesn't allow it,
+        boolean isOkToLogThisCall = !isEmergencyNumber || okToLogEmergencyNumber;
+
+        if (isOkToLogThisCall) {
+            if (DBG) {
+                log("sending Calllog entry: " + ci + ", " + PhoneUtils.toLogSafePhoneNumber(number)
+                    + "," + presentation + ", " + callType + ", " + start + ", " + duration);
+            }
+
+            CallLogAsync.AddCallArgs args = new CallLogAsync.AddCallArgs(mApplication, ci, number,
+                    presentation, callType, start, duration);
+            mCallLog.addCall(args);
+        }
+    }
+
+    /**
+     * Get the caller info.
+     *
+     * @param conn The phone connection.
+     * @return The CallerInfo associated with the connection. Maybe null.
+     */
+    private CallerInfo getCallerInfoFromConnection(Connection conn) {
+        CallerInfo ci = null;
+        Object o = conn.getUserData();
+
+        if ((o == null) || (o instanceof CallerInfo)) {
+            ci = (CallerInfo) o;
+        } else if (o instanceof Uri) {
+            ci = CallerInfo.getCallerInfo(mApplication.getApplicationContext(), (Uri) o);
+        } else {
+            ci = ((PhoneUtils.CallerInfoToken) o).currentInfo;
+        }
+        return ci;
+    }
+
+    /**
+     * Retrieve the phone number from the caller info or the connection.
+     *
+     * For incoming call the number is in the Connection object. For
+     * outgoing call we use the CallerInfo phoneNumber field if
+     * present. All the processing should have been done already (CDMA vs GSM numbers).
+     *
+     * If CallerInfo is missing the phone number, get it from the connection.
+     * Apply the Call Name Presentation (CNAP) transform in the connection on the number.
+     *
+     * @param conn The phone connection.
+     * @param callerInfo The CallerInfo. Maybe null.
+     * @return the phone number.
+     */
+    private String getLogNumber(Connection conn, CallerInfo callerInfo) {
+        String number = null;
+
+        if (conn.isIncoming()) {
+            number = conn.getAddress();
+        } else {
+            // For emergency and voicemail calls,
+            // CallerInfo.phoneNumber does *not* contain a valid phone
+            // number.  Instead it contains an I18N'd string such as
+            // "Emergency Number" or "Voice Mail" so we get the number
+            // from the connection.
+            if (null == callerInfo || TextUtils.isEmpty(callerInfo.phoneNumber) ||
+                callerInfo.isEmergencyNumber() || callerInfo.isVoiceMailNumber()) {
+                if (conn.getCall().getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                    // In cdma getAddress() is not always equals to getOrigDialString().
+                    number = conn.getOrigDialString();
+                } else {
+                    number = conn.getAddress();
+                }
+            } else {
+                number = callerInfo.phoneNumber;
+            }
+        }
+
+        if (null == number) {
+            return null;
+        } else {
+            int presentation = conn.getNumberPresentation();
+
+            // Do final CNAP modifications.
+            String newNumber = PhoneUtils.modifyForSpecialCnapCases(mApplication, callerInfo,
+                                                          number, presentation);
+
+            if (!PhoneNumberUtils.isUriNumber(number)) {
+                number = PhoneNumberUtils.stripSeparators(number);
+            }
+            if (VDBG) log("getLogNumber: " + number);
+            return number;
+        }
+    }
+
+    /**
+     * Get the presentation from the callerinfo if not null otherwise,
+     * get it from the connection.
+     *
+     * @param conn The phone connection.
+     * @param callerInfo The CallerInfo. Maybe null.
+     * @return The presentation to use in the logs.
+     */
+    private int getPresentation(Connection conn, CallerInfo callerInfo) {
+        int presentation;
+
+        if (null == callerInfo) {
+            presentation = conn.getNumberPresentation();
+        } else {
+            presentation = callerInfo.numberPresentation;
+            if (DBG) log("- getPresentation(): ignoring connection's presentation: " +
+                         conn.getNumberPresentation());
+        }
+        if (DBG) log("- getPresentation: presentation: " + presentation);
+        return presentation;
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
new file mode 100644
index 0000000..39feb25
--- /dev/null
+++ b/src/com/android/phone/CallNotifier.java
@@ -0,0 +1,1907 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.CallerInfoAsyncQuery;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneBase;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
+import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaDisplayInfoRec;
+import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaSignalInfoRec;
+import com.android.internal.telephony.cdma.SignalToneUtil;
+
+import android.app.ActivityManagerNative;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.os.SystemVibrator;
+import android.os.Vibrator;
+import android.provider.CallLog.Calls;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.EventLog;
+import android.util.Log;
+
+/**
+ * Phone app module that listens for phone state changes and various other
+ * events from the telephony layer, and triggers any resulting UI behavior
+ * (like starting the Ringer and Incoming Call UI, playing in-call tones,
+ * updating notifications, writing call log entries, etc.)
+ */
+public class CallNotifier extends Handler
+        implements CallerInfoAsyncQuery.OnQueryCompleteListener {
+    private static final String LOG_TAG = "CallNotifier";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    private static final boolean VDBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    // Maximum time we allow the CallerInfo query to run,
+    // before giving up and falling back to the default ringtone.
+    private static final int RINGTONE_QUERY_WAIT_TIME = 500;  // msec
+
+    // Timers related to CDMA Call Waiting
+    // 1) For displaying Caller Info
+    // 2) For disabling "Add Call" menu option once User selects Ignore or CW Timeout occures
+    private static final int CALLWAITING_CALLERINFO_DISPLAY_TIME = 20000; // msec
+    private static final int CALLWAITING_ADDCALL_DISABLE_TIME = 30000; // msec
+
+    // Time to display the  DisplayInfo Record sent by CDMA network
+    private static final int DISPLAYINFO_NOTIFICATION_TIME = 2000; // msec
+
+    /** The singleton instance. */
+    private static CallNotifier sInstance;
+
+    // Boolean to keep track of whether or not a CDMA Call Waiting call timed out.
+    //
+    // This is CDMA-specific, because with CDMA we *don't* get explicit
+    // notification from the telephony layer that a call-waiting call has
+    // stopped ringing.  Instead, when a call-waiting call first comes in we
+    // start a 20-second timer (see CALLWAITING_CALLERINFO_DISPLAY_DONE), and
+    // if the timer expires we clean up the call and treat it as a missed call.
+    //
+    // If this field is true, that means that the current Call Waiting call
+    // "timed out" and should be logged in Call Log as a missed call.  If it's
+    // false when we reach onCdmaCallWaitingReject(), we can assume the user
+    // explicitly rejected this call-waiting call.
+    //
+    // This field is reset to false any time a call-waiting call first comes
+    // in, and after cleaning up a missed call-waiting call.  It's only ever
+    // set to true when the CALLWAITING_CALLERINFO_DISPLAY_DONE timer fires.
+    //
+    // TODO: do we really need a member variable for this?  Don't we always
+    // know at the moment we call onCdmaCallWaitingReject() whether this is an
+    // explicit rejection or not?
+    // (Specifically: when we call onCdmaCallWaitingReject() from
+    // PhoneUtils.hangupRingingCall() that means the user deliberately rejected
+    // the call, and if we call onCdmaCallWaitingReject() because of a
+    // CALLWAITING_CALLERINFO_DISPLAY_DONE event that means that it timed
+    // out...)
+    private boolean mCallWaitingTimeOut = false;
+
+    // values used to track the query state
+    private static final int CALLERINFO_QUERY_READY = 0;
+    private static final int CALLERINFO_QUERYING = -1;
+
+    // the state of the CallerInfo Query.
+    private int mCallerInfoQueryState;
+
+    // object used to synchronize access to mCallerInfoQueryState
+    private Object mCallerInfoQueryStateGuard = new Object();
+
+    // Event used to indicate a query timeout.
+    private static final int RINGER_CUSTOM_RINGTONE_QUERY_TIMEOUT = 100;
+
+    // Events generated internally:
+    private static final int PHONE_MWI_CHANGED = 21;
+    private static final int CALLWAITING_CALLERINFO_DISPLAY_DONE = 22;
+    private static final int CALLWAITING_ADDCALL_DISABLE_TIMEOUT = 23;
+    private static final int DISPLAYINFO_NOTIFICATION_DONE = 24;
+    private static final int CDMA_CALL_WAITING_REJECT = 26;
+    private static final int UPDATE_IN_CALL_NOTIFICATION = 27;
+
+    // Emergency call related defines:
+    private static final int EMERGENCY_TONE_OFF = 0;
+    private static final int EMERGENCY_TONE_ALERT = 1;
+    private static final int EMERGENCY_TONE_VIBRATE = 2;
+
+    private PhoneGlobals mApplication;
+    private CallManager mCM;
+    private CallStateMonitor mCallStateMonitor;
+    private Ringer mRinger;
+    private BluetoothHeadset mBluetoothHeadset;
+    private CallLogger mCallLogger;
+    private boolean mSilentRingerRequested;
+
+    // ToneGenerator instance for playing SignalInfo tones
+    private ToneGenerator mSignalInfoToneGenerator;
+
+    // The tone volume relative to other sounds in the stream SignalInfo
+    private static final int TONE_RELATIVE_VOLUME_SIGNALINFO = 80;
+
+    private Call.State mPreviousCdmaCallState;
+    private boolean mVoicePrivacyState = false;
+    private boolean mIsCdmaRedialCall = false;
+
+    // Emergency call tone and vibrate:
+    private int mIsEmergencyToneOn;
+    private int mCurrentEmergencyToneState = EMERGENCY_TONE_OFF;
+    private EmergencyTonePlayerVibrator mEmergencyTonePlayerVibrator;
+
+    // Ringback tone player
+    private InCallTonePlayer mInCallRingbackTonePlayer;
+
+    // Call waiting tone player
+    private InCallTonePlayer mCallWaitingTonePlayer;
+
+    // Cached AudioManager
+    private AudioManager mAudioManager;
+
+    /**
+     * Initialize the singleton CallNotifier instance.
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     */
+    /* package */ static CallNotifier init(PhoneGlobals app, Phone phone, Ringer ringer,
+            CallLogger callLogger, CallStateMonitor callStateMonitor) {
+        synchronized (CallNotifier.class) {
+            if (sInstance == null) {
+                sInstance = new CallNotifier(app, phone, ringer, callLogger, callStateMonitor);
+            } else {
+                Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /** Private constructor; @see init() */
+    private CallNotifier(PhoneGlobals app, Phone phone, Ringer ringer, CallLogger callLogger,
+            CallStateMonitor callStateMonitor) {
+        mApplication = app;
+        mCM = app.mCM;
+        mCallLogger = callLogger;
+        mCallStateMonitor = callStateMonitor;
+
+        mAudioManager = (AudioManager) mApplication.getSystemService(Context.AUDIO_SERVICE);
+
+        callStateMonitor.addListener(this);
+
+        createSignalInfoToneGenerator();
+
+        mRinger = ringer;
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        if (adapter != null) {
+            adapter.getProfileProxy(mApplication.getApplicationContext(),
+                                    mBluetoothProfileServiceListener,
+                                    BluetoothProfile.HEADSET);
+        }
+
+        TelephonyManager telephonyManager = (TelephonyManager)app.getSystemService(
+                Context.TELEPHONY_SERVICE);
+        telephonyManager.listen(mPhoneStateListener,
+                PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
+                | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR);
+    }
+
+    private void createSignalInfoToneGenerator() {
+        // Instantiate the ToneGenerator for SignalInfo and CallWaiting
+        // TODO: We probably don't need the mSignalInfoToneGenerator instance
+        // around forever. Need to change it so as to create a ToneGenerator instance only
+        // when a tone is being played and releases it after its done playing.
+        if (mSignalInfoToneGenerator == null) {
+            try {
+                mSignalInfoToneGenerator = new ToneGenerator(AudioManager.STREAM_VOICE_CALL,
+                        TONE_RELATIVE_VOLUME_SIGNALINFO);
+                Log.d(LOG_TAG, "CallNotifier: mSignalInfoToneGenerator created when toneplay");
+            } catch (RuntimeException e) {
+                Log.w(LOG_TAG, "CallNotifier: Exception caught while creating " +
+                        "mSignalInfoToneGenerator: " + e);
+                mSignalInfoToneGenerator = null;
+            }
+        } else {
+            Log.d(LOG_TAG, "mSignalInfoToneGenerator created already, hence skipping");
+        }
+    }
+
+    @Override
+    public void handleMessage(Message msg) {
+        switch (msg.what) {
+            case CallStateMonitor.PHONE_NEW_RINGING_CONNECTION:
+                log("RINGING... (new)");
+                onNewRingingConnection((AsyncResult) msg.obj);
+                mSilentRingerRequested = false;
+                break;
+
+            case CallStateMonitor.PHONE_INCOMING_RING:
+                // repeat the ring when requested by the RIL, and when the user has NOT
+                // specifically requested silence.
+                if (msg.obj != null && ((AsyncResult) msg.obj).result != null) {
+                    PhoneBase pb =  (PhoneBase)((AsyncResult)msg.obj).result;
+
+                    if ((pb.getState() == PhoneConstants.State.RINGING)
+                            && (mSilentRingerRequested == false)) {
+                        if (DBG) log("RINGING... (PHONE_INCOMING_RING event)");
+                        mRinger.ring();
+                    } else {
+                        if (DBG) log("RING before NEW_RING, skipping");
+                    }
+                }
+                break;
+
+            case CallStateMonitor.PHONE_STATE_CHANGED:
+                onPhoneStateChanged((AsyncResult) msg.obj);
+                break;
+
+            case CallStateMonitor.PHONE_DISCONNECT:
+                if (DBG) log("DISCONNECT");
+                onDisconnect((AsyncResult) msg.obj);
+                break;
+
+            case CallStateMonitor.PHONE_UNKNOWN_CONNECTION_APPEARED:
+                onUnknownConnectionAppeared((AsyncResult) msg.obj);
+                break;
+
+            case RINGER_CUSTOM_RINGTONE_QUERY_TIMEOUT:
+                onCustomRingtoneQueryTimeout((String) msg.obj);
+                break;
+
+            case PHONE_MWI_CHANGED:
+                onMwiChanged(mApplication.phone.getMessageWaitingIndicator());
+                break;
+
+            case CallStateMonitor.PHONE_CDMA_CALL_WAITING:
+                if (DBG) log("Received PHONE_CDMA_CALL_WAITING event");
+                onCdmaCallWaiting((AsyncResult) msg.obj);
+                break;
+
+            case CDMA_CALL_WAITING_REJECT:
+                Log.i(LOG_TAG, "Received CDMA_CALL_WAITING_REJECT event");
+                onCdmaCallWaitingReject();
+                break;
+
+            case CALLWAITING_CALLERINFO_DISPLAY_DONE:
+                Log.i(LOG_TAG, "Received CALLWAITING_CALLERINFO_DISPLAY_DONE event");
+                mCallWaitingTimeOut = true;
+                onCdmaCallWaitingReject();
+                break;
+
+            case CALLWAITING_ADDCALL_DISABLE_TIMEOUT:
+                if (DBG) log("Received CALLWAITING_ADDCALL_DISABLE_TIMEOUT event ...");
+                // Set the mAddCallMenuStateAfterCW state to true
+                mApplication.cdmaPhoneCallState.setAddCallMenuStateAfterCallWaiting(true);
+                mApplication.updateInCallScreen();
+                break;
+
+            case CallStateMonitor.PHONE_STATE_DISPLAYINFO:
+                if (DBG) log("Received PHONE_STATE_DISPLAYINFO event");
+                onDisplayInfo((AsyncResult) msg.obj);
+                break;
+
+            case CallStateMonitor.PHONE_STATE_SIGNALINFO:
+                if (DBG) log("Received PHONE_STATE_SIGNALINFO event");
+                onSignalInfo((AsyncResult) msg.obj);
+                break;
+
+            case DISPLAYINFO_NOTIFICATION_DONE:
+                if (DBG) log("Received Display Info notification done event ...");
+                CdmaDisplayInfo.dismissDisplayInfoRecord();
+                break;
+
+            case CallStateMonitor.EVENT_OTA_PROVISION_CHANGE:
+                if (DBG) log("EVENT_OTA_PROVISION_CHANGE...");
+                mApplication.handleOtaspEvent(msg);
+                break;
+
+            case CallStateMonitor.PHONE_ENHANCED_VP_ON:
+                if (DBG) log("PHONE_ENHANCED_VP_ON...");
+                if (!mVoicePrivacyState) {
+                    int toneToPlay = InCallTonePlayer.TONE_VOICE_PRIVACY;
+                    new InCallTonePlayer(toneToPlay).start();
+                    mVoicePrivacyState = true;
+                    // Update the VP icon:
+                    if (DBG) log("- updating notification for VP state...");
+                    mApplication.notificationMgr.updateInCallNotification();
+                }
+                break;
+
+            case CallStateMonitor.PHONE_ENHANCED_VP_OFF:
+                if (DBG) log("PHONE_ENHANCED_VP_OFF...");
+                if (mVoicePrivacyState) {
+                    int toneToPlay = InCallTonePlayer.TONE_VOICE_PRIVACY;
+                    new InCallTonePlayer(toneToPlay).start();
+                    mVoicePrivacyState = false;
+                    // Update the VP icon:
+                    if (DBG) log("- updating notification for VP state...");
+                    mApplication.notificationMgr.updateInCallNotification();
+                }
+                break;
+
+            case CallStateMonitor.PHONE_RINGBACK_TONE:
+                onRingbackTone((AsyncResult) msg.obj);
+                break;
+
+            case CallStateMonitor.PHONE_RESEND_MUTE:
+                onResendMute();
+                break;
+
+            case UPDATE_IN_CALL_NOTIFICATION:
+                mApplication.notificationMgr.updateInCallNotification();
+                break;
+
+            default:
+                // super.handleMessage(msg);
+        }
+    }
+
+    PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+        @Override
+        public void onMessageWaitingIndicatorChanged(boolean mwi) {
+            onMwiChanged(mwi);
+        }
+
+        @Override
+        public void onCallForwardingIndicatorChanged(boolean cfi) {
+            onCfiChanged(cfi);
+        }
+    };
+
+    /**
+     * Handles a "new ringing connection" event from the telephony layer.
+     */
+    private void onNewRingingConnection(AsyncResult r) {
+        Connection c = (Connection) r.result;
+        log("onNewRingingConnection(): state = " + mCM.getState() + ", conn = { " + c + " }");
+        Call ringing = c.getCall();
+        Phone phone = ringing.getPhone();
+
+        // Check for a few cases where we totally ignore incoming calls.
+        if (ignoreAllIncomingCalls(phone)) {
+            // Immediately reject the call, without even indicating to the user
+            // that an incoming call occurred.  (This will generally send the
+            // caller straight to voicemail, just as if we *had* shown the
+            // incoming-call UI and the user had declined the call.)
+            PhoneUtils.hangupRingingCall(ringing);
+            return;
+        }
+
+        if (!c.isRinging()) {
+            Log.i(LOG_TAG, "CallNotifier.onNewRingingConnection(): connection not ringing!");
+            // This is a very strange case: an incoming call that stopped
+            // ringing almost instantly after the onNewRingingConnection()
+            // event.  There's nothing we can do here, so just bail out
+            // without doing anything.  (But presumably we'll log it in
+            // the call log when the disconnect event comes in...)
+            return;
+        }
+
+        // Stop any signalInfo tone being played on receiving a Call
+        stopSignalInfoTone();
+
+        Call.State state = c.getState();
+        // State will be either INCOMING or WAITING.
+        if (VDBG) log("- connection is ringing!  state = " + state);
+        // if (DBG) PhoneUtils.dumpCallState(mPhone);
+
+        // No need to do any service state checks here (like for
+        // "emergency mode"), since in those states the SIM won't let
+        // us get incoming connections in the first place.
+
+        // TODO: Consider sending out a serialized broadcast Intent here
+        // (maybe "ACTION_NEW_INCOMING_CALL"), *before* starting the
+        // ringer and going to the in-call UI.  The intent should contain
+        // the caller-id info for the current connection, and say whether
+        // it would be a "call waiting" call or a regular ringing call.
+        // If anybody consumed the broadcast, we'd bail out without
+        // ringing or bringing up the in-call UI.
+        //
+        // This would give 3rd party apps a chance to listen for (and
+        // intercept) new ringing connections.  An app could reject the
+        // incoming call by consuming the broadcast and doing nothing, or
+        // it could "pick up" the call (without any action by the user!)
+        // via some future TelephonyManager API.
+        //
+        // See bug 1312336 for more details.
+        // We'd need to protect this with a new "intercept incoming calls"
+        // system permission.
+
+        // Obtain a partial wake lock to make sure the CPU doesn't go to
+        // sleep before we finish bringing up the InCallScreen.
+        // (This will be upgraded soon to a full wake lock; see
+        // showIncomingCall().)
+        if (VDBG) log("Holding wake lock on new incoming connection.");
+        mApplication.requestWakeState(PhoneGlobals.WakeState.PARTIAL);
+
+        // - don't ring for call waiting connections
+        // - do this before showing the incoming call panel
+        if (PhoneUtils.isRealIncomingCall(state)) {
+            startIncomingCallQuery(c);
+        } else {
+            if (VDBG) log("- starting call waiting tone...");
+            if (mCallWaitingTonePlayer == null) {
+                mCallWaitingTonePlayer = new InCallTonePlayer(InCallTonePlayer.TONE_CALL_WAITING);
+                mCallWaitingTonePlayer.start();
+            }
+            // in this case, just fall through like before, and call
+            // showIncomingCall().
+            if (DBG) log("- showing incoming call (this is a WAITING call)...");
+            showIncomingCall();
+        }
+
+        // Note we *don't* post a status bar notification here, since
+        // we're not necessarily ready to actually show the incoming call
+        // to the user.  (For calls in the INCOMING state, at least, we
+        // still need to run a caller-id query, and we may not even ring
+        // at all if the "send directly to voicemail" flag is set.)
+        //
+        // Instead, we update the notification (and potentially launch the
+        // InCallScreen) from the showIncomingCall() method, which runs
+        // when the caller-id query completes or times out.
+
+        if (VDBG) log("- onNewRingingConnection() done.");
+    }
+
+    /**
+     * Determines whether or not we're allowed to present incoming calls to the
+     * user, based on the capabilities and/or current state of the device.
+     *
+     * If this method returns true, that means we should immediately reject the
+     * current incoming call, without even indicating to the user that an
+     * incoming call occurred.
+     *
+     * (We only reject incoming calls in a few cases, like during an OTASP call
+     * when we can't interrupt the user, or if the device hasn't completed the
+     * SetupWizard yet.  We also don't allow incoming calls on non-voice-capable
+     * devices.  But note that we *always* allow incoming calls while in ECM.)
+     *
+     * @return true if we're *not* allowed to present an incoming call to
+     * the user.
+     */
+    private boolean ignoreAllIncomingCalls(Phone phone) {
+        // Incoming calls are totally ignored on non-voice-capable devices.
+        if (!PhoneGlobals.sVoiceCapable) {
+            // ...but still log a warning, since we shouldn't have gotten this
+            // event in the first place!  (Incoming calls *should* be blocked at
+            // the telephony layer on non-voice-capable capable devices.)
+            Log.w(LOG_TAG, "Got onNewRingingConnection() on non-voice-capable device! Ignoring...");
+            return true;
+        }
+
+        // In ECM (emergency callback mode), we ALWAYS allow incoming calls
+        // to get through to the user.  (Note that ECM is applicable only to
+        // voice-capable CDMA devices).
+        if (PhoneUtils.isPhoneInEcm(phone)) {
+            if (DBG) log("Incoming call while in ECM: always allow...");
+            return false;
+        }
+
+        // Incoming calls are totally ignored if the device isn't provisioned yet.
+        boolean provisioned = Settings.Global.getInt(mApplication.getContentResolver(),
+            Settings.Global.DEVICE_PROVISIONED, 0) != 0;
+        if (!provisioned) {
+            Log.i(LOG_TAG, "Ignoring incoming call: not provisioned");
+            return true;
+        }
+
+        // Incoming calls are totally ignored if an OTASP call is active.
+        if (TelephonyCapabilities.supportsOtasp(phone)) {
+            boolean activateState = (mApplication.cdmaOtaScreenState.otaScreenState
+                    == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION);
+            boolean dialogState = (mApplication.cdmaOtaScreenState.otaScreenState
+                    == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG);
+            boolean spcState = mApplication.cdmaOtaProvisionData.inOtaSpcState;
+
+            if (spcState) {
+                Log.i(LOG_TAG, "Ignoring incoming call: OTA call is active");
+                return true;
+            } else if (activateState || dialogState) {
+                // We *are* allowed to receive incoming calls at this point.
+                // But clear out any residual OTASP UI first.
+                // TODO: It's an MVC violation to twiddle the OTA UI state here;
+                // we should instead provide a higher-level API via OtaUtils.
+                if (dialogState) mApplication.dismissOtaDialogs();
+                mApplication.clearOtaState();
+                mApplication.clearInCallScreenMode();
+                return false;
+            }
+        }
+
+        // Normal case: allow this call to be presented to the user.
+        return false;
+    }
+
+    /**
+     * Helper method to manage the start of incoming call queries
+     */
+    private void startIncomingCallQuery(Connection c) {
+        // TODO: cache the custom ringer object so that subsequent
+        // calls will not need to do this query work.  We can keep
+        // the MRU ringtones in memory.  We'll still need to hit
+        // the database to get the callerinfo to act as a key,
+        // but at least we can save the time required for the
+        // Media player setup.  The only issue with this is that
+        // we may need to keep an eye on the resources the Media
+        // player uses to keep these ringtones around.
+
+        // make sure we're in a state where we can be ready to
+        // query a ringtone uri.
+        boolean shouldStartQuery = false;
+        synchronized (mCallerInfoQueryStateGuard) {
+            if (mCallerInfoQueryState == CALLERINFO_QUERY_READY) {
+                mCallerInfoQueryState = CALLERINFO_QUERYING;
+                shouldStartQuery = true;
+            }
+        }
+        if (shouldStartQuery) {
+            // Reset the ringtone to the default first.
+            mRinger.setCustomRingtoneUri(Settings.System.DEFAULT_RINGTONE_URI);
+
+            // query the callerinfo to try to get the ringer.
+            PhoneUtils.CallerInfoToken cit = PhoneUtils.startGetCallerInfo(
+                    mApplication, c, this, this);
+
+            // if this has already been queried then just ring, otherwise
+            // we wait for the alloted time before ringing.
+            if (cit.isFinal) {
+                if (VDBG) log("- CallerInfo already up to date, using available data");
+                onQueryComplete(0, this, cit.currentInfo);
+            } else {
+                if (VDBG) log("- Starting query, posting timeout message.");
+
+                // Phone number (via getAddress()) is stored in the message to remember which
+                // number is actually used for the look up.
+                sendMessageDelayed(
+                        Message.obtain(this, RINGER_CUSTOM_RINGTONE_QUERY_TIMEOUT, c.getAddress()),
+                        RINGTONE_QUERY_WAIT_TIME);
+            }
+            // The call to showIncomingCall() will happen after the
+            // queries are complete (or time out).
+        } else {
+            // This should never happen; its the case where an incoming call
+            // arrives at the same time that the query is still being run,
+            // and before the timeout window has closed.
+            EventLog.writeEvent(EventLogTags.PHONE_UI_MULTIPLE_QUERY);
+
+            // In this case, just log the request and ring.
+            if (VDBG) log("RINGING... (request to ring arrived while query is running)");
+            mRinger.ring();
+
+            // in this case, just fall through like before, and call
+            // showIncomingCall().
+            if (DBG) log("- showing incoming call (couldn't start query)...");
+            showIncomingCall();
+        }
+    }
+
+    /**
+     * Performs the final steps of the onNewRingingConnection sequence:
+     * starts the ringer, and brings up the "incoming call" UI.
+     *
+     * Normally, this is called when the CallerInfo query completes (see
+     * onQueryComplete()).  In this case, onQueryComplete() has already
+     * configured the Ringer object to use the custom ringtone (if there
+     * is one) for this caller.  So we just tell the Ringer to start, and
+     * proceed to the InCallScreen.
+     *
+     * But this method can *also* be called if the
+     * RINGTONE_QUERY_WAIT_TIME timeout expires, which means that the
+     * CallerInfo query is taking too long.  In that case, we log a
+     * warning but otherwise we behave the same as in the normal case.
+     * (We still tell the Ringer to start, but it's going to use the
+     * default ringtone.)
+     */
+    private void onCustomRingQueryComplete() {
+        boolean isQueryExecutionTimeExpired = false;
+        synchronized (mCallerInfoQueryStateGuard) {
+            if (mCallerInfoQueryState == CALLERINFO_QUERYING) {
+                mCallerInfoQueryState = CALLERINFO_QUERY_READY;
+                isQueryExecutionTimeExpired = true;
+            }
+        }
+        if (isQueryExecutionTimeExpired) {
+            // There may be a problem with the query here, since the
+            // default ringtone is playing instead of the custom one.
+            Log.w(LOG_TAG, "CallerInfo query took too long; falling back to default ringtone");
+            EventLog.writeEvent(EventLogTags.PHONE_UI_RINGER_QUERY_ELAPSED);
+        }
+
+        // Make sure we still have an incoming call!
+        //
+        // (It's possible for the incoming call to have been disconnected
+        // while we were running the query.  In that case we better not
+        // start the ringer here, since there won't be any future
+        // DISCONNECT event to stop it!)
+        //
+        // Note we don't have to worry about the incoming call going away
+        // *after* this check but before we call mRinger.ring() below,
+        // since in that case we *will* still get a DISCONNECT message sent
+        // to our handler.  (And we will correctly stop the ringer when we
+        // process that event.)
+        if (mCM.getState() != PhoneConstants.State.RINGING) {
+            Log.i(LOG_TAG, "onCustomRingQueryComplete: No incoming call! Bailing out...");
+            // Don't start the ringer *or* bring up the "incoming call" UI.
+            // Just bail out.
+            return;
+        }
+
+        // Ring, either with the queried ringtone or default one.
+        if (VDBG) log("RINGING... (onCustomRingQueryComplete)");
+        mRinger.ring();
+
+        // ...and display the incoming call to the user:
+        if (DBG) log("- showing incoming call (custom ring query complete)...");
+        showIncomingCall();
+    }
+
+    private void onUnknownConnectionAppeared(AsyncResult r) {
+        PhoneConstants.State state = mCM.getState();
+
+        if (state == PhoneConstants.State.OFFHOOK) {
+            // basically do onPhoneStateChanged + display the incoming call UI
+            onPhoneStateChanged(r);
+            if (DBG) log("- showing incoming call (unknown connection appeared)...");
+            showIncomingCall();
+        }
+    }
+
+    /**
+     * Informs the user about a new incoming call.
+     *
+     * In most cases this means "bring up the full-screen incoming call
+     * UI".  However, if an immersive activity is running, the system
+     * NotificationManager will instead pop up a small notification window
+     * on top of the activity.
+     *
+     * Watch out: be sure to call this method only once per incoming call,
+     * or otherwise we may end up launching the InCallScreen multiple
+     * times (which can lead to slow responsiveness and/or visible
+     * glitches.)
+     *
+     * Note this method handles only the onscreen UI for incoming calls;
+     * the ringer and/or vibrator are started separately (see the various
+     * calls to Ringer.ring() in this class.)
+     *
+     * @see NotificationMgr#updateNotificationAndLaunchIncomingCallUi()
+     */
+    private void showIncomingCall() {
+        log("showIncomingCall()...  phone state = " + mCM.getState());
+
+        // Before bringing up the "incoming call" UI, force any system
+        // dialogs (like "recent tasks" or the power dialog) to close first.
+        try {
+            ActivityManagerNative.getDefault().closeSystemDialogs("call");
+        } catch (RemoteException e) {
+        }
+
+        // Go directly to the in-call screen.
+        // (No need to do anything special if we're already on the in-call
+        // screen; it'll notice the phone state change and update itself.)
+        mApplication.requestWakeState(PhoneGlobals.WakeState.FULL);
+
+        // Post the "incoming call" notification *and* include the
+        // fullScreenIntent that'll launch the incoming-call UI.
+        // (This will usually take us straight to the incoming call
+        // screen, but if an immersive activity is running it'll just
+        // appear as a notification.)
+        if (DBG) log("- updating notification from showIncomingCall()...");
+        mApplication.notificationMgr.updateNotificationAndLaunchIncomingCallUi();
+    }
+
+    /**
+     * Updates the phone UI in response to phone state changes.
+     *
+     * Watch out: certain state changes are actually handled by their own
+     * specific methods:
+     *   - see onNewRingingConnection() for new incoming calls
+     *   - see onDisconnect() for calls being hung up or disconnected
+     */
+    private void onPhoneStateChanged(AsyncResult r) {
+        PhoneConstants.State state = mCM.getState();
+        if (VDBG) log("onPhoneStateChanged: state = " + state);
+
+        // Turn status bar notifications on or off depending upon the state
+        // of the phone.  Notification Alerts (audible or vibrating) should
+        // be on if and only if the phone is IDLE.
+        mApplication.notificationMgr.statusBarHelper
+                .enableNotificationAlerts(state == PhoneConstants.State.IDLE);
+
+        Phone fgPhone = mCM.getFgPhone();
+        if (fgPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            if ((fgPhone.getForegroundCall().getState() == Call.State.ACTIVE)
+                    && ((mPreviousCdmaCallState == Call.State.DIALING)
+                    ||  (mPreviousCdmaCallState == Call.State.ALERTING))) {
+                if (mIsCdmaRedialCall) {
+                    int toneToPlay = InCallTonePlayer.TONE_REDIAL;
+                    new InCallTonePlayer(toneToPlay).start();
+                }
+                // Stop any signal info tone when call moves to ACTIVE state
+                stopSignalInfoTone();
+            }
+            mPreviousCdmaCallState = fgPhone.getForegroundCall().getState();
+        }
+
+        // Have the PhoneApp recompute its mShowBluetoothIndication
+        // flag based on the (new) telephony state.
+        // There's no need to force a UI update since we update the
+        // in-call notification ourselves (below), and the InCallScreen
+        // listens for phone state changes itself.
+        mApplication.updateBluetoothIndication(false);
+
+
+        // Update the phone state and other sensor/lock.
+        mApplication.updatePhoneState(state);
+
+        if (state == PhoneConstants.State.OFFHOOK) {
+            // stop call waiting tone if needed when answering
+            if (mCallWaitingTonePlayer != null) {
+                mCallWaitingTonePlayer.stopTone();
+                mCallWaitingTonePlayer = null;
+            }
+
+            if (VDBG) log("onPhoneStateChanged: OFF HOOK");
+            // make sure audio is in in-call mode now
+            PhoneUtils.setAudioMode(mCM);
+
+            // if the call screen is showing, let it handle the event,
+            // otherwise handle it here.
+            if (!mApplication.isShowingCallScreen()) {
+                mApplication.requestWakeState(PhoneGlobals.WakeState.SLEEP);
+            }
+
+            // Since we're now in-call, the Ringer should definitely *not*
+            // be ringing any more.  (This is just a sanity-check; we
+            // already stopped the ringer explicitly back in
+            // PhoneUtils.answerCall(), before the call to phone.acceptCall().)
+            // TODO: Confirm that this call really *is* unnecessary, and if so,
+            // remove it!
+            if (DBG) log("stopRing()... (OFFHOOK state)");
+            mRinger.stopRing();
+
+            // Post a request to update the "in-call" status bar icon.
+            //
+            // We don't call NotificationMgr.updateInCallNotification()
+            // directly here, for two reasons:
+            // (1) a single phone state change might actually trigger multiple
+            //   onPhoneStateChanged() callbacks, so this prevents redundant
+            //   updates of the notification.
+            // (2) we suppress the status bar icon while the in-call UI is
+            //   visible (see updateInCallNotification()).  But when launching
+            //   an outgoing call the phone actually goes OFFHOOK slightly
+            //   *before* the InCallScreen comes up, so the delay here avoids a
+            //   brief flicker of the icon at that point.
+
+            if (DBG) log("- posting UPDATE_IN_CALL_NOTIFICATION request...");
+            // Remove any previous requests in the queue
+            removeMessages(UPDATE_IN_CALL_NOTIFICATION);
+            final int IN_CALL_NOTIFICATION_UPDATE_DELAY = 1000;  // msec
+            sendEmptyMessageDelayed(UPDATE_IN_CALL_NOTIFICATION,
+                                    IN_CALL_NOTIFICATION_UPDATE_DELAY);
+        }
+
+        if (fgPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            Connection c = fgPhone.getForegroundCall().getLatestConnection();
+            if ((c != null) && (PhoneNumberUtils.isLocalEmergencyNumber(c.getAddress(),
+                                                                        mApplication))) {
+                if (VDBG) log("onPhoneStateChanged: it is an emergency call.");
+                Call.State callState = fgPhone.getForegroundCall().getState();
+                if (mEmergencyTonePlayerVibrator == null) {
+                    mEmergencyTonePlayerVibrator = new EmergencyTonePlayerVibrator();
+                }
+
+                if (callState == Call.State.DIALING || callState == Call.State.ALERTING) {
+                    mIsEmergencyToneOn = Settings.Global.getInt(
+                            mApplication.getContentResolver(),
+                            Settings.Global.EMERGENCY_TONE, EMERGENCY_TONE_OFF);
+                    if (mIsEmergencyToneOn != EMERGENCY_TONE_OFF &&
+                        mCurrentEmergencyToneState == EMERGENCY_TONE_OFF) {
+                        if (mEmergencyTonePlayerVibrator != null) {
+                            mEmergencyTonePlayerVibrator.start();
+                        }
+                    }
+                } else if (callState == Call.State.ACTIVE) {
+                    if (mCurrentEmergencyToneState != EMERGENCY_TONE_OFF) {
+                        if (mEmergencyTonePlayerVibrator != null) {
+                            mEmergencyTonePlayerVibrator.stop();
+                        }
+                    }
+                }
+            }
+        }
+
+        if ((fgPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM)
+                || (fgPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_SIP)) {
+            Call.State callState = mCM.getActiveFgCallState();
+            if (!callState.isDialing()) {
+                // If call get activated or disconnected before the ringback
+                // tone stops, we have to stop it to prevent disturbing.
+                if (mInCallRingbackTonePlayer != null) {
+                    mInCallRingbackTonePlayer.stopTone();
+                    mInCallRingbackTonePlayer = null;
+                }
+            }
+        }
+    }
+
+    void updateCallNotifierRegistrationsAfterRadioTechnologyChange() {
+        if (DBG) Log.d(LOG_TAG, "updateCallNotifierRegistrationsAfterRadioTechnologyChange...");
+
+        // Clear ringback tone player
+        mInCallRingbackTonePlayer = null;
+
+        // Clear call waiting tone player
+        mCallWaitingTonePlayer = null;
+
+        // Instantiate mSignalInfoToneGenerator
+        createSignalInfoToneGenerator();
+    }
+
+    /**
+     * Implemented for CallerInfoAsyncQuery.OnQueryCompleteListener interface.
+     * refreshes the CallCard data when it called.  If called with this
+     * class itself, it is assumed that we have been waiting for the ringtone
+     * and direct to voicemail settings to update.
+     */
+    @Override
+    public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+        if (cookie instanceof Long) {
+            if (VDBG) log("CallerInfo query complete, posting missed call notification");
+
+            mApplication.notificationMgr.notifyMissedCall(ci.name, ci.phoneNumber,
+                    ci.phoneLabel, ci.cachedPhoto, ci.cachedPhotoIcon,
+                    ((Long) cookie).longValue());
+        } else if (cookie instanceof CallNotifier) {
+            if (VDBG) log("CallerInfo query complete (for CallNotifier), "
+                    + "updating state for incoming call..");
+
+            // get rid of the timeout messages
+            removeMessages(RINGER_CUSTOM_RINGTONE_QUERY_TIMEOUT);
+
+            boolean isQueryExecutionTimeOK = false;
+            synchronized (mCallerInfoQueryStateGuard) {
+                if (mCallerInfoQueryState == CALLERINFO_QUERYING) {
+                    mCallerInfoQueryState = CALLERINFO_QUERY_READY;
+                    isQueryExecutionTimeOK = true;
+                }
+            }
+            //if we're in the right state
+            if (isQueryExecutionTimeOK) {
+
+                // send directly to voicemail.
+                if (ci.shouldSendToVoicemail) {
+                    if (DBG) log("send to voicemail flag detected. hanging up.");
+                    PhoneUtils.hangupRingingCall(mCM.getFirstActiveRingingCall());
+                    return;
+                }
+
+                // set the ringtone uri to prepare for the ring.
+                if (ci.contactRingtoneUri != null) {
+                    if (DBG) log("custom ringtone found, setting up ringer.");
+                    Ringer r = ((CallNotifier) cookie).mRinger;
+                    r.setCustomRingtoneUri(ci.contactRingtoneUri);
+                }
+                // ring, and other post-ring actions.
+                onCustomRingQueryComplete();
+            }
+        }
+    }
+
+    /**
+     * Called when asynchronous CallerInfo query is taking too long (more than
+     * {@link #RINGTONE_QUERY_WAIT_TIME} msec), but we cannot wait any more.
+     *
+     * This looks up in-memory fallback cache and use it when available. If not, it just calls
+     * {@link #onCustomRingQueryComplete()} with default ringtone ("Send to voicemail" flag will
+     * be just ignored).
+     *
+     * @param number The phone number used for the async query. This method will take care of
+     * formatting or normalization of the number.
+     */
+    private void onCustomRingtoneQueryTimeout(String number) {
+        // First of all, this case itself should be rare enough, though we cannot avoid it in
+        // some situations (e.g. IPC is slow due to system overload, database is in sync, etc.)
+        Log.w(LOG_TAG, "CallerInfo query took too long; look up local fallback cache.");
+
+        // This method is intentionally verbose for now to detect possible bad side-effect for it.
+        // TODO: Remove the verbose log when it looks stable and reliable enough.
+
+        final CallerInfoCache.CacheEntry entry =
+                mApplication.callerInfoCache.getCacheEntry(number);
+        if (entry != null) {
+            if (entry.sendToVoicemail) {
+                log("send to voicemail flag detected (in fallback cache). hanging up.");
+                PhoneUtils.hangupRingingCall(mCM.getFirstActiveRingingCall());
+                return;
+            }
+
+            if (entry.customRingtone != null) {
+                log("custom ringtone found (in fallback cache), setting up ringer: "
+                        + entry.customRingtone);
+                this.mRinger.setCustomRingtoneUri(Uri.parse(entry.customRingtone));
+            }
+        } else {
+            // In this case we call onCustomRingQueryComplete(), just
+            // like if the query had completed normally.  (But we're
+            // going to get the default ringtone, since we never got
+            // the chance to call Ringer.setCustomRingtoneUri()).
+            log("Failed to find fallback cache. Use default ringer tone.");
+        }
+
+        onCustomRingQueryComplete();
+    }
+
+    private void onDisconnect(AsyncResult r) {
+        if (VDBG) log("onDisconnect()...  CallManager state: " + mCM.getState());
+
+        mVoicePrivacyState = false;
+        Connection c = (Connection) r.result;
+        if (c != null) {
+            log("onDisconnect: cause = " + c.getDisconnectCause()
+                  + ", incoming = " + c.isIncoming()
+                  + ", date = " + c.getCreateTime());
+        } else {
+            Log.w(LOG_TAG, "onDisconnect: null connection");
+        }
+
+        int autoretrySetting = 0;
+        if ((c != null) && (c.getCall().getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)) {
+            autoretrySetting = android.provider.Settings.Global.getInt(mApplication.
+                    getContentResolver(),android.provider.Settings.Global.CALL_AUTO_RETRY, 0);
+        }
+
+        // Stop any signalInfo tone being played when a call gets ended
+        stopSignalInfoTone();
+
+        if ((c != null) && (c.getCall().getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)) {
+            // Resetting the CdmaPhoneCallState members
+            mApplication.cdmaPhoneCallState.resetCdmaPhoneCallState();
+
+            // Remove Call waiting timers
+            removeMessages(CALLWAITING_CALLERINFO_DISPLAY_DONE);
+            removeMessages(CALLWAITING_ADDCALL_DISABLE_TIMEOUT);
+        }
+
+        // Stop the ringer if it was ringing (for an incoming call that
+        // either disconnected by itself, or was rejected by the user.)
+        //
+        // TODO: We technically *shouldn't* stop the ringer if the
+        // foreground or background call disconnects while an incoming call
+        // is still ringing, but that's a really rare corner case.
+        // It's safest to just unconditionally stop the ringer here.
+
+        // CDMA: For Call collision cases i.e. when the user makes an out going call
+        // and at the same time receives an Incoming Call, the Incoming Call is given
+        // higher preference. At this time framework sends a disconnect for the Out going
+        // call connection hence we should *not* be stopping the ringer being played for
+        // the Incoming Call
+        Call ringingCall = mCM.getFirstActiveRingingCall();
+        if (ringingCall.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            if (PhoneUtils.isRealIncomingCall(ringingCall.getState())) {
+                // Also we need to take off the "In Call" icon from the Notification
+                // area as the Out going Call never got connected
+                if (DBG) log("cancelCallInProgressNotifications()... (onDisconnect)");
+                mApplication.notificationMgr.cancelCallInProgressNotifications();
+            } else {
+                if (DBG) log("stopRing()... (onDisconnect)");
+                mRinger.stopRing();
+            }
+        } else { // GSM
+            if (DBG) log("stopRing()... (onDisconnect)");
+            mRinger.stopRing();
+        }
+
+        // stop call waiting tone if needed when disconnecting
+        if (mCallWaitingTonePlayer != null) {
+            mCallWaitingTonePlayer.stopTone();
+            mCallWaitingTonePlayer = null;
+        }
+
+        // If this is the end of an OTASP call, pass it on to the PhoneApp.
+        if (c != null && TelephonyCapabilities.supportsOtasp(c.getCall().getPhone())) {
+            final String number = c.getAddress();
+            if (c.getCall().getPhone().isOtaSpNumber(number)) {
+                if (DBG) log("onDisconnect: this was an OTASP call!");
+                mApplication.handleOtaspDisconnect();
+            }
+        }
+
+        // Check for the various tones we might need to play (thru the
+        // earpiece) after a call disconnects.
+        int toneToPlay = InCallTonePlayer.TONE_NONE;
+
+        // The "Busy" or "Congestion" tone is the highest priority:
+        if (c != null) {
+            Connection.DisconnectCause cause = c.getDisconnectCause();
+            if (cause == Connection.DisconnectCause.BUSY) {
+                if (DBG) log("- need to play BUSY tone!");
+                toneToPlay = InCallTonePlayer.TONE_BUSY;
+            } else if (cause == Connection.DisconnectCause.CONGESTION) {
+                if (DBG) log("- need to play CONGESTION tone!");
+                toneToPlay = InCallTonePlayer.TONE_CONGESTION;
+            } else if (((cause == Connection.DisconnectCause.NORMAL)
+                    || (cause == Connection.DisconnectCause.LOCAL))
+                    && (mApplication.isOtaCallInActiveState())) {
+                if (DBG) log("- need to play OTA_CALL_END tone!");
+                toneToPlay = InCallTonePlayer.TONE_OTA_CALL_END;
+            } else if (cause == Connection.DisconnectCause.CDMA_REORDER) {
+                if (DBG) log("- need to play CDMA_REORDER tone!");
+                toneToPlay = InCallTonePlayer.TONE_REORDER;
+            } else if (cause == Connection.DisconnectCause.CDMA_INTERCEPT) {
+                if (DBG) log("- need to play CDMA_INTERCEPT tone!");
+                toneToPlay = InCallTonePlayer.TONE_INTERCEPT;
+            } else if (cause == Connection.DisconnectCause.CDMA_DROP) {
+                if (DBG) log("- need to play CDMA_DROP tone!");
+                toneToPlay = InCallTonePlayer.TONE_CDMA_DROP;
+            } else if (cause == Connection.DisconnectCause.OUT_OF_SERVICE) {
+                if (DBG) log("- need to play OUT OF SERVICE tone!");
+                toneToPlay = InCallTonePlayer.TONE_OUT_OF_SERVICE;
+            } else if (cause == Connection.DisconnectCause.UNOBTAINABLE_NUMBER) {
+                if (DBG) log("- need to play TONE_UNOBTAINABLE_NUMBER tone!");
+                toneToPlay = InCallTonePlayer.TONE_UNOBTAINABLE_NUMBER;
+            } else if (cause == Connection.DisconnectCause.ERROR_UNSPECIFIED) {
+                if (DBG) log("- DisconnectCause is ERROR_UNSPECIFIED: play TONE_CALL_ENDED!");
+                toneToPlay = InCallTonePlayer.TONE_CALL_ENDED;
+            }
+        }
+
+        // If we don't need to play BUSY or CONGESTION, then play the
+        // "call ended" tone if this was a "regular disconnect" (i.e. a
+        // normal call where one end or the other hung up) *and* this
+        // disconnect event caused the phone to become idle.  (In other
+        // words, we *don't* play the sound if one call hangs up but
+        // there's still an active call on the other line.)
+        // TODO: We may eventually want to disable this via a preference.
+        if ((toneToPlay == InCallTonePlayer.TONE_NONE)
+            && (mCM.getState() == PhoneConstants.State.IDLE)
+            && (c != null)) {
+            Connection.DisconnectCause cause = c.getDisconnectCause();
+            if ((cause == Connection.DisconnectCause.NORMAL)  // remote hangup
+                || (cause == Connection.DisconnectCause.LOCAL)) {  // local hangup
+                if (VDBG) log("- need to play CALL_ENDED tone!");
+                toneToPlay = InCallTonePlayer.TONE_CALL_ENDED;
+                mIsCdmaRedialCall = false;
+            }
+        }
+
+        // All phone calls are disconnected.
+        if (mCM.getState() == PhoneConstants.State.IDLE) {
+            // Don't reset the audio mode or bluetooth/speakerphone state
+            // if we still need to let the user hear a tone through the earpiece.
+            if (toneToPlay == InCallTonePlayer.TONE_NONE) {
+                resetAudioStateAfterDisconnect();
+            }
+
+            mApplication.notificationMgr.cancelCallInProgressNotifications();
+        }
+
+        if (c != null) {
+            mCallLogger.logCall(c);
+
+            final String number = c.getAddress();
+            final Phone phone = c.getCall().getPhone();
+            final boolean isEmergencyNumber =
+                    PhoneNumberUtils.isLocalEmergencyNumber(number, mApplication);
+
+            if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                if ((isEmergencyNumber)
+                        && (mCurrentEmergencyToneState != EMERGENCY_TONE_OFF)) {
+                    if (mEmergencyTonePlayerVibrator != null) {
+                        mEmergencyTonePlayerVibrator.stop();
+                    }
+                }
+            }
+
+            final long date = c.getCreateTime();
+            final Connection.DisconnectCause cause = c.getDisconnectCause();
+            final boolean missedCall = c.isIncoming() &&
+                    (cause == Connection.DisconnectCause.INCOMING_MISSED);
+            if (missedCall) {
+                // Show the "Missed call" notification.
+                // (Note we *don't* do this if this was an incoming call that
+                // the user deliberately rejected.)
+                showMissedCallNotification(c, date);
+            }
+
+            // Possibly play a "post-disconnect tone" thru the earpiece.
+            // We do this here, rather than from the InCallScreen
+            // activity, since we need to do this even if you're not in
+            // the Phone UI at the moment the connection ends.
+            if (toneToPlay != InCallTonePlayer.TONE_NONE) {
+                if (VDBG) log("- starting post-disconnect tone (" + toneToPlay + ")...");
+                new InCallTonePlayer(toneToPlay).start();
+
+                // TODO: alternatively, we could start an InCallTonePlayer
+                // here with an "unlimited" tone length,
+                // and manually stop it later when this connection truly goes
+                // away.  (The real connection over the network was closed as soon
+                // as we got the BUSY message.  But our telephony layer keeps the
+                // connection open for a few extra seconds so we can show the
+                // "busy" indication to the user.  We could stop the busy tone
+                // when *that* connection's "disconnect" event comes in.)
+            }
+
+            if (((mPreviousCdmaCallState == Call.State.DIALING)
+                    || (mPreviousCdmaCallState == Call.State.ALERTING))
+                    && (!isEmergencyNumber)
+                    && (cause != Connection.DisconnectCause.INCOMING_MISSED )
+                    && (cause != Connection.DisconnectCause.NORMAL)
+                    && (cause != Connection.DisconnectCause.LOCAL)
+                    && (cause != Connection.DisconnectCause.INCOMING_REJECTED)) {
+                if (!mIsCdmaRedialCall) {
+                    if (autoretrySetting == InCallScreen.AUTO_RETRY_ON) {
+                        // TODO: (Moto): The contact reference data may need to be stored and use
+                        // here when redialing a call. For now, pass in NULL as the URI parameter.
+                        PhoneUtils.placeCall(mApplication, phone, number, null, false, null);
+                        mIsCdmaRedialCall = true;
+                    } else {
+                        mIsCdmaRedialCall = false;
+                    }
+                } else {
+                    mIsCdmaRedialCall = false;
+                }
+            }
+        }
+    }
+
+    /**
+     * Resets the audio mode and speaker state when a call ends.
+     */
+    private void resetAudioStateAfterDisconnect() {
+        if (VDBG) log("resetAudioStateAfterDisconnect()...");
+
+        if (mBluetoothHeadset != null) {
+            mBluetoothHeadset.disconnectAudio();
+        }
+
+        // call turnOnSpeaker() with state=false and store=true even if speaker
+        // is already off to reset user requested speaker state.
+        PhoneUtils.turnOnSpeaker(mApplication, false, true);
+
+        PhoneUtils.setAudioMode(mCM);
+    }
+
+    private void onMwiChanged(boolean visible) {
+        if (VDBG) log("onMwiChanged(): " + visible);
+
+        // "Voicemail" is meaningless on non-voice-capable devices,
+        // so ignore MWI events.
+        if (!PhoneGlobals.sVoiceCapable) {
+            // ...but still log a warning, since we shouldn't have gotten this
+            // event in the first place!
+            // (PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR events
+            // *should* be blocked at the telephony layer on non-voice-capable
+            // capable devices.)
+            Log.w(LOG_TAG, "Got onMwiChanged() on non-voice-capable device! Ignoring...");
+            return;
+        }
+
+        mApplication.notificationMgr.updateMwi(visible);
+    }
+
+    /**
+     * Posts a delayed PHONE_MWI_CHANGED event, to schedule a "retry" for a
+     * failed NotificationMgr.updateMwi() call.
+     */
+    /* package */ void sendMwiChangedDelayed(long delayMillis) {
+        Message message = Message.obtain(this, PHONE_MWI_CHANGED);
+        sendMessageDelayed(message, delayMillis);
+    }
+
+    private void onCfiChanged(boolean visible) {
+        if (VDBG) log("onCfiChanged(): " + visible);
+        mApplication.notificationMgr.updateCfi(visible);
+    }
+
+    /**
+     * Indicates whether or not this ringer is ringing.
+     */
+    boolean isRinging() {
+        return mRinger.isRinging();
+    }
+
+    /**
+     * Stops the current ring, and tells the notifier that future
+     * ring requests should be ignored.
+     */
+    void silenceRinger() {
+        mSilentRingerRequested = true;
+        if (DBG) log("stopRing()... (silenceRinger)");
+        mRinger.stopRing();
+    }
+
+    /**
+     * Restarts the ringer after having previously silenced it.
+     *
+     * (This is a no-op if the ringer is actually still ringing, or if the
+     * incoming ringing call no longer exists.)
+     */
+    /* package */ void restartRinger() {
+        if (DBG) log("restartRinger()...");
+        // Already ringing or Silent requested; no need to restart.
+        if (isRinging() || mSilentRingerRequested) return;
+
+        final Call ringingCall = mCM.getFirstActiveRingingCall();
+        // Don't check ringingCall.isRinging() here, since that'll be true
+        // for the WAITING state also.  We only allow the ringer for
+        // regular INCOMING calls.
+        if (DBG) log("- ringingCall state: " + ringingCall.getState());
+        if (ringingCall.getState() == Call.State.INCOMING) {
+            mRinger.ring();
+        }
+    }
+
+    /**
+     * Helper class to play tones through the earpiece (or speaker / BT)
+     * during a call, using the ToneGenerator.
+     *
+     * To use, just instantiate a new InCallTonePlayer
+     * (passing in the TONE_* constant for the tone you want)
+     * and start() it.
+     *
+     * When we're done playing the tone, if the phone is idle at that
+     * point, we'll reset the audio routing and speaker state.
+     * (That means that for tones that get played *after* a call
+     * disconnects, like "busy" or "congestion" or "call ended", you
+     * should NOT call resetAudioStateAfterDisconnect() yourself.
+     * Instead, just start the InCallTonePlayer, which will automatically
+     * defer the resetAudioStateAfterDisconnect() call until the tone
+     * finishes playing.)
+     */
+    private class InCallTonePlayer extends Thread {
+        private int mToneId;
+        private int mState;
+        // The possible tones we can play.
+        public static final int TONE_NONE = 0;
+        public static final int TONE_CALL_WAITING = 1;
+        public static final int TONE_BUSY = 2;
+        public static final int TONE_CONGESTION = 3;
+        public static final int TONE_CALL_ENDED = 4;
+        public static final int TONE_VOICE_PRIVACY = 5;
+        public static final int TONE_REORDER = 6;
+        public static final int TONE_INTERCEPT = 7;
+        public static final int TONE_CDMA_DROP = 8;
+        public static final int TONE_OUT_OF_SERVICE = 9;
+        public static final int TONE_REDIAL = 10;
+        public static final int TONE_OTA_CALL_END = 11;
+        public static final int TONE_RING_BACK = 12;
+        public static final int TONE_UNOBTAINABLE_NUMBER = 13;
+
+        // The tone volume relative to other sounds in the stream
+        static final int TONE_RELATIVE_VOLUME_EMERGENCY = 100;
+        static final int TONE_RELATIVE_VOLUME_HIPRI = 80;
+        static final int TONE_RELATIVE_VOLUME_LOPRI = 50;
+
+        // Buffer time (in msec) to add on to tone timeout value.
+        // Needed mainly when the timeout value for a tone is the
+        // exact duration of the tone itself.
+        static final int TONE_TIMEOUT_BUFFER = 20;
+
+        // The tone state
+        static final int TONE_OFF = 0;
+        static final int TONE_ON = 1;
+        static final int TONE_STOPPED = 2;
+
+        InCallTonePlayer(int toneId) {
+            super();
+            mToneId = toneId;
+            mState = TONE_OFF;
+        }
+
+        @Override
+        public void run() {
+            log("InCallTonePlayer.run(toneId = " + mToneId + ")...");
+
+            int toneType = 0;  // passed to ToneGenerator.startTone()
+            int toneVolume;  // passed to the ToneGenerator constructor
+            int toneLengthMillis;
+            int phoneType = mCM.getFgPhone().getPhoneType();
+
+            switch (mToneId) {
+                case TONE_CALL_WAITING:
+                    toneType = ToneGenerator.TONE_SUP_CALL_WAITING;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    // Call waiting tone is stopped by stopTone() method
+                    toneLengthMillis = Integer.MAX_VALUE - TONE_TIMEOUT_BUFFER;
+                    break;
+                case TONE_BUSY:
+                    if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                        toneType = ToneGenerator.TONE_CDMA_NETWORK_BUSY_ONE_SHOT;
+                        toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
+                        toneLengthMillis = 1000;
+                    } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                            || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                        toneType = ToneGenerator.TONE_SUP_BUSY;
+                        toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                        toneLengthMillis = 4000;
+                    } else {
+                        throw new IllegalStateException("Unexpected phone type: " + phoneType);
+                    }
+                    break;
+                case TONE_CONGESTION:
+                    toneType = ToneGenerator.TONE_SUP_CONGESTION;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    toneLengthMillis = 4000;
+                    break;
+
+                case TONE_CALL_ENDED:
+                    toneType = ToneGenerator.TONE_PROP_PROMPT;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    toneLengthMillis = 200;
+                    break;
+                 case TONE_OTA_CALL_END:
+                    if (mApplication.cdmaOtaConfigData.otaPlaySuccessFailureTone ==
+                            OtaUtils.OTA_PLAY_SUCCESS_FAILURE_TONE_ON) {
+                        toneType = ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD;
+                        toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                        toneLengthMillis = 750;
+                    } else {
+                        toneType = ToneGenerator.TONE_PROP_PROMPT;
+                        toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                        toneLengthMillis = 200;
+                    }
+                    break;
+                case TONE_VOICE_PRIVACY:
+                    toneType = ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    toneLengthMillis = 5000;
+                    break;
+                case TONE_REORDER:
+                    toneType = ToneGenerator.TONE_CDMA_REORDER;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    toneLengthMillis = 4000;
+                    break;
+                case TONE_INTERCEPT:
+                    toneType = ToneGenerator.TONE_CDMA_ABBR_INTERCEPT;
+                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
+                    toneLengthMillis = 500;
+                    break;
+                case TONE_CDMA_DROP:
+                case TONE_OUT_OF_SERVICE:
+                    toneType = ToneGenerator.TONE_CDMA_CALLDROP_LITE;
+                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
+                    toneLengthMillis = 375;
+                    break;
+                case TONE_REDIAL:
+                    toneType = ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE;
+                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
+                    toneLengthMillis = 5000;
+                    break;
+                case TONE_RING_BACK:
+                    toneType = ToneGenerator.TONE_SUP_RINGTONE;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    // Call ring back tone is stopped by stopTone() method
+                    toneLengthMillis = Integer.MAX_VALUE - TONE_TIMEOUT_BUFFER;
+                    break;
+                case TONE_UNOBTAINABLE_NUMBER:
+                    toneType = ToneGenerator.TONE_SUP_ERROR;
+                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
+                    toneLengthMillis = 4000;
+                    break;
+                default:
+                    throw new IllegalArgumentException("Bad toneId: " + mToneId);
+            }
+
+            // If the mToneGenerator creation fails, just continue without it.  It is
+            // a local audio signal, and is not as important.
+            ToneGenerator toneGenerator;
+            try {
+                int stream;
+                if (mBluetoothHeadset != null) {
+                    stream = mBluetoothHeadset.isAudioOn() ? AudioManager.STREAM_BLUETOOTH_SCO:
+                        AudioManager.STREAM_VOICE_CALL;
+                } else {
+                    stream = AudioManager.STREAM_VOICE_CALL;
+                }
+                toneGenerator = new ToneGenerator(stream, toneVolume);
+                // if (DBG) log("- created toneGenerator: " + toneGenerator);
+            } catch (RuntimeException e) {
+                Log.w(LOG_TAG,
+                      "InCallTonePlayer: Exception caught while creating ToneGenerator: " + e);
+                toneGenerator = null;
+            }
+
+            // Using the ToneGenerator (with the CALL_WAITING / BUSY /
+            // CONGESTION tones at least), the ToneGenerator itself knows
+            // the right pattern of tones to play; we do NOT need to
+            // manually start/stop each individual tone, or manually
+            // insert the correct delay between tones.  (We just start it
+            // and let it run for however long we want the tone pattern to
+            // continue.)
+            //
+            // TODO: When we stop the ToneGenerator in the middle of a
+            // "tone pattern", it sounds bad if we cut if off while the
+            // tone is actually playing.  Consider adding API to the
+            // ToneGenerator to say "stop at the next silent part of the
+            // pattern", or simply "play the pattern N times and then
+            // stop."
+            boolean needToStopTone = true;
+            boolean okToPlayTone = false;
+
+            if (toneGenerator != null) {
+                int ringerMode = mAudioManager.getRingerMode();
+                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                    if (toneType == ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD) {
+                        if ((ringerMode != AudioManager.RINGER_MODE_SILENT) &&
+                                (ringerMode != AudioManager.RINGER_MODE_VIBRATE)) {
+                            if (DBG) log("- InCallTonePlayer: start playing call tone=" + toneType);
+                            okToPlayTone = true;
+                            needToStopTone = false;
+                        }
+                    } else if ((toneType == ToneGenerator.TONE_CDMA_NETWORK_BUSY_ONE_SHOT) ||
+                            (toneType == ToneGenerator.TONE_CDMA_REORDER) ||
+                            (toneType == ToneGenerator.TONE_CDMA_ABBR_REORDER) ||
+                            (toneType == ToneGenerator.TONE_CDMA_ABBR_INTERCEPT) ||
+                            (toneType == ToneGenerator.TONE_CDMA_CALLDROP_LITE)) {
+                        if (ringerMode != AudioManager.RINGER_MODE_SILENT) {
+                            if (DBG) log("InCallTonePlayer:playing call fail tone:" + toneType);
+                            okToPlayTone = true;
+                            needToStopTone = false;
+                        }
+                    } else if ((toneType == ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE) ||
+                               (toneType == ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE)) {
+                        if ((ringerMode != AudioManager.RINGER_MODE_SILENT) &&
+                                (ringerMode != AudioManager.RINGER_MODE_VIBRATE)) {
+                            if (DBG) log("InCallTonePlayer:playing tone for toneType=" + toneType);
+                            okToPlayTone = true;
+                            needToStopTone = false;
+                        }
+                    } else { // For the rest of the tones, always OK to play.
+                        okToPlayTone = true;
+                    }
+                } else {  // Not "CDMA"
+                    okToPlayTone = true;
+                }
+
+                synchronized (this) {
+                    if (okToPlayTone && mState != TONE_STOPPED) {
+                        mState = TONE_ON;
+                        toneGenerator.startTone(toneType);
+                        try {
+                            wait(toneLengthMillis + TONE_TIMEOUT_BUFFER);
+                        } catch  (InterruptedException e) {
+                            Log.w(LOG_TAG,
+                                  "InCallTonePlayer stopped: " + e);
+                        }
+                        if (needToStopTone) {
+                            toneGenerator.stopTone();
+                        }
+                    }
+                    // if (DBG) log("- InCallTonePlayer: done playing.");
+                    toneGenerator.release();
+                    mState = TONE_OFF;
+                }
+            }
+
+            // Finally, do the same cleanup we otherwise would have done
+            // in onDisconnect().
+            //
+            // (But watch out: do NOT do this if the phone is in use,
+            // since some of our tones get played *during* a call (like
+            // CALL_WAITING) and we definitely *don't*
+            // want to reset the audio mode / speaker / bluetooth after
+            // playing those!
+            // This call is really here for use with tones that get played
+            // *after* a call disconnects, like "busy" or "congestion" or
+            // "call ended", where the phone has already become idle but
+            // we need to defer the resetAudioStateAfterDisconnect() call
+            // till the tone finishes playing.)
+            if (mCM.getState() == PhoneConstants.State.IDLE) {
+                resetAudioStateAfterDisconnect();
+            }
+        }
+
+        public void stopTone() {
+            synchronized (this) {
+                if (mState == TONE_ON) {
+                    notify();
+                }
+                mState = TONE_STOPPED;
+            }
+        }
+    }
+
+    /**
+     * Displays a notification when the phone receives a DisplayInfo record.
+     */
+    private void onDisplayInfo(AsyncResult r) {
+        // Extract the DisplayInfo String from the message
+        CdmaDisplayInfoRec displayInfoRec = (CdmaDisplayInfoRec)(r.result);
+
+        if (displayInfoRec != null) {
+            String displayInfo = displayInfoRec.alpha;
+            if (DBG) log("onDisplayInfo: displayInfo=" + displayInfo);
+            CdmaDisplayInfo.displayInfoRecord(mApplication, displayInfo);
+
+            // start a 2 second timer
+            sendEmptyMessageDelayed(DISPLAYINFO_NOTIFICATION_DONE,
+                    DISPLAYINFO_NOTIFICATION_TIME);
+        }
+    }
+
+    /**
+     * Helper class to play SignalInfo tones using the ToneGenerator.
+     *
+     * To use, just instantiate a new SignalInfoTonePlayer
+     * (passing in the ToneID constant for the tone you want)
+     * and start() it.
+     */
+    private class SignalInfoTonePlayer extends Thread {
+        private int mToneId;
+
+        SignalInfoTonePlayer(int toneId) {
+            super();
+            mToneId = toneId;
+        }
+
+        @Override
+        public void run() {
+            log("SignalInfoTonePlayer.run(toneId = " + mToneId + ")...");
+
+            if (mSignalInfoToneGenerator != null) {
+                //First stop any ongoing SignalInfo tone
+                mSignalInfoToneGenerator.stopTone();
+
+                //Start playing the new tone if its a valid tone
+                mSignalInfoToneGenerator.startTone(mToneId);
+            }
+        }
+    }
+
+    /**
+     * Plays a tone when the phone receives a SignalInfo record.
+     */
+    private void onSignalInfo(AsyncResult r) {
+        // Signal Info are totally ignored on non-voice-capable devices.
+        if (!PhoneGlobals.sVoiceCapable) {
+            Log.w(LOG_TAG, "Got onSignalInfo() on non-voice-capable device! Ignoring...");
+            return;
+        }
+
+        if (PhoneUtils.isRealIncomingCall(mCM.getFirstActiveRingingCall().getState())) {
+            // Do not start any new SignalInfo tone when Call state is INCOMING
+            // and stop any previous SignalInfo tone which is being played
+            stopSignalInfoTone();
+        } else {
+            // Extract the SignalInfo String from the message
+            CdmaSignalInfoRec signalInfoRec = (CdmaSignalInfoRec)(r.result);
+            // Only proceed if a Signal info is present.
+            if (signalInfoRec != null) {
+                boolean isPresent = signalInfoRec.isPresent;
+                if (DBG) log("onSignalInfo: isPresent=" + isPresent);
+                if (isPresent) {// if tone is valid
+                    int uSignalType = signalInfoRec.signalType;
+                    int uAlertPitch = signalInfoRec.alertPitch;
+                    int uSignal = signalInfoRec.signal;
+
+                    if (DBG) log("onSignalInfo: uSignalType=" + uSignalType + ", uAlertPitch=" +
+                            uAlertPitch + ", uSignal=" + uSignal);
+                    //Map the Signal to a ToneGenerator ToneID only if Signal info is present
+                    int toneID = SignalToneUtil.getAudioToneFromSignalInfo
+                            (uSignalType, uAlertPitch, uSignal);
+
+                    //Create the SignalInfo tone player and pass the ToneID
+                    new SignalInfoTonePlayer(toneID).start();
+                }
+            }
+        }
+    }
+
+    /**
+     * Stops a SignalInfo tone in the following condition
+     * 1 - On receiving a New Ringing Call
+     * 2 - On disconnecting a call
+     * 3 - On answering a Call Waiting Call
+     */
+    /* package */ void stopSignalInfoTone() {
+        if (DBG) log("stopSignalInfoTone: Stopping SignalInfo tone player");
+        new SignalInfoTonePlayer(ToneGenerator.TONE_CDMA_SIGNAL_OFF).start();
+    }
+
+    /**
+     * Plays a Call waiting tone if it is present in the second incoming call.
+     */
+    private void onCdmaCallWaiting(AsyncResult r) {
+        // Remove any previous Call waiting timers in the queue
+        removeMessages(CALLWAITING_CALLERINFO_DISPLAY_DONE);
+        removeMessages(CALLWAITING_ADDCALL_DISABLE_TIMEOUT);
+
+        // Set the Phone Call State to SINGLE_ACTIVE as there is only one connection
+        // else we would not have received Call waiting
+        mApplication.cdmaPhoneCallState.setCurrentCallState(
+                CdmaPhoneCallState.PhoneCallState.SINGLE_ACTIVE);
+
+        // Display the incoming call to the user if the InCallScreen isn't
+        // already in the foreground.
+        if (!mApplication.isShowingCallScreen()) {
+            if (DBG) log("- showing incoming call (CDMA call waiting)...");
+            showIncomingCall();
+        }
+
+        // Start timer for CW display
+        mCallWaitingTimeOut = false;
+        sendEmptyMessageDelayed(CALLWAITING_CALLERINFO_DISPLAY_DONE,
+                CALLWAITING_CALLERINFO_DISPLAY_TIME);
+
+        // Set the mAddCallMenuStateAfterCW state to false
+        mApplication.cdmaPhoneCallState.setAddCallMenuStateAfterCallWaiting(false);
+
+        // Start the timer for disabling "Add Call" menu option
+        sendEmptyMessageDelayed(CALLWAITING_ADDCALL_DISABLE_TIMEOUT,
+                CALLWAITING_ADDCALL_DISABLE_TIME);
+
+        // Extract the Call waiting information
+        CdmaCallWaitingNotification infoCW = (CdmaCallWaitingNotification) r.result;
+        int isPresent = infoCW.isPresent;
+        if (DBG) log("onCdmaCallWaiting: isPresent=" + isPresent);
+        if (isPresent == 1 ) {//'1' if tone is valid
+            int uSignalType = infoCW.signalType;
+            int uAlertPitch = infoCW.alertPitch;
+            int uSignal = infoCW.signal;
+            if (DBG) log("onCdmaCallWaiting: uSignalType=" + uSignalType + ", uAlertPitch="
+                    + uAlertPitch + ", uSignal=" + uSignal);
+            //Map the Signal to a ToneGenerator ToneID only if Signal info is present
+            int toneID =
+                SignalToneUtil.getAudioToneFromSignalInfo(uSignalType, uAlertPitch, uSignal);
+
+            //Create the SignalInfo tone player and pass the ToneID
+            new SignalInfoTonePlayer(toneID).start();
+        }
+    }
+
+    /**
+     * Posts a event causing us to clean up after rejecting (or timing-out) a
+     * CDMA call-waiting call.
+     *
+     * This method is safe to call from any thread.
+     * @see #onCdmaCallWaitingReject()
+     */
+    /* package */ void sendCdmaCallWaitingReject() {
+        sendEmptyMessage(CDMA_CALL_WAITING_REJECT);
+    }
+
+    /**
+     * Performs Call logging based on Timeout or Ignore Call Waiting Call for CDMA,
+     * and finally calls Hangup on the Call Waiting connection.
+     *
+     * This method should be called only from the UI thread.
+     * @see #sendCdmaCallWaitingReject()
+     */
+    private void onCdmaCallWaitingReject() {
+        final Call ringingCall = mCM.getFirstActiveRingingCall();
+
+        // Call waiting timeout scenario
+        if (ringingCall.getState() == Call.State.WAITING) {
+            // Code for perform Call logging and missed call notification
+            Connection c = ringingCall.getLatestConnection();
+
+            if (c != null) {
+                final int callLogType = mCallWaitingTimeOut ?
+                        Calls.MISSED_TYPE : Calls.INCOMING_TYPE;
+
+                // TODO: This callLogType override is not ideal. Connection should be astracted away
+                // at a telephony-phone layer that can understand and edit the callTypes within
+                // the abstraction for CDMA devices.
+                mCallLogger.logCall(c, callLogType);
+
+                final long date = c.getCreateTime();
+                if (callLogType == Calls.MISSED_TYPE) {
+                    // Add missed call notification
+                    showMissedCallNotification(c, date);
+                } else {
+                    // Remove Call waiting 20 second display timer in the queue
+                    removeMessages(CALLWAITING_CALLERINFO_DISPLAY_DONE);
+                }
+
+                // Hangup the RingingCall connection for CW
+                PhoneUtils.hangup(c);
+            }
+
+            //Reset the mCallWaitingTimeOut boolean
+            mCallWaitingTimeOut = false;
+        }
+    }
+
+    /**
+     * Return the private variable mPreviousCdmaCallState.
+     */
+    /* package */ Call.State getPreviousCdmaCallState() {
+        return mPreviousCdmaCallState;
+    }
+
+    /**
+     * Return the private variable mVoicePrivacyState.
+     */
+    /* package */ boolean getVoicePrivacyState() {
+        return mVoicePrivacyState;
+    }
+
+    /**
+     * Return the private variable mIsCdmaRedialCall.
+     */
+    /* package */ boolean getIsCdmaRedialCall() {
+        return mIsCdmaRedialCall;
+    }
+
+    /**
+     * Helper function used to show a missed call notification.
+     */
+    private void showMissedCallNotification(Connection c, final long date) {
+        PhoneUtils.CallerInfoToken info =
+                PhoneUtils.startGetCallerInfo(mApplication, c, this, Long.valueOf(date));
+        if (info != null) {
+            // at this point, we've requested to start a query, but it makes no
+            // sense to log this missed call until the query comes back.
+            if (VDBG) log("showMissedCallNotification: Querying for CallerInfo on missed call...");
+            if (info.isFinal) {
+                // it seems that the query we have actually is up to date.
+                // send the notification then.
+                CallerInfo ci = info.currentInfo;
+
+                // Check number presentation value; if we have a non-allowed presentation,
+                // then display an appropriate presentation string instead as the missed
+                // call.
+                String name = ci.name;
+                String number = ci.phoneNumber;
+                if (ci.numberPresentation == PhoneConstants.PRESENTATION_RESTRICTED) {
+                    name = mApplication.getString(R.string.private_num);
+                } else if (ci.numberPresentation != PhoneConstants.PRESENTATION_ALLOWED) {
+                    name = mApplication.getString(R.string.unknown);
+                } else {
+                    number = PhoneUtils.modifyForSpecialCnapCases(mApplication,
+                            ci, number, ci.numberPresentation);
+                }
+                mApplication.notificationMgr.notifyMissedCall(name, number,
+                        ci.phoneLabel, ci.cachedPhoto, ci.cachedPhotoIcon, date);
+            }
+        } else {
+            // getCallerInfo() can return null in rare cases, like if we weren't
+            // able to get a valid phone number out of the specified Connection.
+            Log.w(LOG_TAG, "showMissedCallNotification: got null CallerInfo for Connection " + c);
+        }
+    }
+
+    /**
+     *  Inner class to handle emergency call tone and vibrator
+     */
+    private class EmergencyTonePlayerVibrator {
+        private final int EMG_VIBRATE_LENGTH = 1000;  // ms.
+        private final int EMG_VIBRATE_PAUSE  = 1000;  // ms.
+        private final long[] mVibratePattern =
+                new long[] { EMG_VIBRATE_LENGTH, EMG_VIBRATE_PAUSE };
+
+        private ToneGenerator mToneGenerator;
+        // We don't rely on getSystemService(Context.VIBRATOR_SERVICE) to make sure this vibrator
+        // object will be isolated from others.
+        private Vibrator mEmgVibrator = new SystemVibrator();
+        private int mInCallVolume;
+
+        /**
+         * constructor
+         */
+        public EmergencyTonePlayerVibrator() {
+        }
+
+        /**
+         * Start the emergency tone or vibrator.
+         */
+        private void start() {
+            if (VDBG) log("call startEmergencyToneOrVibrate.");
+            int ringerMode = mAudioManager.getRingerMode();
+
+            if ((mIsEmergencyToneOn == EMERGENCY_TONE_ALERT) &&
+                    (ringerMode == AudioManager.RINGER_MODE_NORMAL)) {
+                log("EmergencyTonePlayerVibrator.start(): emergency tone...");
+                mToneGenerator = new ToneGenerator (AudioManager.STREAM_VOICE_CALL,
+                        InCallTonePlayer.TONE_RELATIVE_VOLUME_EMERGENCY);
+                if (mToneGenerator != null) {
+                    mInCallVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
+                    mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
+                            mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
+                            0);
+                    mToneGenerator.startTone(ToneGenerator.TONE_CDMA_EMERGENCY_RINGBACK);
+                    mCurrentEmergencyToneState = EMERGENCY_TONE_ALERT;
+                }
+            } else if (mIsEmergencyToneOn == EMERGENCY_TONE_VIBRATE) {
+                log("EmergencyTonePlayerVibrator.start(): emergency vibrate...");
+                if (mEmgVibrator != null) {
+                    mEmgVibrator.vibrate(mVibratePattern, 0);
+                    mCurrentEmergencyToneState = EMERGENCY_TONE_VIBRATE;
+                }
+            }
+        }
+
+        /**
+         * If the emergency tone is active, stop the tone or vibrator accordingly.
+         */
+        private void stop() {
+            if (VDBG) log("call stopEmergencyToneOrVibrate.");
+
+            if ((mCurrentEmergencyToneState == EMERGENCY_TONE_ALERT)
+                    && (mToneGenerator != null)) {
+                mToneGenerator.stopTone();
+                mToneGenerator.release();
+                mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
+                        mInCallVolume,
+                        0);
+            } else if ((mCurrentEmergencyToneState == EMERGENCY_TONE_VIBRATE)
+                    && (mEmgVibrator != null)) {
+                mEmgVibrator.cancel();
+            }
+            mCurrentEmergencyToneState = EMERGENCY_TONE_OFF;
+        }
+    }
+
+     private BluetoothProfile.ServiceListener mBluetoothProfileServiceListener =
+        new BluetoothProfile.ServiceListener() {
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mBluetoothHeadset = (BluetoothHeadset) proxy;
+            if (VDBG) log("- Got BluetoothHeadset: " + mBluetoothHeadset);
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mBluetoothHeadset = null;
+        }
+    };
+
+    private void onRingbackTone(AsyncResult r) {
+        boolean playTone = (Boolean)(r.result);
+
+        if (playTone == true) {
+            // Only play when foreground call is in DIALING or ALERTING.
+            // to prevent a late coming playtone after ALERTING.
+            // Don't play ringback tone if it is in play, otherwise it will cut
+            // the current tone and replay it
+            if (mCM.getActiveFgCallState().isDialing() &&
+                mInCallRingbackTonePlayer == null) {
+                mInCallRingbackTonePlayer = new InCallTonePlayer(InCallTonePlayer.TONE_RING_BACK);
+                mInCallRingbackTonePlayer.start();
+            }
+        } else {
+            if (mInCallRingbackTonePlayer != null) {
+                mInCallRingbackTonePlayer.stopTone();
+                mInCallRingbackTonePlayer = null;
+            }
+        }
+    }
+
+    /**
+     * Toggle mute and unmute requests while keeping the same mute state
+     */
+    private void onResendMute() {
+        boolean muteState = PhoneUtils.getMute();
+        PhoneUtils.setMute(!muteState);
+        PhoneUtils.setMute(muteState);
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CallStateMonitor.java b/src/com/android/phone/CallStateMonitor.java
new file mode 100644
index 0000000..6a03e22
--- /dev/null
+++ b/src/com/android/phone/CallStateMonitor.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+package com.android.phone;
+
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import com.android.internal.telephony.CallManager;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+
+/**
+ * Dedicated Call state monitoring class.  This class communicates directly with
+ * the call manager to listen for call state events and notifies registered
+ * handlers.
+ * It works as an inverse multiplexor for all classes wanted Call State updates
+ * so that there exists only one channel to the telephony layer.
+ *
+ * TODO: Add manual phone state checks (getState(), etc.).
+ */
+class CallStateMonitor extends Handler {
+    private static final String LOG_TAG = CallStateMonitor.class.getSimpleName();
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    // Events from the Phone object:
+    public static final int PHONE_STATE_CHANGED = 1;
+    public static final int PHONE_NEW_RINGING_CONNECTION = 2;
+    public static final int PHONE_DISCONNECT = 3;
+    public static final int PHONE_UNKNOWN_CONNECTION_APPEARED = 4;
+    public static final int PHONE_INCOMING_RING = 5;
+    public static final int PHONE_STATE_DISPLAYINFO = 6;
+    public static final int PHONE_STATE_SIGNALINFO = 7;
+    public static final int PHONE_CDMA_CALL_WAITING = 8;
+    public static final int PHONE_ENHANCED_VP_ON = 9;
+    public static final int PHONE_ENHANCED_VP_OFF = 10;
+    public static final int PHONE_RINGBACK_TONE = 11;
+    public static final int PHONE_RESEND_MUTE = 12;
+
+    // Other events from call manager
+    public static final int EVENT_OTA_PROVISION_CHANGE = 20;
+
+    private CallManager callManager;
+    private ArrayList<Handler> registeredHandlers;
+
+    // Events generated internally:
+    public CallStateMonitor(CallManager callManager) {
+        this.callManager = callManager;
+        registeredHandlers = new ArrayList<Handler>();
+
+        registerForNotifications();
+    }
+
+    /**
+     * Register for call state notifications with the CallManager.
+     */
+    private void registerForNotifications() {
+        callManager.registerForNewRingingConnection(this, PHONE_NEW_RINGING_CONNECTION, null);
+        callManager.registerForPreciseCallStateChanged(this, PHONE_STATE_CHANGED, null);
+        callManager.registerForDisconnect(this, PHONE_DISCONNECT, null);
+        callManager.registerForUnknownConnection(this, PHONE_UNKNOWN_CONNECTION_APPEARED, null);
+        callManager.registerForIncomingRing(this, PHONE_INCOMING_RING, null);
+        callManager.registerForCdmaOtaStatusChange(this, EVENT_OTA_PROVISION_CHANGE, null);
+        callManager.registerForCallWaiting(this, PHONE_CDMA_CALL_WAITING, null);
+        callManager.registerForDisplayInfo(this, PHONE_STATE_DISPLAYINFO, null);
+        callManager.registerForSignalInfo(this, PHONE_STATE_SIGNALINFO, null);
+        callManager.registerForInCallVoicePrivacyOn(this, PHONE_ENHANCED_VP_ON, null);
+        callManager.registerForInCallVoicePrivacyOff(this, PHONE_ENHANCED_VP_OFF, null);
+        callManager.registerForRingbackTone(this, PHONE_RINGBACK_TONE, null);
+        callManager.registerForResendIncallMute(this, PHONE_RESEND_MUTE, null);
+    }
+
+    public void addListener(Handler handler) {
+        if (handler != null && !registeredHandlers.contains(handler)) {
+            registeredHandlers.add(handler);
+        }
+    }
+
+    @Override
+    public void handleMessage(Message msg) {
+        if (DBG) {
+            Log.d(LOG_TAG, "handleMessage(" + msg.what + ")");
+        }
+
+        for (Handler handler : registeredHandlers) {
+            handler.handleMessage(msg);
+        }
+    }
+
+    /**
+     * When radio technology changes, we need to to reregister for all the events which are
+     * all tied to the old radio.
+     */
+    public void updateAfterRadioTechnologyChange() {
+        if (DBG) Log.d(LOG_TAG, "updateCallNotifierRegistrationsAfterRadioTechnologyChange...");
+
+        // Unregister all events from the old obsolete phone
+        callManager.unregisterForNewRingingConnection(this);
+        callManager.unregisterForPreciseCallStateChanged(this);
+        callManager.unregisterForDisconnect(this);
+        callManager.unregisterForUnknownConnection(this);
+        callManager.unregisterForIncomingRing(this);
+        callManager.unregisterForCallWaiting(this);
+        callManager.unregisterForDisplayInfo(this);
+        callManager.unregisterForSignalInfo(this);
+        callManager.unregisterForCdmaOtaStatusChange(this);
+        callManager.unregisterForRingbackTone(this);
+        callManager.unregisterForResendIncallMute(this);
+        callManager.unregisterForInCallVoicePrivacyOn(this);
+        callManager.unregisterForInCallVoicePrivacyOff(this);
+
+        registerForNotifications();
+    }
+
+}
diff --git a/src/com/android/phone/CallTime.java b/src/com/android/phone/CallTime.java
new file mode 100644
index 0000000..92c7972
--- /dev/null
+++ b/src/com/android/phone/CallTime.java
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.Debug;
+import android.os.Handler;
+import android.os.SystemClock;
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.Connection;
+import android.util.Log;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Helper class used to keep track of various "elapsed time" indications
+ * in the Phone app, and also to start and stop tracing / profiling.
+ */
+public class CallTime extends Handler {
+    private static final String LOG_TAG = "PHONE/CallTime";
+    private static final boolean DBG = false;
+    /* package */ static final boolean PROFILE = true;
+
+    private static final int PROFILE_STATE_NONE = 0;
+    private static final int PROFILE_STATE_READY = 1;
+    private static final int PROFILE_STATE_RUNNING = 2;
+
+    private static int sProfileState = PROFILE_STATE_NONE;
+
+    private Call mCall;
+    private long mLastReportedTime;
+    private boolean mTimerRunning;
+    private long mInterval;
+    private PeriodicTimerCallback mTimerCallback;
+    private OnTickListener mListener;
+
+    interface OnTickListener {
+        void onTickForCallTimeElapsed(long timeElapsed);
+    }
+
+    public CallTime(OnTickListener listener) {
+        mListener = listener;
+        mTimerCallback = new PeriodicTimerCallback();
+    }
+
+    /**
+     * Sets the call timer to "active call" mode, where the timer will
+     * periodically update the UI to show how long the specified call
+     * has been active.
+     *
+     * After calling this you should also call reset() and
+     * periodicUpdateTimer() to get the timer started.
+     */
+    /* package */ void setActiveCallMode(Call call) {
+        if (DBG) log("setActiveCallMode(" + call + ")...");
+        mCall = call;
+
+        // How frequently should we update the UI?
+        mInterval = 1000;  // once per second
+    }
+
+    /* package */ void reset() {
+        if (DBG) log("reset()...");
+        mLastReportedTime = SystemClock.uptimeMillis() - mInterval;
+    }
+
+    /* package */ void periodicUpdateTimer() {
+        if (!mTimerRunning) {
+            mTimerRunning = true;
+
+            long now = SystemClock.uptimeMillis();
+            long nextReport = mLastReportedTime + mInterval;
+
+            while (now >= nextReport) {
+                nextReport += mInterval;
+            }
+
+            if (DBG) log("periodicUpdateTimer() @ " + nextReport);
+            postAtTime(mTimerCallback, nextReport);
+            mLastReportedTime = nextReport;
+
+            if (mCall != null) {
+                Call.State state = mCall.getState();
+
+                if (state == Call.State.ACTIVE) {
+                    updateElapsedTime(mCall);
+                }
+            }
+
+            if (PROFILE && isTraceReady()) {
+                startTrace();
+            }
+        } else {
+            if (DBG) log("periodicUpdateTimer: timer already running, bail");
+        }
+    }
+
+    /* package */ void cancelTimer() {
+        if (DBG) log("cancelTimer()...");
+        removeCallbacks(mTimerCallback);
+        mTimerRunning = false;
+    }
+
+    private void updateElapsedTime(Call call) {
+        if (mListener != null) {
+            long duration = getCallDuration(call);
+            mListener.onTickForCallTimeElapsed(duration / 1000);
+        }
+    }
+
+    /**
+     * Returns a "call duration" value for the specified Call, in msec,
+     * suitable for display in the UI.
+     */
+    /* package */ static long getCallDuration(Call call) {
+        long duration = 0;
+        List connections = call.getConnections();
+        int count = connections.size();
+        Connection c;
+
+        if (count == 1) {
+            c = (Connection) connections.get(0);
+            //duration = (state == Call.State.ACTIVE
+            //            ? c.getDurationMillis() : c.getHoldDurationMillis());
+            duration = c.getDurationMillis();
+        } else {
+            for (int i = 0; i < count; i++) {
+                c = (Connection) connections.get(i);
+                //long t = (state == Call.State.ACTIVE
+                //          ? c.getDurationMillis() : c.getHoldDurationMillis());
+                long t = c.getDurationMillis();
+                if (t > duration) {
+                    duration = t;
+                }
+            }
+        }
+
+        if (DBG) log("updateElapsedTime, count=" + count + ", duration=" + duration);
+        return duration;
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, "[CallTime] " + msg);
+    }
+
+    private class PeriodicTimerCallback implements Runnable {
+        PeriodicTimerCallback() {
+
+        }
+
+        public void run() {
+            if (PROFILE && isTraceRunning()) {
+                stopTrace();
+            }
+
+            mTimerRunning = false;
+            periodicUpdateTimer();
+        }
+    }
+
+    static void setTraceReady() {
+        if (sProfileState == PROFILE_STATE_NONE) {
+            sProfileState = PROFILE_STATE_READY;
+            log("trace ready...");
+        } else {
+            log("current trace state = " + sProfileState);
+        }
+    }
+
+    boolean isTraceReady() {
+        return sProfileState == PROFILE_STATE_READY;
+    }
+
+    boolean isTraceRunning() {
+        return sProfileState == PROFILE_STATE_RUNNING;
+    }
+
+    void startTrace() {
+        if (PROFILE & sProfileState == PROFILE_STATE_READY) {
+            // For now, we move away from temp directory in favor of
+            // the application's data directory to store the trace
+            // information (/data/data/com.android.phone).
+            File file = PhoneGlobals.getInstance().getDir ("phoneTrace", Context.MODE_PRIVATE);
+            if (file.exists() == false) {
+                file.mkdirs();
+            }
+            String baseName = file.getPath() + File.separator + "callstate";
+            String dataFile = baseName + ".data";
+            String keyFile = baseName + ".key";
+
+            file = new File(dataFile);
+            if (file.exists() == true) {
+                file.delete();
+            }
+
+            file = new File(keyFile);
+            if (file.exists() == true) {
+                file.delete();
+            }
+
+            sProfileState = PROFILE_STATE_RUNNING;
+            log("startTrace");
+            Debug.startMethodTracing(baseName, 8 * 1024 * 1024);
+        }
+    }
+
+    void stopTrace() {
+        if (PROFILE) {
+            if (sProfileState == PROFILE_STATE_RUNNING) {
+                sProfileState = PROFILE_STATE_NONE;
+                log("stopTrace");
+                Debug.stopMethodTracing();
+            }
+        }
+    }
+}
diff --git a/src/com/android/phone/CallWaitingCheckBoxPreference.java b/src/com/android/phone/CallWaitingCheckBoxPreference.java
new file mode 100644
index 0000000..a2f5c70
--- /dev/null
+++ b/src/com/android/phone/CallWaitingCheckBoxPreference.java
@@ -0,0 +1,134 @@
+package com.android.phone;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+
+import static com.android.phone.TimeConsumingPreferenceActivity.RESPONSE_ERROR;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.CheckBoxPreference;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+
+public class CallWaitingCheckBoxPreference extends CheckBoxPreference {
+    private static final String LOG_TAG = "CallWaitingCheckBoxPreference";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private final MyHandler mHandler = new MyHandler();
+    private final Phone mPhone;
+    private TimeConsumingPreferenceListener mTcpListener;
+
+    public CallWaitingCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        mPhone = PhoneGlobals.getPhone();
+    }
+
+    public CallWaitingCheckBoxPreference(Context context, AttributeSet attrs) {
+        this(context, attrs, com.android.internal.R.attr.checkBoxPreferenceStyle);
+    }
+
+    public CallWaitingCheckBoxPreference(Context context) {
+        this(context, null);
+    }
+
+    /* package */ void init(TimeConsumingPreferenceListener listener, boolean skipReading) {
+        mTcpListener = listener;
+
+        if (!skipReading) {
+            mPhone.getCallWaiting(mHandler.obtainMessage(MyHandler.MESSAGE_GET_CALL_WAITING,
+                    MyHandler.MESSAGE_GET_CALL_WAITING, MyHandler.MESSAGE_GET_CALL_WAITING));
+            if (mTcpListener != null) {
+                mTcpListener.onStarted(this, true);
+            }
+        }
+    }
+
+    @Override
+    protected void onClick() {
+        super.onClick();
+
+        mPhone.setCallWaiting(isChecked(),
+                mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_WAITING));
+        if (mTcpListener != null) {
+            mTcpListener.onStarted(this, false);
+        }
+    }
+
+    private class MyHandler extends Handler {
+        static final int MESSAGE_GET_CALL_WAITING = 0;
+        static final int MESSAGE_SET_CALL_WAITING = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_CALL_WAITING:
+                    handleGetCallWaitingResponse(msg);
+                    break;
+                case MESSAGE_SET_CALL_WAITING:
+                    handleSetCallWaitingResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetCallWaitingResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (mTcpListener != null) {
+                if (msg.arg2 == MESSAGE_SET_CALL_WAITING) {
+                    mTcpListener.onFinished(CallWaitingCheckBoxPreference.this, false);
+                } else {
+                    mTcpListener.onFinished(CallWaitingCheckBoxPreference.this, true);
+                }
+            }
+
+            if (ar.exception != null) {
+                if (DBG) {
+                    Log.d(LOG_TAG, "handleGetCallWaitingResponse: ar.exception=" + ar.exception);
+                }
+                if (mTcpListener != null) {
+                    mTcpListener.onException(CallWaitingCheckBoxPreference.this,
+                            (CommandException)ar.exception);
+                }
+            } else if (ar.userObj instanceof Throwable) {
+                if (mTcpListener != null) {
+                    mTcpListener.onError(CallWaitingCheckBoxPreference.this, RESPONSE_ERROR);
+                }
+            } else {
+                if (DBG) {
+                    Log.d(LOG_TAG, "handleGetCallWaitingResponse: CW state successfully queried.");
+                }
+                int[] cwArray = (int[])ar.result;
+                // If cwArray[0] is = 1, then cwArray[1] must follow,
+                // with the TS 27.007 service class bit vector of services
+                // for which call waiting is enabled.
+                try {
+                    setChecked(((cwArray[0] == 1) && ((cwArray[1] & 0x01) == 0x01)));
+                } catch (ArrayIndexOutOfBoundsException e) {
+                    Log.e(LOG_TAG, "handleGetCallWaitingResponse: improper result: err ="
+                            + e.getMessage());
+                }
+            }
+        }
+
+        private void handleSetCallWaitingResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                if (DBG) {
+                    Log.d(LOG_TAG, "handleSetCallWaitingResponse: ar.exception=" + ar.exception);
+                }
+                //setEnabled(false);
+            }
+            if (DBG) Log.d(LOG_TAG, "handleSetCallWaitingResponse: re get");
+
+            mPhone.getCallWaiting(obtainMessage(MESSAGE_GET_CALL_WAITING,
+                    MESSAGE_SET_CALL_WAITING, MESSAGE_SET_CALL_WAITING, ar.exception));
+        }
+    }
+}
diff --git a/src/com/android/phone/CallerInfoCache.java b/src/com/android/phone/CallerInfoCache.java
new file mode 100644
index 0000000..76f79af
--- /dev/null
+++ b/src/com/android/phone/CallerInfoCache.java
@@ -0,0 +1,337 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.AsyncTask;
+import android.os.PowerManager;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.provider.ContactsContract.CommonDataKinds.Callable;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
+import android.telephony.PhoneNumberUtils;
+import android.util.Log;
+
+import java.util.HashMap;
+import java.util.Map.Entry;
+
+/**
+ * Holds "custom ringtone" and "send to voicemail" information for each contact as a fallback of
+ * contacts database. The cached information is refreshed periodically and used when database
+ * lookup (via ContentResolver) takes longer time than expected.
+ *
+ * The data inside this class shouldn't be treated as "primary"; they may not reflect the
+ * latest information stored in the original database.
+ */
+public class CallerInfoCache {
+    private static final String LOG_TAG = CallerInfoCache.class.getSimpleName();
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    /** This must not be set to true when submitting changes. */
+    private static final boolean VDBG = false;
+
+    /**
+     * Interval used with {@link AlarmManager#setInexactRepeating(int, long, long, PendingIntent)},
+     * which means the actually interval may not be very accurate.
+     */
+    private static final int CACHE_REFRESH_INTERVAL = 8 * 60 * 60 * 1000; // 8 hours in millis.
+
+    public static final int MESSAGE_UPDATE_CACHE = 0;
+
+    // Assuming DATA.DATA1 corresponds to Phone.NUMBER and SipAddress.ADDRESS, we just use
+    // Data columns as much as we can. One exception: because normalized numbers won't be used in
+    // SIP cases, Phone.NORMALIZED_NUMBER is used as is instead of using Data.
+    private static final String[] PROJECTION = new String[] {
+        Data.DATA1,                  // 0
+        Phone.NORMALIZED_NUMBER,     // 1
+        Data.CUSTOM_RINGTONE,        // 2
+        Data.SEND_TO_VOICEMAIL       // 3
+    };
+
+    private static final int INDEX_NUMBER            = 0;
+    private static final int INDEX_NORMALIZED_NUMBER = 1;
+    private static final int INDEX_CUSTOM_RINGTONE   = 2;
+    private static final int INDEX_SEND_TO_VOICEMAIL = 3;
+
+    private static final String SELECTION = "("
+            + "(" + Data.CUSTOM_RINGTONE + " IS NOT NULL OR " + Data.SEND_TO_VOICEMAIL + "=1)"
+            + " AND " + Data.DATA1 + " IS NOT NULL)";
+
+    public static class CacheEntry {
+        public final String customRingtone;
+        public final boolean sendToVoicemail;
+        public CacheEntry(String customRingtone, boolean shouldSendToVoicemail) {
+            this.customRingtone = customRingtone;
+            this.sendToVoicemail = shouldSendToVoicemail;
+        }
+
+        @Override
+        public String toString() {
+            return "ringtone: " + customRingtone + ", " + sendToVoicemail;
+        }
+    }
+
+    private class CacheAsyncTask extends AsyncTask<Void, Void, Void> {
+
+        private PowerManager.WakeLock mWakeLock;
+
+        /**
+         * Call {@link PowerManager.WakeLock#acquire} and call {@link AsyncTask#execute(Object...)},
+         * guaranteeing the lock is held during the asynchronous task.
+         */
+        public void acquireWakeLockAndExecute() {
+            // Prepare a separate partial WakeLock than what PhoneApp has so to avoid
+            // unnecessary conflict.
+            PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+            mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
+            mWakeLock.acquire();
+            execute();
+        }
+
+        @Override
+        protected Void doInBackground(Void... params) {
+            if (DBG) log("Start refreshing cache.");
+            refreshCacheEntry();
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Void result) {
+            if (VDBG) log("CacheAsyncTask#onPostExecute()");
+            super.onPostExecute(result);
+            releaseWakeLock();
+        }
+
+        @Override
+        protected void onCancelled(Void result) {
+            if (VDBG) log("CacheAsyncTask#onCanceled()");
+            super.onCancelled(result);
+            releaseWakeLock();
+        }
+
+        private void releaseWakeLock() {
+            if (mWakeLock != null && mWakeLock.isHeld()) {
+                mWakeLock.release();
+            }
+        }
+    }
+
+    private final Context mContext;
+
+    /**
+     * The mapping from number to CacheEntry.
+     *
+     * The number will be:
+     * - last 7 digits of each "normalized phone number when it is for PSTN phone call, or
+     * - a full SIP address for SIP call
+     *
+     * When cache is being refreshed, this whole object will be replaced with a newer object,
+     * instead of updating elements inside the object.  "volatile" is used to make
+     * {@link #getCacheEntry(String)} access to the newer one every time when the object is
+     * being replaced.
+     */
+    private volatile HashMap<String, CacheEntry> mNumberToEntry;
+
+    /**
+     * Used to remember if the previous task is finished or not. Should be set to null when done.
+     */
+    private CacheAsyncTask mCacheAsyncTask;
+
+    public static CallerInfoCache init(Context context) {
+        if (DBG) log("init()");
+        CallerInfoCache cache = new CallerInfoCache(context);
+        // The first cache should be available ASAP.
+        cache.startAsyncCache();
+        cache.setRepeatingCacheUpdateAlarm();
+        return cache;
+    }
+
+    private CallerInfoCache(Context context) {
+        mContext = context;
+        mNumberToEntry = new HashMap<String, CacheEntry>();
+    }
+
+    /* package */ void startAsyncCache() {
+        if (DBG) log("startAsyncCache");
+
+        if (mCacheAsyncTask != null) {
+            Log.w(LOG_TAG, "Previous cache task is remaining.");
+            mCacheAsyncTask.cancel(true);
+        }
+        mCacheAsyncTask = new CacheAsyncTask();
+        mCacheAsyncTask.acquireWakeLockAndExecute();
+    }
+
+    /**
+     * Set up periodic alarm for cache update.
+     */
+    private void setRepeatingCacheUpdateAlarm() {
+        if (DBG) log("setRepeatingCacheUpdateAlarm");
+
+        Intent intent = new Intent(CallerInfoCacheUpdateReceiver.ACTION_UPDATE_CALLER_INFO_CACHE);
+        intent.setClass(mContext, CallerInfoCacheUpdateReceiver.class);
+        PendingIntent pendingIntent =
+                PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
+        AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+        // We don't need precise timer while this should be power efficient.
+        alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
+                SystemClock.uptimeMillis() + CACHE_REFRESH_INTERVAL,
+                CACHE_REFRESH_INTERVAL, pendingIntent);
+    }
+
+    private void refreshCacheEntry() {
+        if (VDBG) log("refreshCacheEntry() started");
+
+        // There's no way to know which part of the database was updated. Also we don't want
+        // to block incoming calls asking for the cache. So this method just does full query
+        // and replaces the older cache with newer one. To refrain from blocking incoming calls,
+        // it keeps older one as much as it can, and replaces it with newer one inside a very small
+        // synchronized block.
+
+        Cursor cursor = null;
+        try {
+            cursor = mContext.getContentResolver().query(Callable.CONTENT_URI,
+                    PROJECTION, SELECTION, null, null);
+            if (cursor != null) {
+                // We don't want to block real in-coming call, so prepare a completely fresh
+                // cache here again, and replace it with older one.
+                final HashMap<String, CacheEntry> newNumberToEntry =
+                        new HashMap<String, CacheEntry>(cursor.getCount());
+
+                while (cursor.moveToNext()) {
+                    final String number = cursor.getString(INDEX_NUMBER);
+                    String normalizedNumber = cursor.getString(INDEX_NORMALIZED_NUMBER);
+                    if (normalizedNumber == null) {
+                        // There's no guarantee normalized numbers are available every time and
+                        // it may become null sometimes. Try formatting the original number.
+                        normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
+                    }
+                    final String customRingtone = cursor.getString(INDEX_CUSTOM_RINGTONE);
+                    final boolean sendToVoicemail = cursor.getInt(INDEX_SEND_TO_VOICEMAIL) == 1;
+
+                    if (PhoneNumberUtils.isUriNumber(number)) {
+                        // SIP address case
+                        putNewEntryWhenAppropriate(
+                                newNumberToEntry, number, customRingtone, sendToVoicemail);
+                    } else {
+                        // PSTN number case
+                        // Each normalized number may or may not have full content of the number.
+                        // Contacts database may contain +15001234567 while a dialed number may be
+                        // just 5001234567. Also we may have inappropriate country
+                        // code in some cases (e.g. when the location of the device is inconsistent
+                        // with the device's place). So to avoid confusion we just rely on the last
+                        // 7 digits here. It may cause some kind of wrong behavior, which is
+                        // unavoidable anyway in very rare cases..
+                        final int length = normalizedNumber.length();
+                        final String key = length > 7
+                                ? normalizedNumber.substring(length - 7, length)
+                                        : normalizedNumber;
+                        putNewEntryWhenAppropriate(
+                                newNumberToEntry, key, customRingtone, sendToVoicemail);
+                    }
+                }
+
+                if (VDBG) {
+                    Log.d(LOG_TAG, "New cache size: " + newNumberToEntry.size());
+                    for (Entry<String, CacheEntry> entry : newNumberToEntry.entrySet()) {
+                        Log.d(LOG_TAG, "Number: " + entry.getKey() + " -> " + entry.getValue());
+                    }
+                }
+
+                mNumberToEntry = newNumberToEntry;
+
+                if (DBG) {
+                    log("Caching entries are done. Total: " + newNumberToEntry.size());
+                }
+            } else {
+                // Let's just wait for the next refresh..
+                //
+                // If the cursor became null at that exact moment, probably we don't want to
+                // drop old cache. Also the case is fairly rare in usual cases unless acore being
+                // killed, so we don't take care much of this case.
+                Log.w(LOG_TAG, "cursor is null");
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+
+        if (VDBG) log("refreshCacheEntry() ended");
+    }
+
+    private void putNewEntryWhenAppropriate(HashMap<String, CacheEntry> newNumberToEntry,
+            String numberOrSipAddress, String customRingtone, boolean sendToVoicemail) {
+        if (newNumberToEntry.containsKey(numberOrSipAddress)) {
+            // There may be duplicate entries here and we should prioritize
+            // "send-to-voicemail" flag in any case.
+            final CacheEntry entry = newNumberToEntry.get(numberOrSipAddress);
+            if (!entry.sendToVoicemail && sendToVoicemail) {
+                newNumberToEntry.put(numberOrSipAddress,
+                        new CacheEntry(customRingtone, sendToVoicemail));
+            }
+        } else {
+            newNumberToEntry.put(numberOrSipAddress,
+                    new CacheEntry(customRingtone, sendToVoicemail));
+        }
+    }
+
+    /**
+     * Returns CacheEntry for the given number (PSTN number or SIP address).
+     *
+     * @param number OK to be unformatted.
+     * @return CacheEntry to be used. Maybe null if there's no cache here. Note that this may
+     * return null when the cache itself is not ready. BE CAREFUL. (or might be better to throw
+     * an exception)
+     */
+    public CacheEntry getCacheEntry(String number) {
+        if (mNumberToEntry == null) {
+            // Very unusual state. This implies the cache isn't ready during the request, while
+            // it should be prepared on the boot time (i.e. a way before even the first request).
+            Log.w(LOG_TAG, "Fallback cache isn't ready.");
+            return null;
+        }
+
+        CacheEntry entry;
+        if (PhoneNumberUtils.isUriNumber(number)) {
+            if (VDBG) log("Trying to lookup " + number);
+
+            entry = mNumberToEntry.get(number);
+        } else {
+            final String normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
+            final int length = normalizedNumber.length();
+            final String key =
+                    (length > 7 ? normalizedNumber.substring(length - 7, length)
+                            : normalizedNumber);
+            if (VDBG) log("Trying to lookup " + key);
+
+            entry = mNumberToEntry.get(key);
+        }
+        if (VDBG) log("Obtained " + entry);
+        return entry;
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/CallerInfoCacheUpdateReceiver.java b/src/com/android/phone/CallerInfoCacheUpdateReceiver.java
new file mode 100644
index 0000000..c0a2d83
--- /dev/null
+++ b/src/com/android/phone/CallerInfoCacheUpdateReceiver.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.SystemProperties;
+import android.util.Log;
+
+/**
+ * BroadcastReceiver responsible for (periodic) update of {@link CallerInfoCache}.
+ *
+ * This broadcast can be sent from Contacts edit screen, implying relevant settings have changed
+ * and the cache may become obsolete.
+ */
+public class CallerInfoCacheUpdateReceiver extends BroadcastReceiver {
+    private static final String LOG_TAG = CallerInfoCacheUpdateReceiver.class.getSimpleName();
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    public static final String ACTION_UPDATE_CALLER_INFO_CACHE =
+            "com.android.phone.UPDATE_CALLER_INFO_CACHE";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (DBG) log("CallerInfoCacheUpdateReceiver#onReceive(). Intent: " + intent);
+        PhoneGlobals.getInstance().callerInfoCache.startAsyncCache();
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/phone/CarrierLogo.java b/src/com/android/phone/CarrierLogo.java
new file mode 100644
index 0000000..5ee81b8
--- /dev/null
+++ b/src/com/android/phone/CarrierLogo.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Utility class to look up carrier logo resource IDs.
+ */
+public class CarrierLogo {
+    /** This class is never instantiated. */
+    private CarrierLogo() {
+    }
+
+    private static Map<String, Integer> sLogoMap = null;
+
+    private static Map<String, Integer> getLogoMap() {
+        if (sLogoMap == null) {
+            sLogoMap = new HashMap<String, Integer>();
+
+            // TODO: Load up sLogoMap with known carriers, like:
+            // sLogoMap.put("CarrierName",
+            //    Integer.valueOf(R.drawable.mobile_logo_carriername));
+
+            // TODO: ideally, read the mapping from a config file
+            // rather than manually creating it here.
+        }
+
+        return sLogoMap;
+    }
+
+    public static int getLogo(String name) {
+        Integer res = getLogoMap().get(name);
+        if (res != null) {
+            return res.intValue();
+        }
+
+        return -1;
+    }
+}
diff --git a/src/com/android/phone/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
new file mode 100644
index 0000000..8eecd27
--- /dev/null
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+
+import android.content.DialogInterface;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+
+public class CdmaCallOptions extends PreferenceActivity {
+    private static final String LOG_TAG = "CdmaCallOptions";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
+    private CheckBoxPreference mButtonVoicePrivacy;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.cdma_call_privacy);
+
+        mButtonVoicePrivacy = (CheckBoxPreference) findPreference(BUTTON_VP_KEY);
+        if (PhoneGlobals.getPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_CDMA
+                || getResources().getBoolean(R.bool.config_voice_privacy_disable)) {
+            //disable the entire screen
+            getPreferenceScreen().setEnabled(false);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        if (preference.getKey().equals(BUTTON_VP_KEY)) {
+            return true;
+        }
+        return false;
+    }
+
+}
diff --git a/src/com/android/phone/CdmaDisplayInfo.java b/src/com/android/phone/CdmaDisplayInfo.java
new file mode 100644
index 0000000..1a88333
--- /dev/null
+++ b/src/com/android/phone/CdmaDisplayInfo.java
@@ -0,0 +1,86 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.os.SystemProperties;
+import android.util.Log;
+import android.view.WindowManager;
+
+/**
+ * Helper class for displaying the DisplayInfo sent by CDMA network.
+ */
+public class CdmaDisplayInfo {
+    private static final String LOG_TAG = "CdmaDisplayInfo";
+    private static final boolean DBG = (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    /** CDMA DisplayInfo dialog */
+    private static AlertDialog sDisplayInfoDialog = null;
+
+    /**
+     * Handle the DisplayInfo record and display the alert dialog with
+     * the network message.
+     *
+     * @param context context to get strings.
+     * @param infoMsg Text message from Network.
+     */
+    public static void displayInfoRecord(Context context, String infoMsg) {
+
+        if (DBG) log("displayInfoRecord: infoMsg=" + infoMsg);
+
+        if (sDisplayInfoDialog != null) {
+            sDisplayInfoDialog.dismiss();
+        }
+
+        // displaying system alert dialog on the screen instead of
+        // using another activity to display the message.  This
+        // places the message at the forefront of the UI.
+        sDisplayInfoDialog = new AlertDialog.Builder(context)
+                .setIcon(android.R.drawable.ic_dialog_info)
+                .setTitle(context.getText(R.string.network_message))
+                .setMessage(infoMsg)
+                .setCancelable(true)
+                .create();
+
+        sDisplayInfoDialog.getWindow().setType(
+                WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
+        sDisplayInfoDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+        sDisplayInfoDialog.show();
+        PhoneGlobals.getInstance().wakeUpScreen();
+
+    }
+
+    /**
+     * Dismiss the DisplayInfo record
+     */
+    public static void dismissDisplayInfoRecord() {
+
+        if (DBG) log("Dissmissing Display Info Record...");
+
+        if (sDisplayInfoDialog != null) {
+            sDisplayInfoDialog.dismiss();
+            sDisplayInfoDialog = null;
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, "[CdmaDisplayInfo] " + msg);
+    }
+}
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
new file mode 100644
index 0000000..3e3c8b5
--- /dev/null
+++ b/src/com/android/phone/CdmaOptions.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.SystemProperties;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyProperties;
+
+/**
+ * List of Phone-specific settings screens.
+ */
+public class CdmaOptions {
+    private static final String LOG_TAG = "CdmaOptions";
+
+    private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
+    private CdmaSubscriptionListPreference mButtonCdmaSubscription;
+
+    private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
+    private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
+    private static final String BUTTON_CDMA_ACTIVATE_DEVICE_KEY = "cdma_activate_device_key";
+
+    private PreferenceActivity mPrefActivity;
+    private PreferenceScreen mPrefScreen;
+    private Phone mPhone;
+
+    public CdmaOptions(PreferenceActivity prefActivity, PreferenceScreen prefScreen, Phone phone) {
+        mPrefActivity = prefActivity;
+        mPrefScreen = prefScreen;
+        mPhone = phone;
+        create();
+    }
+
+    protected void create() {
+        mPrefActivity.addPreferencesFromResource(R.xml.cdma_options);
+
+        mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference)mPrefScreen
+                .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
+
+        mButtonCdmaSubscription = (CdmaSubscriptionListPreference)mPrefScreen
+                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
+
+        mButtonCdmaSystemSelect.setEnabled(true);
+        if(deviceSupportsNvAndRuim()) {
+            log("Both NV and Ruim supported, ENABLE subscription type selection");
+            mButtonCdmaSubscription.setEnabled(true);
+        } else {
+            log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
+            mPrefScreen.removePreference(mPrefScreen
+                                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY));
+        }
+
+        final boolean voiceCapable = mPrefActivity.getResources().getBoolean(
+                com.android.internal.R.bool.config_voice_capable);
+        final boolean isLTE = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
+        if (voiceCapable || isLTE) {
+            // This option should not be available on voice-capable devices (i.e. regular phones)
+            // and is replaced by the LTE data service item on LTE devices
+            mPrefScreen.removePreference(
+                    mPrefScreen.findPreference(BUTTON_CDMA_ACTIVATE_DEVICE_KEY));
+        }
+    }
+
+    private boolean deviceSupportsNvAndRuim() {
+        // retrieve the list of subscription types supported by device.
+        String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
+        boolean nvSupported = false;
+        boolean ruimSupported = false;
+
+        log("deviceSupportsnvAnRum: prop=" + subscriptionsSupported);
+        if (!TextUtils.isEmpty(subscriptionsSupported)) {
+            // Searches through the comma-separated list for a match for "NV"
+            // and "RUIM" to update nvSupported and ruimSupported.
+            for (String subscriptionType : subscriptionsSupported.split(",")) {
+                subscriptionType = subscriptionType.trim();
+                if (subscriptionType.equalsIgnoreCase("NV")) {
+                    nvSupported = true;
+                }
+                if (subscriptionType.equalsIgnoreCase("RUIM")) {
+                    ruimSupported = true;
+                }
+            }
+        }
+
+        log("deviceSupportsnvAnRum: nvSupported=" + nvSupported +
+                " ruimSupported=" + ruimSupported);
+        return (nvSupported && ruimSupported);
+    }
+
+    public boolean preferenceTreeClick(Preference preference) {
+        if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
+            log("preferenceTreeClick: return BUTTON_CDMA_ROAMING_KEY true");
+            return true;
+        }
+        if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+            log("preferenceTreeClick: return CDMA_SUBSCRIPTION_KEY true");
+            return true;
+        }
+        return false;
+    }
+
+    public void showDialog(Preference preference) {
+        if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
+            mButtonCdmaSystemSelect.showDialog(null);
+        } else if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+            mButtonCdmaSubscription.showDialog(null);
+        }
+    }
+
+    protected void log(String s) {
+        android.util.Log.d(LOG_TAG, s);
+    }
+}
diff --git a/src/com/android/phone/CdmaPhoneCallState.java b/src/com/android/phone/CdmaPhoneCallState.java
new file mode 100644
index 0000000..30ab209
--- /dev/null
+++ b/src/com/android/phone/CdmaPhoneCallState.java
@@ -0,0 +1,155 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+/**
+ * Class to internally keep track of Call states to maintain
+ * information for Call Waiting and 3Way for CDMA instance of Phone App.
+ *
+ * Explanation for PhoneApp's Call states and why it is required:
+ * IDLE - When no call is going on. This is just required as default state to reset the PhoneApp
+ *        call state to when the complete call gets disconnected
+ * SINGLE_ACTIVE - When only single call is active.
+ *        In normal case(on a single call) this state would be similar for FW's state of ACTIVE
+ *        call or phone state of OFFHOOK, but in more complex conditions e.g. when phone is already
+ *        in a CONF_CALL state and user rejects a CW, which basically tells the PhoneApp that the
+ *        Call is back to a single call, the FW's state still would remain ACTIVE or OFFHOOK and
+ *        isGeneric would still be true. At this condition PhoneApp does need to enable the
+ *        "Add Call" menu item and disable the "Swap" and "Merge" options
+ * THRWAY_ACTIVE - When user initiate an outgoing call when already on a call.
+ *        fgCall can have more than one connections from various scenarios (accepting the CW or
+ *        making a 3way call) but once we are in this state and one of the parties drops off,
+ *        when the user originates another call we need to remember this state to update the menu
+ *        items accordingly. FW currently does not differentiate this condition hence PhoneApp
+ *        needs to maintain it.
+ * CONF_CALL - When the user merges two calls or on accepting the Call waiting call.
+ *        This is required cause even though a call might be generic but that does not mean it is
+ *        in conference. We can take the same example mention in the SINGLE_ACTIVE state.
+ *
+ * TODO: Eventually this state information should be maintained by Telephony FW.
+ */
+   public class CdmaPhoneCallState {
+
+        /**
+         * Allowable values for the PhoneCallState.
+         *   IDLE - When no call is going on.
+         *   SINGLE_ACTIVE - When only single call is active
+         *   THRWAY_ACTIVE - When user initiate an outgoing call when already on a call
+         *   CONF_CALL - When the user merges two calls or on accepting the Call waiting call
+         */
+        public enum PhoneCallState {
+            IDLE,
+            SINGLE_ACTIVE,
+            THRWAY_ACTIVE,
+            CONF_CALL
+        }
+
+        // For storing current and previous PhoneCallState's
+        private PhoneCallState mPreviousCallState;
+        private PhoneCallState mCurrentCallState;
+
+        // Boolean to track 3Way display state
+        private boolean mThreeWayCallOrigStateDialing;
+
+        // Flag to indicate if the "Add Call" menu item in an InCallScreen is OK
+        // to be displayed after a Call Waiting call was ignored or timed out
+        private boolean mAddCallMenuStateAfterCW;
+
+        /**
+         * Initialize PhoneCallState related members - constructor
+         */
+        public void CdmaPhoneCallStateInit() {
+            mCurrentCallState = PhoneCallState.IDLE;
+            mPreviousCallState = PhoneCallState.IDLE;
+            mThreeWayCallOrigStateDialing = false;
+            mAddCallMenuStateAfterCW = true;
+        }
+
+        /**
+         * Returns the current call state
+         */
+        public PhoneCallState getCurrentCallState() {
+            return mCurrentCallState;
+        }
+
+        /**
+         * Set current and previous PhoneCallState's
+         */
+        public void setCurrentCallState(PhoneCallState newState) {
+            mPreviousCallState = mCurrentCallState;
+            mCurrentCallState = newState;
+
+            //Reset the 3Way display boolean
+            mThreeWayCallOrigStateDialing = false;
+
+            //Set mAddCallMenuStateAfterCW to true
+            //if the current state is being set to SINGLE_ACTIVE
+            //and previous state was IDLE as we could reach the SINGLE_ACTIVE
+            //from CW ignore too. For all other cases let the timer or
+            //specific calls to setAddCallMenuStateAfterCallWaiting set
+            //mAddCallMenuStateAfterCW.
+            if ((mCurrentCallState == PhoneCallState.SINGLE_ACTIVE)
+                && (mPreviousCallState == PhoneCallState.IDLE)) {
+                mAddCallMenuStateAfterCW = true;
+            }
+        }
+
+        /**
+         * Return 3Way display information
+         */
+        public boolean IsThreeWayCallOrigStateDialing() {
+            return mThreeWayCallOrigStateDialing;
+        }
+
+        /**
+         * Set 3Way display information
+         */
+        public void setThreeWayCallOrigState(boolean newState) {
+            mThreeWayCallOrigStateDialing = newState;
+        }
+
+        /**
+         * Return information for enabling/disabling "Add Call" menu item
+         */
+        public boolean getAddCallMenuStateAfterCallWaiting() {
+            return mAddCallMenuStateAfterCW;
+        }
+
+        /**
+         * Set mAddCallMenuStateAfterCW to enabling/disabling "Add Call" menu item
+         */
+        public void setAddCallMenuStateAfterCallWaiting(boolean newState) {
+            mAddCallMenuStateAfterCW = newState;
+        }
+
+        /**
+         * Return previous PhoneCallState's
+         */
+        public PhoneCallState getPreviousCallState() {
+            return mPreviousCallState;
+        }
+
+        /**
+         * Reset all PhoneCallState
+         */
+        public void resetCdmaPhoneCallState() {
+            mCurrentCallState = PhoneCallState.IDLE;
+            mPreviousCallState = PhoneCallState.IDLE;
+            mThreeWayCallOrigStateDialing = false;
+            mAddCallMenuStateAfterCW = true;
+        }
+   }
diff --git a/src/com/android/phone/CdmaSubscriptionListPreference.java b/src/com/android/phone/CdmaSubscriptionListPreference.java
new file mode 100644
index 0000000..9b96850
--- /dev/null
+++ b/src/com/android/phone/CdmaSubscriptionListPreference.java
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.ListPreference;
+import android.provider.Settings;
+import android.provider.Settings.Secure;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+
+public class CdmaSubscriptionListPreference extends ListPreference {
+
+    private static final String LOG_TAG = "CdmaSubscriptionListPreference";
+
+    // Used for CDMA subscription mode
+    private static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0;
+    private static final int CDMA_SUBSCRIPTION_NV = 1;
+
+    //preferredSubscriptionMode  0 - RUIM/SIM, preferred
+    //                           1 - NV
+    static final int preferredSubscriptionMode = CDMA_SUBSCRIPTION_NV;
+
+    private Phone mPhone;
+    private CdmaSubscriptionButtonHandler mHandler;
+
+    public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        mPhone = PhoneFactory.getDefaultPhone();
+        mHandler = new CdmaSubscriptionButtonHandler();
+        setCurrentCdmaSubscriptionModeValue();
+    }
+
+    private void setCurrentCdmaSubscriptionModeValue() {
+        int cdmaSubscriptionMode = Settings.Global.getInt(mPhone.getContext().getContentResolver(),
+                Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
+        setValue(Integer.toString(cdmaSubscriptionMode));
+    }
+
+    public CdmaSubscriptionListPreference(Context context) {
+        this(context, null);
+    }
+
+    @Override
+    protected void showDialog(Bundle state) {
+        setCurrentCdmaSubscriptionModeValue();
+
+        super.showDialog(state);
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+
+        if (!positiveResult) {
+            //The button was dismissed - no need to set new value
+            return;
+        }
+
+        int buttonCdmaSubscriptionMode = Integer.valueOf(getValue()).intValue();
+        Log.d(LOG_TAG, "Setting new value " + buttonCdmaSubscriptionMode);
+        int statusCdmaSubscriptionMode;
+        switch(buttonCdmaSubscriptionMode) {
+            case CDMA_SUBSCRIPTION_NV:
+                statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_NV;
+                break;
+            case CDMA_SUBSCRIPTION_RUIM_SIM:
+                statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_RUIM_SIM;
+                break;
+            default:
+                statusCdmaSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
+        }
+
+        // Set the CDMA subscription mode, when mode has been successfully changed
+        // handleSetCdmaSubscriptionMode will be invoked and the value saved.
+        mPhone.setCdmaSubscription(statusCdmaSubscriptionMode, mHandler
+                .obtainMessage(CdmaSubscriptionButtonHandler.MESSAGE_SET_CDMA_SUBSCRIPTION,
+                        getValue()));
+
+    }
+
+    private class CdmaSubscriptionButtonHandler extends Handler {
+
+        static final int MESSAGE_SET_CDMA_SUBSCRIPTION = 0;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_SET_CDMA_SUBSCRIPTION:
+                    handleSetCdmaSubscriptionMode(msg);
+                    break;
+            }
+        }
+
+        private void handleSetCdmaSubscriptionMode(Message msg) {
+            mPhone = PhoneFactory.getDefaultPhone();
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception == null) {
+                // Get the original string entered by the user
+                int cdmaSubscriptionMode = Integer.valueOf((String) ar.userObj).intValue();
+                Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        Settings.Global.CDMA_SUBSCRIPTION_MODE,
+                        cdmaSubscriptionMode );
+            } else {
+                Log.e(LOG_TAG, "Setting Cdma subscription source failed");
+            }
+        }
+    }
+}
diff --git a/src/com/android/phone/CdmaSystemSelectListPreference.java b/src/com/android/phone/CdmaSystemSelectListPreference.java
new file mode 100644
index 0000000..d291fd7
--- /dev/null
+++ b/src/com/android/phone/CdmaSystemSelectListPreference.java
@@ -0,0 +1,172 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.ListPreference;
+import android.provider.Settings;
+import android.provider.Settings.Secure;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyProperties;
+
+public class CdmaSystemSelectListPreference extends ListPreference {
+
+    private static final String LOG_TAG = "CdmaRoamingListPreference";
+    private static final boolean DBG = false;
+
+    private Phone mPhone;
+    private MyHandler mHandler = new MyHandler();
+
+    public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        mPhone = PhoneGlobals.getPhone();
+        mHandler = new MyHandler();
+        mPhone.queryCdmaRoamingPreference(
+                mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE));
+    }
+
+    public CdmaSystemSelectListPreference(Context context) {
+        this(context, null);
+    }
+
+    @Override
+    protected void showDialog(Bundle state) {
+        if (Boolean.parseBoolean(
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
+            // In ECM mode do not show selection options
+        } else {
+            super.showDialog(state);
+        }
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+
+        if (positiveResult && (getValue() != null)) {
+            int buttonCdmaRoamingMode = Integer.valueOf(getValue()).intValue();
+            int settingsCdmaRoamingMode =
+                    Settings.Global.getInt(mPhone.getContext().getContentResolver(),
+                    Settings.Global.CDMA_ROAMING_MODE, Phone.CDMA_RM_HOME);
+            if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
+                int statusCdmaRoamingMode;
+                switch(buttonCdmaRoamingMode) {
+                    case Phone.CDMA_RM_ANY:
+                        statusCdmaRoamingMode = Phone.CDMA_RM_ANY;
+                        break;
+                    case Phone.CDMA_RM_HOME:
+                    default:
+                        statusCdmaRoamingMode = Phone.CDMA_RM_HOME;
+                }
+                //Set the Settings.Secure network mode
+                Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        Settings.Global.CDMA_ROAMING_MODE,
+                        buttonCdmaRoamingMode );
+                //Set the roaming preference mode
+                mPhone.setCdmaRoamingPreference(statusCdmaRoamingMode, mHandler
+                        .obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE));
+            }
+        } else {
+            Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
+                    positiveResult, getValue()));
+        }
+    }
+
+    private class MyHandler extends Handler {
+
+        static final int MESSAGE_GET_ROAMING_PREFERENCE = 0;
+        static final int MESSAGE_SET_ROAMING_PREFERENCE = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_ROAMING_PREFERENCE:
+                    handleQueryCdmaRoamingPreference(msg);
+                    break;
+
+                case MESSAGE_SET_ROAMING_PREFERENCE:
+                    handleSetCdmaRoamingPreference(msg);
+                    break;
+            }
+        }
+
+        private void handleQueryCdmaRoamingPreference(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception == null) {
+                int statusCdmaRoamingMode = ((int[])ar.result)[0];
+                int settingsRoamingMode = Settings.Global.getInt(
+                        mPhone.getContext().getContentResolver(),
+                        Settings.Global.CDMA_ROAMING_MODE, Phone.CDMA_RM_HOME);
+                //check that statusCdmaRoamingMode is from an accepted value
+                if (statusCdmaRoamingMode == Phone.CDMA_RM_HOME ||
+                        statusCdmaRoamingMode == Phone.CDMA_RM_ANY ) {
+                    //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
+                    if (statusCdmaRoamingMode != settingsRoamingMode) {
+                        settingsRoamingMode = statusCdmaRoamingMode;
+                        //changes the Settings.Secure accordingly to statusCdmaRoamingMode
+                        Settings.Global.putInt(
+                                mPhone.getContext().getContentResolver(),
+                                Settings.Global.CDMA_ROAMING_MODE,
+                                settingsRoamingMode );
+                    }
+                    //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
+                    setValue(Integer.toString(statusCdmaRoamingMode));
+                }
+                else {
+                    if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
+                    resetCdmaRoamingModeToDefault();
+                }
+            }
+        }
+
+        private void handleSetCdmaRoamingPreference(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if ((ar.exception == null) && (getValue() != null)) {
+                int cdmaRoamingMode = Integer.valueOf(getValue()).intValue();
+                Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        Settings.Global.CDMA_ROAMING_MODE,
+                        cdmaRoamingMode );
+            } else {
+                mPhone.queryCdmaRoamingPreference(obtainMessage(MESSAGE_GET_ROAMING_PREFERENCE));
+            }
+        }
+
+        private void resetCdmaRoamingModeToDefault() {
+            //set the mButtonCdmaRoam
+            setValue(Integer.toString(Phone.CDMA_RM_HOME));
+            //set the Settings.System
+            Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        Settings.Global.CDMA_ROAMING_MODE,
+                        Phone.CDMA_RM_HOME );
+            //Set the Status
+            mPhone.setCdmaRoamingPreference(Phone.CDMA_RM_HOME,
+                    obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE));
+        }
+    }
+
+}
diff --git a/src/com/android/phone/CdmaVoicePrivacyCheckBoxPreference.java b/src/com/android/phone/CdmaVoicePrivacyCheckBoxPreference.java
new file mode 100644
index 0000000..a5ff37e
--- /dev/null
+++ b/src/com/android/phone/CdmaVoicePrivacyCheckBoxPreference.java
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.Phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.CheckBoxPreference;
+import android.util.AttributeSet;
+import android.util.Log;
+
+public class CdmaVoicePrivacyCheckBoxPreference extends CheckBoxPreference {
+    private static final String LOG_TAG = "CdmaVoicePrivacyCheckBoxPreference";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    Phone phone;
+    private MyHandler mHandler = new MyHandler();
+
+    public CdmaVoicePrivacyCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        phone = PhoneGlobals.getPhone();
+        phone.getEnhancedVoicePrivacy(mHandler.obtainMessage(MyHandler.MESSAGE_GET_VP));
+    }
+
+    public CdmaVoicePrivacyCheckBoxPreference(Context context, AttributeSet attrs) {
+        this(context, attrs, com.android.internal.R.attr.checkBoxPreferenceStyle);
+    }
+
+    public CdmaVoicePrivacyCheckBoxPreference(Context context) {
+        this(context, null);
+    }
+
+
+    @Override
+    protected void onClick() {
+        super.onClick();
+
+        phone.enableEnhancedVoicePrivacy(isChecked(),
+                mHandler.obtainMessage(MyHandler.MESSAGE_SET_VP));
+    }
+
+
+
+    private class MyHandler extends Handler {
+        static final int MESSAGE_GET_VP = 0;
+        static final int MESSAGE_SET_VP = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_VP:
+                    handleGetVPResponse(msg);
+                    break;
+                case MESSAGE_SET_VP:
+                    handleSetVPResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetVPResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleGetVPResponse: ar.exception=" + ar.exception);
+                setEnabled(false);
+            } else {
+                if (DBG) Log.d(LOG_TAG, "handleGetVPResponse: VP state successfully queried.");
+                final int enable = ((int[]) ar.result)[0];
+                setChecked(enable != 0);
+
+                android.provider.Settings.Secure.putInt(getContext().getContentResolver(),
+                        android.provider.Settings.Secure.ENHANCED_VOICE_PRIVACY_ENABLED, enable);
+            }
+        }
+
+        private void handleSetVPResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                if (DBG) Log.d(LOG_TAG, "handleSetVPResponse: ar.exception=" + ar.exception);
+            }
+            if (DBG) Log.d(LOG_TAG, "handleSetVPResponse: re get");
+
+            phone.getEnhancedVoicePrivacy(obtainMessage(MESSAGE_GET_VP));
+        }
+    }
+}
diff --git a/src/com/android/phone/CellBroadcastSms.java b/src/com/android/phone/CellBroadcastSms.java
new file mode 100644
index 0000000..7428321
--- /dev/null
+++ b/src/com/android/phone/CellBroadcastSms.java
@@ -0,0 +1,669 @@
+/*
+ * 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.
+ */
+
+
+package com.android.phone;
+
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.preference.PreferenceActivity;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.RILConstants;
+
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+
+/**
+ * List of Phone-specific settings screens.
+ */
+public class CellBroadcastSms extends PreferenceActivity
+        implements Preference.OnPreferenceChangeListener{
+    // debug data
+    private static final String LOG_TAG = "CellBroadcastSms";
+    private static final boolean DBG = false;
+
+    //String keys for preference lookup
+    private static final String BUTTON_ENABLE_DISABLE_BC_SMS_KEY =
+        "button_enable_disable_cell_bc_sms";
+    private static final String LIST_LANGUAGE_KEY =
+        "list_language";
+    private static final String BUTTON_EMERGENCY_BROADCAST_KEY =
+        "button_emergency_broadcast";
+    private static final String BUTTON_ADMINISTRATIVE_KEY =
+        "button_administrative";
+    private static final String BUTTON_MAINTENANCE_KEY =
+        "button_maintenance";
+    private static final String BUTTON_LOCAL_WEATHER_KEY =
+        "button_local_weather";
+    private static final String BUTTON_ATR_KEY =
+        "button_atr";
+    private static final String BUTTON_LAFS_KEY =
+        "button_lafs";
+    private static final String BUTTON_RESTAURANTS_KEY =
+        "button_restaurants";
+    private static final String BUTTON_LODGINGS_KEY =
+        "button_lodgings";
+    private static final String BUTTON_RETAIL_DIRECTORY_KEY =
+        "button_retail_directory";
+    private static final String BUTTON_ADVERTISEMENTS_KEY =
+        "button_advertisements";
+    private static final String BUTTON_STOCK_QUOTES_KEY =
+        "button_stock_quotes";
+    private static final String BUTTON_EO_KEY =
+        "button_eo";
+    private static final String BUTTON_MHH_KEY =
+        "button_mhh";
+    private static final String BUTTON_TECHNOLOGY_NEWS_KEY =
+        "button_technology_news";
+    private static final String BUTTON_MULTI_CATEGORY_KEY =
+        "button_multi_category";
+
+    private static final String BUTTON_LOCAL_GENERAL_NEWS_KEY =
+        "button_local_general_news";
+    private static final String BUTTON_REGIONAL_GENERAL_NEWS_KEY =
+        "button_regional_general_news";
+    private static final String BUTTON_NATIONAL_GENERAL_NEWS_KEY =
+        "button_national_general_news";
+    private static final String BUTTON_INTERNATIONAL_GENERAL_NEWS_KEY =
+        "button_international_general_news";
+
+    private static final String BUTTON_LOCAL_BF_NEWS_KEY =
+        "button_local_bf_news";
+    private static final String BUTTON_REGIONAL_BF_NEWS_KEY =
+        "button_regional_bf_news";
+    private static final String BUTTON_NATIONAL_BF_NEWS_KEY =
+        "button_national_bf_news";
+    private static final String BUTTON_INTERNATIONAL_BF_NEWS_KEY =
+        "button_international_bf_news";
+
+    private static final String BUTTON_LOCAL_SPORTS_NEWS_KEY =
+        "button_local_sports_news";
+    private static final String BUTTON_REGIONAL_SPORTS_NEWS_KEY =
+        "button_regional_sports_news";
+    private static final String BUTTON_NATIONAL_SPORTS_NEWS_KEY =
+        "button_national_sports_news";
+    private static final String BUTTON_INTERNATIONAL_SPORTS_NEWS_KEY =
+        "button_international_sports_news";
+
+    private static final String BUTTON_LOCAL_ENTERTAINMENT_NEWS_KEY =
+        "button_local_entertainment_news";
+    private static final String BUTTON_REGIONAL_ENTERTAINMENT_NEWS_KEY =
+        "button_regional_entertainment_news";
+    private static final String BUTTON_NATIONAL_ENTERTAINMENT_NEWS_KEY =
+        "button_national_entertainment_news";
+    private static final String BUTTON_INTERNATIONAL_ENTERTAINMENT_NEWS_KEY =
+        "button_international_entertainment_news";
+
+    //Class constants
+    //These values are related to the C structs. See the comments in  method
+    //setCbSmsConfig for more information.
+    private static final int NO_OF_SERVICE_CATEGORIES = 31;
+    private static final int NO_OF_INTS_STRUCT_1 = 3;
+    private static final int MAX_LENGTH_RESULT = NO_OF_SERVICE_CATEGORIES * NO_OF_INTS_STRUCT_1 + 1;
+    //Handler keys
+    private static final int MESSAGE_ACTIVATE_CB_SMS = 1;
+    private static final int MESSAGE_GET_CB_SMS_CONFIG = 2;
+    private static final int MESSAGE_SET_CB_SMS_CONFIG = 3;
+
+    //UI objects
+    private CheckBoxPreference mButtonBcSms;
+
+    private ListPreference mListLanguage;
+
+    private CheckBoxPreference mButtonEmergencyBroadcast;
+    private CheckBoxPreference mButtonAdministrative;
+    private CheckBoxPreference mButtonMaintenance;
+    private CheckBoxPreference mButtonLocalWeather;
+    private CheckBoxPreference mButtonAtr;
+    private CheckBoxPreference mButtonLafs;
+    private CheckBoxPreference mButtonRestaurants;
+    private CheckBoxPreference mButtonLodgings;
+    private CheckBoxPreference mButtonRetailDirectory;
+    private CheckBoxPreference mButtonAdvertisements;
+    private CheckBoxPreference mButtonStockQuotes;
+    private CheckBoxPreference mButtonEo;
+    private CheckBoxPreference mButtonMhh;
+    private CheckBoxPreference mButtonTechnologyNews;
+    private CheckBoxPreference mButtonMultiCategory;
+
+    private CheckBoxPreference mButtonLocal1;
+    private CheckBoxPreference mButtonRegional1;
+    private CheckBoxPreference mButtonNational1;
+    private CheckBoxPreference mButtonInternational1;
+
+    private CheckBoxPreference mButtonLocal2;
+    private CheckBoxPreference mButtonRegional2;
+    private CheckBoxPreference mButtonNational2;
+    private CheckBoxPreference mButtonInternational2;
+
+    private CheckBoxPreference mButtonLocal3;
+    private CheckBoxPreference mButtonRegional3;
+    private CheckBoxPreference mButtonNational3;
+    private CheckBoxPreference mButtonInternational3;
+
+    private CheckBoxPreference mButtonLocal4;
+    private CheckBoxPreference mButtonRegional4;
+    private CheckBoxPreference mButtonNational4;
+    private CheckBoxPreference mButtonInternational4;
+
+
+    //Member variables
+    private Phone mPhone;
+    private MyHandler mHandler;
+
+    /**
+     * Invoked on each preference click in this hierarchy, overrides
+     * PreferenceActivity's implementation.  Used to make sure we track the
+     * preference click events.
+     */
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
+            Preference preference) {
+        if (preference == mButtonBcSms) {
+            if (DBG) Log.d(LOG_TAG, "onPreferenceTreeClick: preference == mButtonBcSms.");
+            if(mButtonBcSms.isChecked()) {
+                mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED,
+                        Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS));
+                android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS,
+                        RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED);
+                enableDisableAllCbConfigButtons(true);
+            } else {
+                mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED,
+                        Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS));
+                android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS,
+                        RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED);
+                enableDisableAllCbConfigButtons(false);
+            }
+        } else if (preference == mListLanguage) {
+            //Do nothing here, because this click will be handled in onPreferenceChange
+        } else if (preference == mButtonEmergencyBroadcast) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonEmergencyBroadcast.isChecked(), 1);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(
+                    mButtonEmergencyBroadcast.isChecked(), 1);
+        } else if (preference == mButtonAdministrative) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonAdministrative.isChecked(), 2);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdministrative.isChecked(), 2);
+        } else if (preference == mButtonMaintenance) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonMaintenance.isChecked(), 3);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMaintenance.isChecked(), 3);
+        } else if (preference == mButtonLocalWeather) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonLocalWeather.isChecked(), 20);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocalWeather.isChecked(), 20);
+        } else if (preference == mButtonAtr) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonAtr.isChecked(), 21);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAtr.isChecked(), 21);
+        } else if (preference == mButtonLafs) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLafs.isChecked(), 22);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLafs.isChecked(), 22);
+        } else if (preference == mButtonRestaurants) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRestaurants.isChecked(), 23);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRestaurants.isChecked(), 23);
+        } else if (preference == mButtonLodgings) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLodgings.isChecked(), 24);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLodgings.isChecked(), 24);
+        } else if (preference == mButtonRetailDirectory) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRetailDirectory.isChecked(), 25);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRetailDirectory.isChecked(), 25);
+        } else if (preference == mButtonAdvertisements) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonAdvertisements.isChecked(), 26);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdvertisements.isChecked(), 26);
+        } else if (preference == mButtonStockQuotes) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonStockQuotes.isChecked(), 27);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonStockQuotes.isChecked(), 27);
+        } else if (preference == mButtonEo) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonEo.isChecked(), 28);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonEo.isChecked(), 28);
+        } else if (preference == mButtonMhh) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonMhh.isChecked(), 29);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMhh.isChecked(), 29);
+        } else if (preference == mButtonTechnologyNews) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonTechnologyNews.isChecked(), 30);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonTechnologyNews.isChecked(), 30);
+        } else if (preference == mButtonMultiCategory) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonMultiCategory.isChecked(), 31);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMultiCategory.isChecked(), 31);
+        } else if (preference == mButtonLocal1) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal1.isChecked(), 4);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal1.isChecked(), 4);
+        } else if (preference == mButtonRegional1) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRegional1.isChecked(), 5);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional1.isChecked(), 5);
+        } else if (preference == mButtonNational1) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonNational1.isChecked(), 6);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational1.isChecked(), 6);
+        } else if (preference == mButtonInternational1) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonInternational1.isChecked(), 7);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational1.isChecked(), 7);
+        } else if (preference == mButtonLocal2) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal2.isChecked(), 8);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal2.isChecked(), 8);
+        } else if (preference == mButtonRegional2) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRegional2.isChecked(), 9);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional2.isChecked(), 9);
+        } else if (preference == mButtonNational2) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonNational2.isChecked(), 10);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational2.isChecked(), 10);
+        } else if (preference == mButtonInternational2) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonInternational2.isChecked(), 11);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational2.isChecked(), 11);
+        } else if (preference == mButtonLocal3) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal3.isChecked(), 12);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal3.isChecked(), 12);
+        } else if (preference == mButtonRegional3) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRegional3.isChecked(), 13);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional3.isChecked(), 13);
+        } else if (preference == mButtonNational3) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonNational3.isChecked(), 14);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational3.isChecked(), 14);
+        } else if (preference == mButtonInternational3) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonInternational3.isChecked(), 15);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational3.isChecked(), 15);
+        } else if (preference == mButtonLocal4) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal4.isChecked(), 16);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal4.isChecked(), 16);
+        } else if (preference == mButtonRegional4) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonRegional4.isChecked(), 17);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional4.isChecked(), 17);
+        } else if (preference == mButtonNational4) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonNational4.isChecked(), 18);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational4.isChecked(), 18);
+        } else if (preference == mButtonInternational4) {
+            CellBroadcastSmsConfig.setConfigDataCompleteBSelected(
+                    mButtonInternational4.isChecked(), 19);
+            CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational4.isChecked(), 19);
+        } else {
+            preferenceScreen.setEnabled(false);
+            return false;
+        }
+
+        return true;
+    }
+
+    public boolean onPreferenceChange(Preference preference, Object objValue) {
+        if (preference == mListLanguage) {
+            // set the new language to the array which will be transmitted later
+            CellBroadcastSmsConfig.setConfigDataCompleteLanguage(
+                    mListLanguage.findIndexOfValue((String) objValue) + 1);
+        }
+
+        // always let the preference setting proceed.
+        return true;
+    }
+
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.cell_broadcast_sms);
+
+        mPhone = PhoneGlobals.getPhone();
+        mHandler = new MyHandler();
+
+        PreferenceScreen prefSet = getPreferenceScreen();
+
+        mButtonBcSms = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_ENABLE_DISABLE_BC_SMS_KEY);
+        mListLanguage = (ListPreference) prefSet.findPreference(
+                LIST_LANGUAGE_KEY);
+        // set the listener for the language list preference
+        mListLanguage.setOnPreferenceChangeListener(this);
+        mButtonEmergencyBroadcast = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_EMERGENCY_BROADCAST_KEY);
+        mButtonAdministrative = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_ADMINISTRATIVE_KEY);
+        mButtonMaintenance = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_MAINTENANCE_KEY);
+        mButtonLocalWeather = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LOCAL_WEATHER_KEY);
+        mButtonAtr = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_ATR_KEY);
+        mButtonLafs = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LAFS_KEY);
+        mButtonRestaurants = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_RESTAURANTS_KEY);
+        mButtonLodgings = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LODGINGS_KEY);
+        mButtonRetailDirectory = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_RETAIL_DIRECTORY_KEY);
+        mButtonAdvertisements = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_ADVERTISEMENTS_KEY);
+        mButtonStockQuotes = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_STOCK_QUOTES_KEY);
+        mButtonEo = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_EO_KEY);
+        mButtonMhh = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_MHH_KEY);
+        mButtonTechnologyNews = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_TECHNOLOGY_NEWS_KEY);
+        mButtonMultiCategory = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_MULTI_CATEGORY_KEY);
+
+        mButtonLocal1 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LOCAL_GENERAL_NEWS_KEY);
+        mButtonRegional1 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_REGIONAL_GENERAL_NEWS_KEY);
+        mButtonNational1 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_NATIONAL_GENERAL_NEWS_KEY);
+        mButtonInternational1 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_INTERNATIONAL_GENERAL_NEWS_KEY);
+
+        mButtonLocal2 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LOCAL_BF_NEWS_KEY);
+        mButtonRegional2 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_REGIONAL_BF_NEWS_KEY);
+        mButtonNational2 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_NATIONAL_BF_NEWS_KEY);
+        mButtonInternational2 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_INTERNATIONAL_BF_NEWS_KEY);
+
+        mButtonLocal3 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LOCAL_SPORTS_NEWS_KEY);
+        mButtonRegional3 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_REGIONAL_SPORTS_NEWS_KEY);
+        mButtonNational3 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_NATIONAL_SPORTS_NEWS_KEY);
+        mButtonInternational3 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_INTERNATIONAL_SPORTS_NEWS_KEY);
+
+        mButtonLocal4 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_LOCAL_ENTERTAINMENT_NEWS_KEY);
+        mButtonRegional4 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_REGIONAL_ENTERTAINMENT_NEWS_KEY);
+        mButtonNational4 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_NATIONAL_ENTERTAINMENT_NEWS_KEY);
+        mButtonInternational4 = (CheckBoxPreference) prefSet.findPreference(
+                BUTTON_INTERNATIONAL_ENTERTAINMENT_NEWS_KEY);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        getPreferenceScreen().setEnabled(true);
+
+        int settingCbSms = android.provider.Settings.Global.getInt(
+                mPhone.getContext().getContentResolver(),
+                android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS,
+                RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED);
+        mButtonBcSms.setChecked(settingCbSms == RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED);
+
+        if(mButtonBcSms.isChecked()) {
+            enableDisableAllCbConfigButtons(true);
+        } else {
+            enableDisableAllCbConfigButtons(false);
+        }
+
+        mPhone.getCellBroadcastSmsConfig(Message.obtain(mHandler, MESSAGE_GET_CB_SMS_CONFIG));
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+
+            CellBroadcastSmsConfig.setCbSmsNoOfStructs(NO_OF_SERVICE_CATEGORIES);
+
+            mPhone.setCellBroadcastSmsConfig(CellBroadcastSmsConfig.getCbSmsAllValues(),
+                    Message.obtain(mHandler, MESSAGE_SET_CB_SMS_CONFIG));
+        }
+
+    private void enableDisableAllCbConfigButtons(boolean enable) {
+        mButtonEmergencyBroadcast.setEnabled(enable);
+        mListLanguage.setEnabled(enable);
+        mButtonAdministrative.setEnabled(enable);
+        mButtonMaintenance.setEnabled(enable);
+        mButtonLocalWeather.setEnabled(enable);
+        mButtonAtr.setEnabled(enable);
+        mButtonLafs.setEnabled(enable);
+        mButtonRestaurants.setEnabled(enable);
+        mButtonLodgings.setEnabled(enable);
+        mButtonRetailDirectory.setEnabled(enable);
+        mButtonAdvertisements.setEnabled(enable);
+        mButtonStockQuotes.setEnabled(enable);
+        mButtonEo.setEnabled(enable);
+        mButtonMhh.setEnabled(enable);
+        mButtonTechnologyNews.setEnabled(enable);
+        mButtonMultiCategory.setEnabled(enable);
+
+        mButtonLocal1.setEnabled(enable);
+        mButtonRegional1.setEnabled(enable);
+        mButtonNational1.setEnabled(enable);
+        mButtonInternational1.setEnabled(enable);
+
+        mButtonLocal2.setEnabled(enable);
+        mButtonRegional2.setEnabled(enable);
+        mButtonNational2.setEnabled(enable);
+        mButtonInternational2.setEnabled(enable);
+
+        mButtonLocal3.setEnabled(enable);
+        mButtonRegional3.setEnabled(enable);
+        mButtonNational3.setEnabled(enable);
+        mButtonInternational3.setEnabled(enable);
+
+        mButtonLocal4.setEnabled(enable);
+        mButtonRegional4.setEnabled(enable);
+        mButtonNational4.setEnabled(enable);
+        mButtonInternational4.setEnabled(enable);
+    }
+
+    private void setAllCbConfigButtons(int[] configArray) {
+        //These buttons are in a well defined sequence. If you want to change it,
+        //be sure to map the buttons to their corresponding slot in the configArray !
+        mButtonEmergencyBroadcast.setChecked(configArray[1] != 0);
+        //subtract 1, because the values are handled in an array which starts with 0 and not with 1
+        mListLanguage.setValueIndex(CellBroadcastSmsConfig.getConfigDataLanguage() - 1);
+        mButtonAdministrative.setChecked(configArray[2] != 0);
+        mButtonMaintenance.setChecked(configArray[3] != 0);
+        mButtonLocalWeather.setChecked(configArray[20] != 0);
+        mButtonAtr.setChecked(configArray[21] != 0);
+        mButtonLafs.setChecked(configArray[22] != 0);
+        mButtonRestaurants.setChecked(configArray[23] != 0);
+        mButtonLodgings.setChecked(configArray[24] != 0);
+        mButtonRetailDirectory.setChecked(configArray[25] != 0);
+        mButtonAdvertisements.setChecked(configArray[26] != 0);
+        mButtonStockQuotes.setChecked(configArray[27] != 0);
+        mButtonEo.setChecked(configArray[28] != 0);
+        mButtonMhh.setChecked(configArray[29] != 0);
+        mButtonTechnologyNews.setChecked(configArray[30] != 0);
+        mButtonMultiCategory.setChecked(configArray[31] != 0);
+
+        mButtonLocal1.setChecked(configArray[4] != 0);
+        mButtonRegional1.setChecked(configArray[5] != 0);
+        mButtonNational1.setChecked(configArray[6] != 0);
+        mButtonInternational1.setChecked(configArray[7] != 0);
+
+        mButtonLocal2.setChecked(configArray[8] != 0);
+        mButtonRegional2.setChecked(configArray[9] != 0);
+        mButtonNational2.setChecked(configArray[10] != 0);
+        mButtonInternational2.setChecked(configArray[11] != 0);
+
+        mButtonLocal3.setChecked(configArray[12] != 0);
+        mButtonRegional3.setChecked(configArray[13] != 0);
+        mButtonNational3.setChecked(configArray[14] != 0);
+        mButtonInternational3.setChecked(configArray[15] != 0);
+
+        mButtonLocal4.setChecked(configArray[16] != 0);
+        mButtonRegional4.setChecked(configArray[17] != 0);
+        mButtonNational4.setChecked(configArray[18] != 0);
+        mButtonInternational4.setChecked(configArray[19] != 0);
+    }
+
+    private class MyHandler extends Handler {
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+            case MESSAGE_ACTIVATE_CB_SMS:
+                //Only a log message here, because the received response is always null
+                if (DBG) Log.d(LOG_TAG, "Cell Broadcast SMS enabled/disabled.");
+                break;
+            case MESSAGE_GET_CB_SMS_CONFIG:
+                int result[] = (int[])((AsyncResult)msg.obj).result;
+
+                // check if the actual service categoties table size on the NV is '0'
+                if (result[0] == 0) {
+                    result[0] = NO_OF_SERVICE_CATEGORIES;
+
+                    mButtonBcSms.setChecked(false);
+                    mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED,
+                            Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS));
+                    android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                            android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS,
+                            RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED);
+                    enableDisableAllCbConfigButtons(false);
+                }
+
+                CellBroadcastSmsConfig.setCbSmsConfig(result);
+                setAllCbConfigButtons(CellBroadcastSmsConfig.getCbSmsBselectedValues());
+
+                break;
+            case MESSAGE_SET_CB_SMS_CONFIG:
+                //Only a log message here, because the received response is always null
+                if (DBG) Log.d(LOG_TAG, "Set Cell Broadcast SMS values.");
+                break;
+            default:
+                Log.e(LOG_TAG, "Error! Unhandled message in CellBroadcastSms.java. Message: "
+                        + msg.what);
+            break;
+            }
+        }
+    }
+
+    private static final class CellBroadcastSmsConfig {
+
+        //The values in this array are stored in a particular order. This order
+        //is calculated in the setCbSmsConfig method of this class.
+        //For more information see comments below...
+        //NO_OF_SERVICE_CATEGORIES +1 is used, because we will leave the first array entry 0
+        private static int mBSelected[] = new int[NO_OF_SERVICE_CATEGORIES + 1];
+        private static int mConfigDataComplete[] = new int[MAX_LENGTH_RESULT];
+
+        private static void setCbSmsConfig(int[] configData) {
+            if(configData == null) {
+                Log.e(LOG_TAG, "Error! No cell broadcast service categories returned.");
+                return;
+            }
+
+            if(configData[0] > MAX_LENGTH_RESULT) {
+                Log.e(LOG_TAG, "Error! Wrong number of service categories returned from RIL");
+                return;
+            }
+
+            //The required config values for broadcast SMS are stored in a C struct:
+            //
+            //  typedef struct {
+            //      int size;
+            //      RIL_CDMA_BcServiceInfo *entries;
+            //  } RIL_CDMA_BcSMSConfig;
+            //
+            //  typedef struct {
+            //      int uServiceCategory;
+            //      int uLanguage;
+            //      unsigned char bSelected;
+            //  } RIL_CDMA_BcServiceInfo;
+            //
+            // This means, that we have to ignore the first value and check every
+            // 3rd value starting with the 2nd of all. This value indicates, where we
+            // will store the appropriate bSelected value, which is 2 values behind it.
+            for(int i = 1; i < configData.length; i += NO_OF_INTS_STRUCT_1) {
+                mBSelected[configData[i]] = configData[i +2];
+            }
+
+            //Store all values in an extra array
+            mConfigDataComplete = configData;
+        }
+
+        private static void setCbSmsBSelectedValue(boolean value, int pos) {
+            if(pos < mBSelected.length) {
+                mBSelected[pos] = (value == true ? 1 : 0);
+            } else {
+                Log.e(LOG_TAG,"Error! Invalid value position.");
+            }
+        }
+
+        private static int[] getCbSmsBselectedValues() {
+            return(mBSelected);
+        }
+
+        // TODO: Change the return value to a RIL_BroadcastSMSConfig
+        private static int[] getCbSmsAllValues() {
+            return(mConfigDataComplete);
+        }
+
+        private static void setCbSmsNoOfStructs(int value) {
+            //Sets the size parameter, which contains the number of structs
+            //that will be transmitted
+            mConfigDataComplete[0] = value;
+        }
+
+        private static void setConfigDataCompleteBSelected(boolean value, int serviceCategory) {
+            //Sets the bSelected value for a specific serviceCategory
+            for(int i = 1; i < mConfigDataComplete.length; i += NO_OF_INTS_STRUCT_1) {
+                if(mConfigDataComplete[i] == serviceCategory) {
+                    mConfigDataComplete[i + 2] = value == true ? 1 : 0;
+                    break;
+                }
+            }
+        }
+
+        private static void setConfigDataCompleteLanguage(int language) {
+            //It is only possible to set the same language for all entries
+            for(int i = 2; i < mConfigDataComplete.length; i += NO_OF_INTS_STRUCT_1) {
+                mConfigDataComplete[i] = language;
+            }
+        }
+
+        private static int getConfigDataLanguage() {
+            int language = mConfigDataComplete[2];
+            //2 is the language value of the first entry
+            //It is only possible to set the same language for all entries
+            if (language < 1 || language > 7) {
+                Log.e(LOG_TAG, "Error! Wrong language returned from RIL...defaulting to 1, english");
+                return 1;
+            }
+            else {
+                return language;
+            }
+        }
+    }
+}
diff --git a/src/com/android/phone/ChangeIccPinScreen.java b/src/com/android/phone/ChangeIccPinScreen.java
new file mode 100644
index 0000000..70bf431
--- /dev/null
+++ b/src/com/android/phone/ChangeIccPinScreen.java
@@ -0,0 +1,306 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.method.DigitsKeyListener;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.IccCard;
+import com.android.internal.telephony.Phone;
+
+/**
+ * "Change ICC PIN" UI for the Phone app.
+ */
+public class ChangeIccPinScreen extends Activity {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    private static final int EVENT_PIN_CHANGED = 100;
+    
+    private enum EntryState {
+        ES_PIN,
+        ES_PUK
+    }
+    
+    private EntryState mState;
+
+    private static final int NO_ERROR = 0;
+    private static final int PIN_MISMATCH = 1;
+    private static final int PIN_INVALID_LENGTH = 2;
+
+    private static final int MIN_PIN_LENGTH = 4;
+    private static final int MAX_PIN_LENGTH = 8;
+
+    private Phone mPhone;
+    private boolean mChangePin2;
+    private TextView mBadPinError;
+    private TextView mMismatchError;
+    private EditText mOldPin;
+    private EditText mNewPin1;
+    private EditText mNewPin2;
+    private EditText mPUKCode;
+    private Button mButton;
+    private Button mPUKSubmit;
+    private ScrollView mScrollView;
+
+    private LinearLayout mIccPUKPanel;
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case EVENT_PIN_CHANGED:
+                    AsyncResult ar = (AsyncResult) msg.obj;
+                    handleResult(ar);
+                    break;
+            }
+
+            return;
+        }
+    };
+
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        mPhone = PhoneGlobals.getPhone();
+
+        resolveIntent();
+
+        setContentView(R.layout.change_sim_pin_screen);
+
+        mOldPin = (EditText) findViewById(R.id.old_pin);
+        mOldPin.setKeyListener(DigitsKeyListener.getInstance());
+        mOldPin.setMovementMethod(null);
+        mOldPin.setOnClickListener(mClicked);
+
+        mNewPin1 = (EditText) findViewById(R.id.new_pin1);
+        mNewPin1.setKeyListener(DigitsKeyListener.getInstance());
+        mNewPin1.setMovementMethod(null);
+        mNewPin1.setOnClickListener(mClicked);
+
+        mNewPin2 = (EditText) findViewById(R.id.new_pin2);
+        mNewPin2.setKeyListener(DigitsKeyListener.getInstance());
+        mNewPin2.setMovementMethod(null);
+        mNewPin2.setOnClickListener(mClicked);
+
+        mBadPinError = (TextView) findViewById(R.id.bad_pin);
+        mMismatchError = (TextView) findViewById(R.id.mismatch);
+
+        mButton = (Button) findViewById(R.id.button);
+        mButton.setOnClickListener(mClicked);
+
+        mScrollView = (ScrollView) findViewById(R.id.scroll);
+        
+        mPUKCode = (EditText) findViewById(R.id.puk_code);
+        mPUKCode.setKeyListener(DigitsKeyListener.getInstance());
+        mPUKCode.setMovementMethod(null);
+        mPUKCode.setOnClickListener(mClicked);
+        
+        mPUKSubmit = (Button) findViewById(R.id.puk_submit);
+        mPUKSubmit.setOnClickListener(mClicked);
+
+        mIccPUKPanel = (LinearLayout) findViewById(R.id.puk_panel);
+
+        int id = mChangePin2 ? R.string.change_pin2 : R.string.change_pin;
+        setTitle(getResources().getText(id));
+        
+        mState = EntryState.ES_PIN;
+    }
+
+    private void resolveIntent() {
+        Intent intent = getIntent();
+        mChangePin2 = intent.getBooleanExtra("pin2", mChangePin2);
+    }
+
+    private void reset() {
+        mScrollView.scrollTo(0, 0);
+        mBadPinError.setVisibility(View.GONE);
+        mMismatchError.setVisibility(View.GONE);
+    }
+
+    private int validateNewPin(String p1, String p2) {
+        if (p1 == null) {
+            return PIN_INVALID_LENGTH;
+        }
+
+        if (!p1.equals(p2)) {
+            return PIN_MISMATCH;
+        }
+
+        int len1 = p1.length();
+
+        if (len1 < MIN_PIN_LENGTH || len1 > MAX_PIN_LENGTH) {
+            return PIN_INVALID_LENGTH;
+        }
+
+        return NO_ERROR;
+    }
+
+    private View.OnClickListener mClicked = new View.OnClickListener() {
+        public void onClick(View v) {
+            if (v == mOldPin) {
+                mNewPin1.requestFocus();
+            } else if (v == mNewPin1) {
+                mNewPin2.requestFocus();
+            } else if (v == mNewPin2) {
+                mButton.requestFocus();
+            } else if (v == mButton) {
+                IccCard iccCardInterface = mPhone.getIccCard();
+                if (iccCardInterface != null) {
+                    String oldPin = mOldPin.getText().toString();
+                    String newPin1 = mNewPin1.getText().toString();
+                    String newPin2 = mNewPin2.getText().toString();
+
+                    int error = validateNewPin(newPin1, newPin2);
+
+                    switch (error) {
+                        case PIN_INVALID_LENGTH:
+                        case PIN_MISMATCH:
+                            mNewPin1.getText().clear();
+                            mNewPin2.getText().clear();
+                            mMismatchError.setVisibility(View.VISIBLE);
+
+                            Resources r = getResources();
+                            CharSequence text;
+
+                            if (error == PIN_MISMATCH) {
+                                text = r.getString(R.string.mismatchPin);
+                            } else {
+                                text = r.getString(R.string.invalidPin);
+                            }
+
+                            mMismatchError.setText(text);
+                            break;
+
+                        default:
+                            Message callBack = Message.obtain(mHandler,
+                                    EVENT_PIN_CHANGED);
+
+                            if (DBG) log("change pin attempt: old=" + oldPin +
+                                    ", newPin=" + newPin1);
+
+                            reset();
+
+                            if (mChangePin2) {
+                                iccCardInterface.changeIccFdnPassword(oldPin,
+                                        newPin1, callBack);
+                            } else {
+                                iccCardInterface.changeIccLockPassword(oldPin,
+                                        newPin1, callBack);
+                            }
+
+                            // TODO: show progress panel
+                    }
+                }
+            } else if (v == mPUKCode) {
+                mPUKSubmit.requestFocus();
+            } else if (v == mPUKSubmit) {
+                mPhone.getIccCard().supplyPuk2(mPUKCode.getText().toString(), 
+                        mNewPin1.getText().toString(), 
+                        Message.obtain(mHandler, EVENT_PIN_CHANGED));
+            }
+        }
+    };
+
+    private void handleResult(AsyncResult ar) {
+        if (ar.exception == null) {
+            if (DBG) log("handleResult: success!");
+
+            if (mState == EntryState.ES_PUK) {
+                mScrollView.setVisibility(View.VISIBLE);
+                mIccPUKPanel.setVisibility(View.GONE);
+            }            
+            // TODO: show success feedback
+            showConfirmation();
+
+            mHandler.postDelayed(new Runnable() {
+                public void run() {
+                    finish();
+                }
+            }, 3000);
+
+        } else if (ar.exception instanceof CommandException
+           /*  && ((CommandException)ar.exception).getCommandError() ==
+           CommandException.Error.PASSWORD_INCORRECT */ ) {
+            if (mState == EntryState.ES_PIN) {
+                if (DBG) log("handleResult: pin failed!");
+                mOldPin.getText().clear();
+                mBadPinError.setVisibility(View.VISIBLE);
+                CommandException ce = (CommandException) ar.exception;
+                if (ce.getCommandError() == CommandException.Error.SIM_PUK2) {
+                    if (DBG) log("handleResult: puk requested!");
+                    mState = EntryState.ES_PUK;
+                    displayPUKAlert();
+                    mScrollView.setVisibility(View.GONE);
+                    mIccPUKPanel.setVisibility(View.VISIBLE);
+                    mPUKCode.requestFocus();
+                }
+            } else if (mState == EntryState.ES_PUK) {
+                //should really check to see if the error is CommandException.PASSWORD_INCORRECT...
+                if (DBG) log("handleResult: puk2 failed!");
+                displayPUKAlert();
+                mPUKCode.getText().clear();
+                mPUKCode.requestFocus();
+            }
+        }
+    }
+    
+    private AlertDialog mPUKAlert;
+    private void displayPUKAlert () {
+        if (mPUKAlert == null) {
+            mPUKAlert = new AlertDialog.Builder(this)
+            .setMessage (R.string.puk_requested)
+            .setCancelable(false)
+            .show();
+        } else {
+            mPUKAlert.show();
+        }
+        //TODO: The 3 second delay here is somewhat arbitrary, reflecting the values
+        //used elsewhere for similar code.  This should get revisited with the framework
+        //crew to see if there is some standard we should adhere to.
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                mPUKAlert.dismiss();
+            }
+        }, 3000);
+    }
+
+    private void showConfirmation() {
+        int id = mChangePin2 ? R.string.pin2_changed : R.string.pin_changed;
+        Toast.makeText(this, id, Toast.LENGTH_SHORT).show();
+    }
+
+    private void log(String msg) {
+        String prefix = mChangePin2 ? "[ChgPin2]" : "[ChgPin]";
+        Log.d(LOG_TAG, prefix + msg);
+    }
+}
diff --git a/src/com/android/phone/ClearMissedCallsService.java b/src/com/android/phone/ClearMissedCallsService.java
new file mode 100644
index 0000000..b882472
--- /dev/null
+++ b/src/com/android/phone/ClearMissedCallsService.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import android.app.IntentService;
+import android.content.ContentValues;
+import android.content.Intent;
+import android.provider.CallLog.Calls;
+
+/**
+ * Handles the intent to clear the missed calls that is triggered when a notification is dismissed.
+ */
+public class ClearMissedCallsService extends IntentService {
+    /** This action is used to clear missed calls. */
+    public static final String ACTION_CLEAR_MISSED_CALLS =
+            "com.android.phone.intent.CLEAR_MISSED_CALLS";
+
+    private PhoneGlobals mApp;
+
+    public ClearMissedCallsService() {
+        super(ClearMissedCallsService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mApp = PhoneGlobals.getInstance();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        if (ACTION_CLEAR_MISSED_CALLS.equals(intent.getAction())) {
+            // Clear the list of new missed calls.
+            ContentValues values = new ContentValues();
+            values.put(Calls.NEW, 0);
+            values.put(Calls.IS_READ, 1);
+            StringBuilder where = new StringBuilder();
+            where.append(Calls.NEW);
+            where.append(" = 1 AND ");
+            where.append(Calls.TYPE);
+            where.append(" = ?");
+            getContentResolver().update(Calls.CONTENT_URI, values, where.toString(),
+                    new String[]{ Integer.toString(Calls.MISSED_TYPE) });
+            mApp.notificationMgr.cancelMissedCallNotification();
+        }
+    }
+}
diff --git a/src/com/android/phone/Constants.java b/src/com/android/phone/Constants.java
new file mode 100644
index 0000000..3e10c3a
--- /dev/null
+++ b/src/com/android/phone/Constants.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+/**
+ * App-wide constants and enums for the phone app.
+ *
+ * Any constants that need to be shared between two or more classes within
+ * the com.android.phone package should be defined here.  (Constants that
+ * are private to only one class can go in that class's .java file.)
+ */
+public class Constants {
+
+    /**
+     * Complete list of error / diagnostic indications we might possibly
+     * need to present to the user.
+     *
+     * This enum is basically a high-level list of the kinds of failures
+     * or "exceptional conditions" that can occur when making a phone
+     * call.  When an error occurs, the CallController stashes away one of
+     * these codes in the InCallUiState.pendingCallStatusCode flag and
+     * launches the InCallScreen; the InCallScreen will then display some
+     * kind of message to the user (usually an error dialog) explaining
+     * what happened.
+     *
+     * The enum values here cover all possible result status / error
+     * conditions that can happen when attempting to place an outgoing
+     * call (see CallController.placeCall() and placeCallInternal()), as
+     * well as some other conditions (like CDMA_CALL_LOST and EXITED_ECM)
+     * that don't technically result from the placeCall() sequence but
+     * still need to be communicated to the user.
+     */
+    public enum CallStatusCode {
+        /**
+         * No error or exceptional condition occurred.
+         * The InCallScreen does not need to display any kind of alert to the user.
+         */
+        SUCCESS,
+
+        /**
+         * Radio is explictly powered off, presumably because the
+         * device is in airplane mode.
+         */
+        POWER_OFF,
+
+        /**
+         * Only emergency numbers are allowed, but we tried to dial
+         * a non-emergency number.
+         */
+        EMERGENCY_ONLY,
+
+        /**
+         * No network connection.
+         */
+        OUT_OF_SERVICE,
+
+        /**
+         * The supplied CALL Intent didn't contain a valid phone number.
+         */
+        NO_PHONE_NUMBER_SUPPLIED,
+
+        /**
+         * Our initial phone number was actually an MMI sequence.
+         */
+        DIALED_MMI,
+
+        /**
+         * We couldn't successfully place the call due to an
+         * unknown failure in the telephony layer.
+         */
+        CALL_FAILED,
+
+        /**
+         * We tried to call a voicemail: URI but the device has no
+         * voicemail number configured.
+         *
+         * When InCallUiState.pendingCallStatusCode is set to this
+         * value, the InCallScreen will bring up a UI explaining what
+         * happened, and allowing the user to go into Settings to fix the
+         * problem.
+         */
+        VOICEMAIL_NUMBER_MISSING,
+
+        /**
+         * This status indicates that InCallScreen should display the
+         * CDMA-specific "call lost" dialog.  (If an outgoing call fails,
+         * and the CDMA "auto-retry" feature is enabled, *and* the retried
+         * call fails too, we display this specific dialog.)
+         *
+         * TODO: this is currently unused, since the "call lost" dialog
+         * needs to be triggered by a *disconnect* event, rather than when
+         * the InCallScreen first comes to the foreground.  For now we use
+         * the needToShowCallLostDialog field for this (see below.)
+         */
+        CDMA_CALL_LOST,
+
+        /**
+         * This status indicates that the call was placed successfully,
+         * but additionally, the InCallScreen needs to display the
+         * "Exiting ECM" dialog.
+         *
+         * (Details: "Emergency callback mode" is a CDMA-specific concept
+         * where the phone disallows data connections over the cell
+         * network for some period of time after you make an emergency
+         * call.  If the phone is in ECM and you dial a non-emergency
+         * number, that automatically *cancels* ECM, but we additionally
+         * need to warn the user that ECM has been canceled (see bug
+         * 4207607.))
+         */
+        EXITED_ECM
+    }
+
+    //
+    // URI schemes
+    //
+
+    public static final String SCHEME_SIP = "sip";
+    public static final String SCHEME_SMS = "sms";
+    public static final String SCHEME_SMSTO = "smsto";
+    public static final String SCHEME_TEL = "tel";
+    public static final String SCHEME_VOICEMAIL = "voicemail";
+
+    //
+    // TODO: Move all the various EXTRA_* and intent action constants here too.
+    // (Currently they're all over the place: InCallScreen,
+    // OutgoingCallBroadcaster, OtaUtils, etc.)
+    //
+
+    // Dtmf tone type setting value for CDMA phone
+    public static final int DTMF_TONE_TYPE_NORMAL = 0;
+    public static final int DTMF_TONE_TYPE_LONG   = 1;
+}
diff --git a/src/com/android/phone/ContactsAsyncHelper.java b/src/com/android/phone/ContactsAsyncHelper.java
new file mode 100644
index 0000000..10a6950
--- /dev/null
+++ b/src/com/android/phone/ContactsAsyncHelper.java
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.Notification;
+import android.content.ContentUris;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
+import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.Connection;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Helper class for loading contacts photo asynchronously.
+ */
+public class ContactsAsyncHelper {
+
+    private static final boolean DBG = false;
+    private static final String LOG_TAG = "ContactsAsyncHelper";
+
+    /**
+     * Interface for a WorkerHandler result return.
+     */
+    public interface OnImageLoadCompleteListener {
+        /**
+         * Called when the image load is complete.
+         *
+         * @param token Integer passed in {@link ContactsAsyncHelper#startObtainPhotoAsync(int,
+         * Context, Uri, OnImageLoadCompleteListener, Object)}.
+         * @param photo Drawable object obtained by the async load.
+         * @param photoIcon Bitmap object obtained by the async load.
+         * @param cookie Object passed in {@link ContactsAsyncHelper#startObtainPhotoAsync(int,
+         * Context, Uri, OnImageLoadCompleteListener, Object)}. Can be null iff. the original
+         * cookie is null.
+         */
+        public void onImageLoadComplete(int token, Drawable photo, Bitmap photoIcon,
+                Object cookie);
+    }
+
+    // constants
+    private static final int EVENT_LOAD_IMAGE = 1;
+
+    private final Handler mResultHandler = new Handler() {
+        /** Called when loading is done. */
+        @Override
+        public void handleMessage(Message msg) {
+            WorkerArgs args = (WorkerArgs) msg.obj;
+            switch (msg.arg1) {
+                case EVENT_LOAD_IMAGE:
+                    if (args.listener != null) {
+                        if (DBG) {
+                            Log.d(LOG_TAG, "Notifying listener: " + args.listener.toString() +
+                                    " image: " + args.uri + " completed");
+                        }
+                        args.listener.onImageLoadComplete(msg.what, args.photo, args.photoIcon,
+                                args.cookie);
+                    }
+                    break;
+                default:
+            }
+        }
+    };
+
+    /** Handler run on a worker thread to load photo asynchronously. */
+    private static Handler sThreadHandler;
+
+    /** For forcing the system to call its constructor */
+    @SuppressWarnings("unused")
+    private static ContactsAsyncHelper sInstance;
+
+    static {
+        sInstance = new ContactsAsyncHelper();
+    }
+
+    private static final class WorkerArgs {
+        public Context context;
+        public Uri uri;
+        public Drawable photo;
+        public Bitmap photoIcon;
+        public Object cookie;
+        public OnImageLoadCompleteListener listener;
+    }
+
+    /**
+     * public inner class to help out the ContactsAsyncHelper callers
+     * with tracking the state of the CallerInfo Queries and image
+     * loading.
+     *
+     * Logic contained herein is used to remove the race conditions
+     * that exist as the CallerInfo queries run and mix with the image
+     * loads, which then mix with the Phone state changes.
+     */
+    public static class ImageTracker {
+
+        // Image display states
+        public static final int DISPLAY_UNDEFINED = 0;
+        public static final int DISPLAY_IMAGE = -1;
+        public static final int DISPLAY_DEFAULT = -2;
+
+        // State of the image on the imageview.
+        private CallerInfo mCurrentCallerInfo;
+        private int displayMode;
+
+        public ImageTracker() {
+            mCurrentCallerInfo = null;
+            displayMode = DISPLAY_UNDEFINED;
+        }
+
+        /**
+         * Used to see if the requested call / connection has a
+         * different caller attached to it than the one we currently
+         * have in the CallCard.
+         */
+        public boolean isDifferentImageRequest(CallerInfo ci) {
+            // note, since the connections are around for the lifetime of the
+            // call, and the CallerInfo-related items as well, we can
+            // definitely use a simple != comparison.
+            return (mCurrentCallerInfo != ci);
+        }
+
+        public boolean isDifferentImageRequest(Connection connection) {
+            // if the connection does not exist, see if the
+            // mCurrentCallerInfo is also null to match.
+            if (connection == null) {
+                if (DBG) Log.d(LOG_TAG, "isDifferentImageRequest: connection is null");
+                return (mCurrentCallerInfo != null);
+            }
+            Object o = connection.getUserData();
+
+            // if the call does NOT have a callerInfo attached
+            // then it is ok to query.
+            boolean runQuery = true;
+            if (o instanceof CallerInfo) {
+                runQuery = isDifferentImageRequest((CallerInfo) o);
+            }
+            return runQuery;
+        }
+
+        /**
+         * Simple setter for the CallerInfo object.
+         */
+        public void setPhotoRequest(CallerInfo ci) {
+            mCurrentCallerInfo = ci;
+        }
+
+        /**
+         * Convenience method used to retrieve the URI
+         * representing the Photo file recorded in the attached
+         * CallerInfo Object.
+         */
+        public Uri getPhotoUri() {
+            if (mCurrentCallerInfo != null) {
+                return ContentUris.withAppendedId(Contacts.CONTENT_URI,
+                        mCurrentCallerInfo.person_id);
+            }
+            return null;
+        }
+
+        /**
+         * Simple setter for the Photo state.
+         */
+        public void setPhotoState(int state) {
+            displayMode = state;
+        }
+
+        /**
+         * Simple getter for the Photo state.
+         */
+        public int getPhotoState() {
+            return displayMode;
+        }
+    }
+
+    /**
+     * Thread worker class that handles the task of opening the stream and loading
+     * the images.
+     */
+    private class WorkerHandler extends Handler {
+        public WorkerHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            WorkerArgs args = (WorkerArgs) msg.obj;
+
+            switch (msg.arg1) {
+                case EVENT_LOAD_IMAGE:
+                    InputStream inputStream = null;
+                    try {
+                        try {
+                            inputStream = Contacts.openContactPhotoInputStream(
+                                    args.context.getContentResolver(), args.uri, true);
+                        } catch (Exception e) {
+                            Log.e(LOG_TAG, "Error opening photo input stream", e);
+                        }
+
+                        if (inputStream != null) {
+                            args.photo = Drawable.createFromStream(inputStream,
+                                    args.uri.toString());
+
+                            // This assumes Drawable coming from contact database is usually
+                            // BitmapDrawable and thus we can have (down)scaled version of it.
+                            args.photoIcon = getPhotoIconWhenAppropriate(args.context, args.photo);
+
+                            if (DBG) {
+                                Log.d(LOG_TAG, "Loading image: " + msg.arg1 +
+                                        " token: " + msg.what + " image URI: " + args.uri);
+                            }
+                        } else {
+                            args.photo = null;
+                            args.photoIcon = null;
+                            if (DBG) {
+                                Log.d(LOG_TAG, "Problem with image: " + msg.arg1 +
+                                        " token: " + msg.what + " image URI: " + args.uri +
+                                        ", using default image.");
+                            }
+                        }
+                    } finally {
+                        if (inputStream != null) {
+                            try {
+                                inputStream.close();
+                            } catch (IOException e) {
+                                Log.e(LOG_TAG, "Unable to close input stream.", e);
+                            }
+                        }
+                    }
+                    break;
+                default:
+            }
+
+            // send the reply to the enclosing class.
+            Message reply = ContactsAsyncHelper.this.mResultHandler.obtainMessage(msg.what);
+            reply.arg1 = msg.arg1;
+            reply.obj = msg.obj;
+            reply.sendToTarget();
+        }
+
+        /**
+         * Returns a Bitmap object suitable for {@link Notification}'s large icon. This might
+         * return null when the given Drawable isn't BitmapDrawable, or if the system fails to
+         * create a scaled Bitmap for the Drawable.
+         */
+        private Bitmap getPhotoIconWhenAppropriate(Context context, Drawable photo) {
+            if (!(photo instanceof BitmapDrawable)) {
+                return null;
+            }
+            int iconSize = context.getResources()
+                    .getDimensionPixelSize(R.dimen.notification_icon_size);
+            Bitmap orgBitmap = ((BitmapDrawable) photo).getBitmap();
+            int orgWidth = orgBitmap.getWidth();
+            int orgHeight = orgBitmap.getHeight();
+            int longerEdge = orgWidth > orgHeight ? orgWidth : orgHeight;
+            // We want downscaled one only when the original icon is too big.
+            if (longerEdge > iconSize) {
+                float ratio = ((float) longerEdge) / iconSize;
+                int newWidth = (int) (orgWidth / ratio);
+                int newHeight = (int) (orgHeight / ratio);
+                // If the longer edge is much longer than the shorter edge, the latter may
+                // become 0 which will cause a crash.
+                if (newWidth <= 0 || newHeight <= 0) {
+                    Log.w(LOG_TAG, "Photo icon's width or height become 0.");
+                    return null;
+                }
+
+                // It is sure ratio >= 1.0f in any case and thus the newly created Bitmap
+                // should be smaller than the original.
+                return Bitmap.createScaledBitmap(orgBitmap, newWidth, newHeight, true);
+            } else {
+                return orgBitmap;
+            }
+        }
+    }
+
+    /**
+     * Private constructor for static class
+     */
+    private ContactsAsyncHelper() {
+        HandlerThread thread = new HandlerThread("ContactsAsyncWorker");
+        thread.start();
+        sThreadHandler = new WorkerHandler(thread.getLooper());
+    }
+
+    /**
+     * Starts an asynchronous image load. After finishing the load,
+     * {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable, Bitmap, Object)}
+     * will be called.
+     *
+     * @param token Arbitrary integer which will be returned as the first argument of
+     * {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable, Bitmap, Object)}
+     * @param context Context object used to do the time-consuming operation.
+     * @param personUri Uri to be used to fetch the photo
+     * @param listener Callback object which will be used when the asynchronous load is done.
+     * Can be null, which means only the asynchronous load is done while there's no way to
+     * obtain the loaded photos.
+     * @param cookie Arbitrary object the caller wants to remember, which will become the
+     * fourth argument of {@link OnImageLoadCompleteListener#onImageLoadComplete(int, Drawable,
+     * Bitmap, Object)}. Can be null, at which the callback will also has null for the argument.
+     */
+    public static final void startObtainPhotoAsync(int token, Context context, Uri personUri,
+            OnImageLoadCompleteListener listener, Object cookie) {
+        // in case the source caller info is null, the URI will be null as well.
+        // just update using the placeholder image in this case.
+        if (personUri == null) {
+            Log.wtf(LOG_TAG, "Uri is missing");
+            return;
+        }
+
+        // Added additional Cookie field in the callee to handle arguments
+        // sent to the callback function.
+
+        // setup arguments
+        WorkerArgs args = new WorkerArgs();
+        args.cookie = cookie;
+        args.context = context;
+        args.uri = personUri;
+        args.listener = listener;
+
+        // setup message arguments
+        Message msg = sThreadHandler.obtainMessage(token);
+        msg.arg1 = EVENT_LOAD_IMAGE;
+        msg.obj = args;
+
+        if (DBG) Log.d(LOG_TAG, "Begin loading image: " + args.uri +
+                ", displaying default image for now.");
+
+        // notify the thread to begin working
+        sThreadHandler.sendMessage(msg);
+    }
+
+
+}
diff --git a/src/com/android/phone/DTMFTwelveKeyDialer.java b/src/com/android/phone/DTMFTwelveKeyDialer.java
new file mode 100644
index 0000000..4afac55
--- /dev/null
+++ b/src/com/android/phone/DTMFTwelveKeyDialer.java
@@ -0,0 +1,1119 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.text.Editable;
+import android.text.SpannableString;
+import android.text.method.DialerKeyListener;
+import android.text.style.RelativeSizeSpan;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.View.OnHoverListener;
+import android.view.accessibility.AccessibilityManager;
+import android.view.ViewStub;
+import android.widget.EditText;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Queue;
+
+
+/**
+ * Dialer class that encapsulates the DTMF twelve key behaviour.
+ * This model backs up the UI behaviour in DTMFTwelveKeyDialerView.java.
+ */
+public class DTMFTwelveKeyDialer implements View.OnTouchListener, View.OnKeyListener,
+        View.OnHoverListener, View.OnClickListener {
+    private static final String LOG_TAG = "DTMFTwelveKeyDialer";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    // events
+    private static final int PHONE_DISCONNECT = 100;
+    private static final int DTMF_SEND_CNF = 101;
+    private static final int DTMF_STOP = 102;
+
+    /** Accessibility manager instance used to check touch exploration state. */
+    private final AccessibilityManager mAccessibilityManager;
+
+    private CallManager mCM;
+    private ToneGenerator mToneGenerator;
+    private final Object mToneGeneratorLock = new Object();
+
+    // indicate if we want to enable the local tone playback.
+    private boolean mLocalToneEnabled;
+
+    // indicates that we are using automatically shortened DTMF tones
+    boolean mShortTone;
+
+    // indicate if the confirmation from TelephonyFW is pending.
+    private boolean mDTMFBurstCnfPending = false;
+
+    // Queue to queue the short dtmf characters.
+    private Queue<Character> mDTMFQueue = new LinkedList<Character>();
+
+    //  Short Dtmf tone duration
+    private static final int DTMF_DURATION_MS = 120;
+
+
+    /** Hash Map to map a character to a tone*/
+    private static final HashMap<Character, Integer> mToneMap =
+        new HashMap<Character, Integer>();
+    /** Hash Map to map a view id to a character*/
+    private static final HashMap<Integer, Character> mDisplayMap =
+        new HashMap<Integer, Character>();
+    /** Set up the static maps*/
+    static {
+        // Map the key characters to tones
+        mToneMap.put('1', ToneGenerator.TONE_DTMF_1);
+        mToneMap.put('2', ToneGenerator.TONE_DTMF_2);
+        mToneMap.put('3', ToneGenerator.TONE_DTMF_3);
+        mToneMap.put('4', ToneGenerator.TONE_DTMF_4);
+        mToneMap.put('5', ToneGenerator.TONE_DTMF_5);
+        mToneMap.put('6', ToneGenerator.TONE_DTMF_6);
+        mToneMap.put('7', ToneGenerator.TONE_DTMF_7);
+        mToneMap.put('8', ToneGenerator.TONE_DTMF_8);
+        mToneMap.put('9', ToneGenerator.TONE_DTMF_9);
+        mToneMap.put('0', ToneGenerator.TONE_DTMF_0);
+        mToneMap.put('#', ToneGenerator.TONE_DTMF_P);
+        mToneMap.put('*', ToneGenerator.TONE_DTMF_S);
+
+        // Map the buttons to the display characters
+        mDisplayMap.put(R.id.one, '1');
+        mDisplayMap.put(R.id.two, '2');
+        mDisplayMap.put(R.id.three, '3');
+        mDisplayMap.put(R.id.four, '4');
+        mDisplayMap.put(R.id.five, '5');
+        mDisplayMap.put(R.id.six, '6');
+        mDisplayMap.put(R.id.seven, '7');
+        mDisplayMap.put(R.id.eight, '8');
+        mDisplayMap.put(R.id.nine, '9');
+        mDisplayMap.put(R.id.zero, '0');
+        mDisplayMap.put(R.id.pound, '#');
+        mDisplayMap.put(R.id.star, '*');
+    }
+
+    /** EditText field used to display the DTMF digits sent so far.
+        Note this is null in some modes (like during the CDMA OTA call,
+        where there's no onscreen "digits" display.) */
+    private EditText mDialpadDigits;
+
+    // InCallScreen reference.
+    private InCallScreen mInCallScreen;
+
+    /**
+     * The DTMFTwelveKeyDialerView we use to display the dialpad.
+     *
+     * Only one of mDialerView or mDialerStub will have a legitimate object; the other one will be
+     * null at that moment. Either of following scenarios will occur:
+     *
+     * - If the constructor with {@link DTMFTwelveKeyDialerView} is called, mDialerView will
+     *   obtain that object, and mDialerStub will be null. mDialerStub won't be used in this case.
+     *
+     * - If the constructor with {@link ViewStub} is called, mDialerView will be null at that
+     *   moment, and mDialerStub will obtain the ViewStub object.
+     *   When the dialer is required by the user (i.e. until {@link #openDialer(boolean)} being
+     *   called), mDialerStub will inflate the dialer, and make mDialerStub itself null.
+     *   mDialerStub won't be used afterward.
+     */
+    private DTMFTwelveKeyDialerView mDialerView;
+
+    /**
+     * {@link ViewStub} holding {@link DTMFTwelveKeyDialerView}. See the comments for mDialerView.
+     */
+    private ViewStub mDialerStub;
+
+    // KeyListener used with the "dialpad digits" EditText widget.
+    private DTMFKeyListener mDialerKeyListener;
+
+    /**
+     * Our own key listener, specialized for dealing with DTMF codes.
+     *   1. Ignore the backspace since it is irrelevant.
+     *   2. Allow ONLY valid DTMF characters to generate a tone and be
+     *      sent as a DTMF code.
+     *   3. All other remaining characters are handled by the superclass.
+     *
+     * This code is purely here to handle events from the hardware keyboard
+     * while the DTMF dialpad is up.
+     */
+    private class DTMFKeyListener extends DialerKeyListener {
+
+        private DTMFKeyListener() {
+            super();
+        }
+
+        /**
+         * Overriden to return correct DTMF-dialable characters.
+         */
+        @Override
+        protected char[] getAcceptedChars(){
+            return DTMF_CHARACTERS;
+        }
+
+        /** special key listener ignores backspace. */
+        @Override
+        public boolean backspace(View view, Editable content, int keyCode,
+                KeyEvent event) {
+            return false;
+        }
+
+        /**
+         * Return true if the keyCode is an accepted modifier key for the
+         * dialer (ALT or SHIFT).
+         */
+        private boolean isAcceptableModifierKey(int keyCode) {
+            switch (keyCode) {
+                case KeyEvent.KEYCODE_ALT_LEFT:
+                case KeyEvent.KEYCODE_ALT_RIGHT:
+                case KeyEvent.KEYCODE_SHIFT_LEFT:
+                case KeyEvent.KEYCODE_SHIFT_RIGHT:
+                    return true;
+                default:
+                    return false;
+            }
+        }
+
+        /**
+         * Overriden so that with each valid button press, we start sending
+         * a dtmf code and play a local dtmf tone.
+         */
+        @Override
+        public boolean onKeyDown(View view, Editable content,
+                                 int keyCode, KeyEvent event) {
+            // if (DBG) log("DTMFKeyListener.onKeyDown, keyCode " + keyCode + ", view " + view);
+
+            // find the character
+            char c = (char) lookup(event, content);
+
+            // if not a long press, and parent onKeyDown accepts the input
+            if (event.getRepeatCount() == 0 && super.onKeyDown(view, content, keyCode, event)) {
+
+                boolean keyOK = ok(getAcceptedChars(), c);
+
+                // if the character is a valid dtmf code, start playing the tone and send the
+                // code.
+                if (keyOK) {
+                    if (DBG) log("DTMFKeyListener reading '" + c + "' from input.");
+                    processDtmf(c);
+                } else if (DBG) {
+                    log("DTMFKeyListener rejecting '" + c + "' from input.");
+                }
+                return true;
+            }
+            return false;
+        }
+
+        /**
+         * Overriden so that with each valid button up, we stop sending
+         * a dtmf code and the dtmf tone.
+         */
+        @Override
+        public boolean onKeyUp(View view, Editable content,
+                                 int keyCode, KeyEvent event) {
+            // if (DBG) log("DTMFKeyListener.onKeyUp, keyCode " + keyCode + ", view " + view);
+
+            super.onKeyUp(view, content, keyCode, event);
+
+            // find the character
+            char c = (char) lookup(event, content);
+
+            boolean keyOK = ok(getAcceptedChars(), c);
+
+            if (keyOK) {
+                if (DBG) log("Stopping the tone for '" + c + "'");
+                stopTone();
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * Handle individual keydown events when we DO NOT have an Editable handy.
+         */
+        public boolean onKeyDown(KeyEvent event) {
+            char c = lookup(event);
+            if (DBG) log("DTMFKeyListener.onKeyDown: event '" + c + "'");
+
+            // if not a long press, and parent onKeyDown accepts the input
+            if (event.getRepeatCount() == 0 && c != 0) {
+                // if the character is a valid dtmf code, start playing the tone and send the
+                // code.
+                if (ok(getAcceptedChars(), c)) {
+                    if (DBG) log("DTMFKeyListener reading '" + c + "' from input.");
+                    processDtmf(c);
+                    return true;
+                } else if (DBG) {
+                    log("DTMFKeyListener rejecting '" + c + "' from input.");
+                }
+            }
+            return false;
+        }
+
+        /**
+         * Handle individual keyup events.
+         *
+         * @param event is the event we are trying to stop.  If this is null,
+         * then we just force-stop the last tone without checking if the event
+         * is an acceptable dialer event.
+         */
+        public boolean onKeyUp(KeyEvent event) {
+            if (event == null) {
+                //the below piece of code sends stopDTMF event unnecessarily even when a null event
+                //is received, hence commenting it.
+                /*if (DBG) log("Stopping the last played tone.");
+                stopTone();*/
+                return true;
+            }
+
+            char c = lookup(event);
+            if (DBG) log("DTMFKeyListener.onKeyUp: event '" + c + "'");
+
+            // TODO: stopTone does not take in character input, we may want to
+            // consider checking for this ourselves.
+            if (ok(getAcceptedChars(), c)) {
+                if (DBG) log("Stopping the tone for '" + c + "'");
+                stopTone();
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * Find the Dialer Key mapped to this event.
+         *
+         * @return The char value of the input event, otherwise
+         * 0 if no matching character was found.
+         */
+        private char lookup(KeyEvent event) {
+            // This code is similar to {@link DialerKeyListener#lookup(KeyEvent, Spannable) lookup}
+            int meta = event.getMetaState();
+            int number = event.getNumber();
+
+            if (!((meta & (KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON)) == 0) || (number == 0)) {
+                int match = event.getMatch(getAcceptedChars(), meta);
+                number = (match != 0) ? match : number;
+            }
+
+            return (char) number;
+        }
+
+        /**
+         * Check to see if the keyEvent is dialable.
+         */
+        boolean isKeyEventAcceptable (KeyEvent event) {
+            return (ok(getAcceptedChars(), lookup(event)));
+        }
+
+        /**
+         * Overrides the characters used in {@link DialerKeyListener#CHARACTERS}
+         * These are the valid dtmf characters.
+         */
+        public final char[] DTMF_CHARACTERS = new char[] {
+            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*'
+        };
+    }
+
+    /**
+     * Our own handler to take care of the messages from the phone state changes
+     */
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                // disconnect action
+                // make sure to close the dialer on ALL disconnect actions.
+                case PHONE_DISCONNECT:
+                    if (DBG) log("disconnect message recieved, shutting down.");
+                    // unregister since we are closing.
+                    mCM.unregisterForDisconnect(this);
+                    closeDialer(false);
+                    break;
+                case DTMF_SEND_CNF:
+                    if (DBG) log("dtmf confirmation received from FW.");
+                    // handle burst dtmf confirmation
+                    handleBurstDtmfConfirmation();
+                    break;
+                case DTMF_STOP:
+                    if (DBG) log("dtmf stop received");
+                    stopTone();
+                    break;
+            }
+        }
+    };
+
+
+    /**
+     * DTMFTwelveKeyDialer constructor with {@link DTMFTwelveKeyDialerView}
+     *
+     * @param parent the InCallScreen instance that owns us.
+     * @param dialerView the DTMFTwelveKeyDialerView we should use to display the dialpad.
+     */
+    public DTMFTwelveKeyDialer(InCallScreen parent,
+                                DTMFTwelveKeyDialerView dialerView) {
+        this(parent);
+
+        // The passed-in DTMFTwelveKeyDialerView *should* always be
+        // non-null, now that the in-call UI uses only portrait mode.
+        if (dialerView == null) {
+            Log.e(LOG_TAG, "DTMFTwelveKeyDialer: null dialerView!", new IllegalStateException());
+            // ...continue as best we can, although things will
+            // be pretty broken without the mDialerView UI elements!
+        }
+        mDialerView = dialerView;
+        if (DBG) log("- Got passed-in mDialerView: " + mDialerView);
+
+        if (mDialerView != null) {
+            setupDialerView();
+        }
+    }
+
+    /**
+     * DTMFTwelveKeyDialer constructor with {@link ViewStub}.
+     *
+     * When the dialer is required for the first time (e.g. when {@link #openDialer(boolean)} is
+     * called), the object will inflate the ViewStub by itself, assuming the ViewStub will return
+     * {@link DTMFTwelveKeyDialerView} on {@link ViewStub#inflate()}.
+     *
+     * @param parent the InCallScreen instance that owns us.
+     * @param dialerStub ViewStub which will return {@link DTMFTwelveKeyDialerView} on
+     * {@link ViewStub#inflate()}.
+     */
+    public DTMFTwelveKeyDialer(InCallScreen parent, ViewStub dialerStub) {
+        this(parent);
+
+        mDialerStub = dialerStub;
+        if (DBG) log("- Got passed-in mDialerStub: " + mDialerStub);
+
+        // At this moment mDialerView is still null. We delay calling setupDialerView().
+    }
+
+    /**
+     * Private constructor used for initialization calls common to all public
+     * constructors.
+     *
+     * @param parent the InCallScreen instance that owns us.
+     */
+    private DTMFTwelveKeyDialer(InCallScreen parent) {
+        if (DBG) log("DTMFTwelveKeyDialer constructor... this = " + this);
+
+        mInCallScreen = parent;
+        mCM = PhoneGlobals.getInstance().mCM;
+        mAccessibilityManager = (AccessibilityManager) parent.getSystemService(
+                Context.ACCESSIBILITY_SERVICE);
+    }
+
+    /**
+     * Prepare the dialer view and relevant variables.
+     */
+    private void setupDialerView() {
+        if (DBG) log("setupDialerView()");
+        mDialerView.setDialer(this);
+
+        // In the normal in-call DTMF dialpad, mDialpadDigits is an
+        // EditText used to display the digits the user has typed so
+        // far.  But some other modes (like the OTA call) have no
+        // "digits" display at all, in which case mDialpadDigits will
+        // be null.
+        mDialpadDigits = (EditText) mDialerView.findViewById(R.id.dtmfDialerField);
+        if (mDialpadDigits != null) {
+            mDialerKeyListener = new DTMFKeyListener();
+            mDialpadDigits.setKeyListener(mDialerKeyListener);
+
+            // remove the long-press context menus that support
+            // the edit (copy / paste / select) functions.
+            mDialpadDigits.setLongClickable(false);
+        }
+
+        // Hook up touch / key listeners for the buttons in the onscreen
+        // keypad.
+        setupKeypad(mDialerView);
+    }
+
+    /**
+     * Null out our reference to the InCallScreen activity.
+     * This indicates that the InCallScreen activity has been destroyed.
+     * At the same time, get rid of listeners since we're not going to
+     * be valid anymore.
+     */
+    /* package */ void clearInCallScreenReference() {
+        if (DBG) log("clearInCallScreenReference()...");
+        mInCallScreen = null;
+        mDialerKeyListener = null;
+        mHandler.removeMessages(DTMF_SEND_CNF);
+        synchronized (mDTMFQueue) {
+            mDTMFBurstCnfPending = false;
+            mDTMFQueue.clear();
+        }
+        closeDialer(false);
+    }
+
+    /**
+     * Dialer code that runs when the dialer is brought up.
+     * This includes layout changes, etc, and just prepares the dialer model for use.
+     */
+    private void onDialerOpen(boolean animate) {
+        if (DBG) log("onDialerOpen()...");
+
+        // Any time the dialer is open, listen for "disconnect" events (so
+        // we can close ourself.)
+        mCM.registerForDisconnect(mHandler, PHONE_DISCONNECT, null);
+
+        // On some devices the screen timeout is set to a special value
+        // while the dialpad is up.
+        PhoneGlobals.getInstance().updateWakeState();
+
+        // Give the InCallScreen a chance to do any necessary UI updates.
+        if (mInCallScreen != null) {
+            mInCallScreen.onDialerOpen(animate);
+        } else {
+            Log.e(LOG_TAG, "InCallScreen object was null during onDialerOpen()");
+        }
+    }
+
+    /**
+     * Allocates some resources we keep around during a "dialer session".
+     *
+     * (Currently, a "dialer session" just means any situation where we
+     * might need to play local DTMF tones, which means that we need to
+     * keep a ToneGenerator instance around.  A ToneGenerator instance
+     * keeps an AudioTrack resource busy in AudioFlinger, so we don't want
+     * to keep it around forever.)
+     *
+     * Call {@link stopDialerSession} to release the dialer session
+     * resources.
+     */
+    public void startDialerSession() {
+        if (DBG) log("startDialerSession()... this = " + this);
+
+        // see if we need to play local tones.
+        if (PhoneGlobals.getInstance().getResources().getBoolean(R.bool.allow_local_dtmf_tones)) {
+            mLocalToneEnabled = Settings.System.getInt(mInCallScreen.getContentResolver(),
+                    Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
+        } else {
+            mLocalToneEnabled = false;
+        }
+        if (DBG) log("- startDialerSession: mLocalToneEnabled = " + mLocalToneEnabled);
+
+        // create the tone generator
+        // if the mToneGenerator creation fails, just continue without it.  It is
+        // a local audio signal, and is not as important as the dtmf tone itself.
+        if (mLocalToneEnabled) {
+            synchronized (mToneGeneratorLock) {
+                if (mToneGenerator == null) {
+                    try {
+                        mToneGenerator = new ToneGenerator(AudioManager.STREAM_DTMF, 80);
+                    } catch (RuntimeException e) {
+                        if (DBG) log("Exception caught while creating local tone generator: " + e);
+                        mToneGenerator = null;
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Dialer code that runs when the dialer is closed.
+     * This releases resources acquired when we start the dialer.
+     */
+    private void onDialerClose(boolean animate) {
+        if (DBG) log("onDialerClose()...");
+
+        // reset back to a short delay for the poke lock.
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        app.updateWakeState();
+
+        mCM.unregisterForDisconnect(mHandler);
+
+        // Give the InCallScreen a chance to do any necessary UI updates.
+        if (mInCallScreen != null) {
+            mInCallScreen.onDialerClose(animate);
+        } else {
+            Log.e(LOG_TAG, "InCallScreen object was null during onDialerClose()");
+        }
+    }
+
+    /**
+     * Releases resources we keep around during a "dialer session"
+     * (see {@link startDialerSession}).
+     *
+     * It's safe to call this even without a corresponding
+     * startDialerSession call.
+     */
+    public void stopDialerSession() {
+        // release the tone generator.
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator != null) {
+                mToneGenerator.release();
+                mToneGenerator = null;
+            }
+        }
+    }
+
+    /**
+     * Called externally (from InCallScreen) to play a DTMF Tone.
+     */
+    public boolean onDialerKeyDown(KeyEvent event) {
+        if (DBG) log("Notifying dtmf key down.");
+        if (mDialerKeyListener != null) {
+            return mDialerKeyListener.onKeyDown(event);
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Called externally (from InCallScreen) to cancel the last DTMF Tone played.
+     */
+    public boolean onDialerKeyUp(KeyEvent event) {
+        if (DBG) log("Notifying dtmf key up.");
+        if (mDialerKeyListener != null) {
+            return mDialerKeyListener.onKeyUp(event);
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * setup the keys on the dialer activity, using the keymaps.
+     */
+    private void setupKeypad(DTMFTwelveKeyDialerView dialerView) {
+        // for each view id listed in the displaymap
+        View button;
+        for (int viewId : mDisplayMap.keySet()) {
+            // locate the view
+            button = dialerView.findViewById(viewId);
+            // Setup the listeners for the buttons
+            button.setOnTouchListener(this);
+            button.setClickable(true);
+            button.setOnKeyListener(this);
+            button.setOnHoverListener(this);
+            button.setOnClickListener(this);
+        }
+    }
+
+    /**
+     * catch the back and call buttons to return to the in call activity.
+     */
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        // if (DBG) log("onKeyDown:  keyCode " + keyCode);
+        switch (keyCode) {
+            // finish for these events
+            case KeyEvent.KEYCODE_BACK:
+            case KeyEvent.KEYCODE_CALL:
+                if (DBG) log("exit requested");
+                closeDialer(true);  // do the "closing" animation
+                return true;
+        }
+        return mInCallScreen.onKeyDown(keyCode, event);
+    }
+
+    /**
+     * catch the back and call buttons to return to the in call activity.
+     */
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        // if (DBG) log("onKeyUp:  keyCode " + keyCode);
+        return mInCallScreen.onKeyUp(keyCode, event);
+    }
+
+    /**
+     * Implemented for {@link android.view.View.OnHoverListener}. Handles touch
+     * events for accessibility when touch exploration is enabled.
+     */
+    @Override
+    public boolean onHover(View v, MotionEvent event) {
+        // When touch exploration is turned on, lifting a finger while inside
+        // the button's hover target bounds should perform a click action.
+        if (mAccessibilityManager.isEnabled()
+                && mAccessibilityManager.isTouchExplorationEnabled()) {
+            final int left = v.getPaddingLeft();
+            final int right = (v.getWidth() - v.getPaddingRight());
+            final int top = v.getPaddingTop();
+            final int bottom = (v.getHeight() - v.getPaddingBottom());
+
+            switch (event.getActionMasked()) {
+                case MotionEvent.ACTION_HOVER_ENTER:
+                    // Lift-to-type temporarily disables double-tap activation.
+                    v.setClickable(false);
+                    break;
+                case MotionEvent.ACTION_HOVER_EXIT:
+                    final int x = (int) event.getX();
+                    final int y = (int) event.getY();
+                    if ((x > left) && (x < right) && (y > top) && (y < bottom)) {
+                        v.performClick();
+                    }
+                    v.setClickable(true);
+                    break;
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public void onClick(View v) {
+        // When accessibility is on, simulate press and release to preserve the
+        // semantic meaning of performClick(). Required for Braille support.
+        if (mAccessibilityManager.isEnabled()) {
+            final int id = v.getId();
+            // Checking the press state prevents double activation.
+            if (!v.isPressed() && mDisplayMap.containsKey(id)) {
+                processDtmf(mDisplayMap.get(id), true /* timedShortTone */);
+            }
+        }
+    }
+
+    /**
+     * Implemented for the TouchListener, process the touch events.
+     */
+    @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        int viewId = v.getId();
+
+        // if the button is recognized
+        if (mDisplayMap.containsKey(viewId)) {
+            switch (event.getAction()) {
+                case MotionEvent.ACTION_DOWN:
+                    // Append the character mapped to this button, to the display.
+                    // start the tone
+                    processDtmf(mDisplayMap.get(viewId));
+                    break;
+                case MotionEvent.ACTION_UP:
+                case MotionEvent.ACTION_CANCEL:
+                    // stop the tone on ANY other event, except for MOVE.
+                    stopTone();
+                    break;
+            }
+            // do not return true [handled] here, since we want the
+            // press / click animation to be handled by the framework.
+        }
+        return false;
+    }
+
+    /**
+     * Implements View.OnKeyListener for the DTMF buttons.  Enables dialing with trackball/dpad.
+     */
+    @Override
+    public boolean onKey(View v, int keyCode, KeyEvent event) {
+        // if (DBG) log("onKey:  keyCode " + keyCode + ", view " + v);
+
+        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
+            int viewId = v.getId();
+            if (mDisplayMap.containsKey(viewId)) {
+                switch (event.getAction()) {
+                case KeyEvent.ACTION_DOWN:
+                    if (event.getRepeatCount() == 0) {
+                        processDtmf(mDisplayMap.get(viewId));
+                    }
+                    break;
+                case KeyEvent.ACTION_UP:
+                    stopTone();
+                    break;
+                }
+                // do not return true [handled] here, since we want the
+                // press / click animation to be handled by the framework.
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if the dialer is in "open" state, meaning it is already visible *and* it
+     * isn't fading out. Note that during fade-out animation the View will return VISIBLE but
+     * will become GONE soon later, so you would want to use this method instead of
+     * {@link View#getVisibility()}.
+     *
+     * Fade-in animation, on the other hand, will set the View's visibility VISIBLE soon after
+     * the request, so we don't need to take care much of it. In other words,
+     * {@link #openDialer(boolean)} soon makes the visibility VISIBLE and thus this method will
+     * return true just after the method call.
+     *
+     * Note: during the very early stage of "open" state, users may not see the dialpad yet because
+     * of its fading-in animation, while they will see it shortly anyway. Similarly, during the
+     * early stage of "closed" state (opposite of "open" state), users may still see the dialpad
+     * due to fading-out animation, but it will vanish shortly and thus we can treat it as "closed",
+     * or "not open". To make the transition clearer, we call the state "open", not "shown" nor
+     * "visible".
+     */
+    public boolean isOpened() {
+        // Return whether or not the dialer view is visible.
+        // (Note that if we're in the middle of a fade-out animation, that
+        // also counts as "not visible" even though mDialerView itself is
+        // technically still VISIBLE.)
+        return (mDialerView != null
+                &&(mDialerView.getVisibility() == View.VISIBLE)
+                && !AnimationUtils.Fade.isFadingOut(mDialerView));
+    }
+
+    /**
+     * Forces the dialer into the "open" state.
+     * Does nothing if the dialer is already open.
+     *
+     * The "open" state includes the state the dialer is fading in.
+     * {@link InCallScreen#onDialerOpen(boolean)} will change visibility state and do
+     * actual animation.
+     *
+     * @param animate if true, open the dialer with an animation.
+     *
+     * @see #isOpened
+     */
+    public void openDialer(boolean animate) {
+        if (DBG) log("openDialer()...");
+
+        if (mDialerView == null && mDialerStub != null) {
+            if (DBG) log("Dialer isn't ready. Inflate it from ViewStub.");
+            mDialerView = (DTMFTwelveKeyDialerView) mDialerStub.inflate();
+            setupDialerView();
+            mDialerStub = null;
+        }
+
+        if (!isOpened()) {
+            // Make the dialer view visible.
+            if (animate) {
+                AnimationUtils.Fade.show(mDialerView);
+            } else {
+                mDialerView.setVisibility(View.VISIBLE);
+            }
+            onDialerOpen(animate);
+        }
+    }
+
+    /**
+     * Forces the dialer into the "closed" state.
+     * Does nothing if the dialer is already closed.
+     *
+     * {@link InCallScreen#onDialerOpen(boolean)} will change visibility state and do
+     * actual animation.
+     *
+     * @param animate if true, close the dialer with an animation.
+     *
+     * @see #isOpened
+     */
+    public void closeDialer(boolean animate) {
+        if (DBG) log("closeDialer()...");
+
+        if (isOpened()) {
+            // Hide the dialer view.
+            if (animate) {
+                AnimationUtils.Fade.hide(mDialerView, View.GONE);
+            } else {
+                mDialerView.setVisibility(View.GONE);
+            }
+            onDialerClose(animate);
+        }
+    }
+
+    /**
+     * Processes the specified digit as a DTMF key, by playing the
+     * appropriate DTMF tone, and appending the digit to the EditText
+     * field that displays the DTMF digits sent so far.
+     *
+     * @see #processDtmf(char, boolean)
+     */
+    private final void processDtmf(char c) {
+        processDtmf(c, false);
+    }
+
+    /**
+     * Processes the specified digit as a DTMF key, by playing the appropriate
+     * DTMF tone (or short tone if requested), and appending the digit to the
+     * EditText field that displays the DTMF digits sent so far.
+     */
+    private final void processDtmf(char c, boolean timedShortTone) {
+        // if it is a valid key, then update the display and send the dtmf tone.
+        if (PhoneNumberUtils.is12Key(c)) {
+            if (DBG) log("updating display and sending dtmf tone for '" + c + "'");
+
+            // Append this key to the "digits" widget.
+            if (mDialpadDigits != null) {
+                // TODO: maybe *don't* manually append this digit if
+                // mDialpadDigits is focused and this key came from the HW
+                // keyboard, since in that case the EditText field will
+                // get the key event directly and automatically appends
+                // whetever the user types.
+                // (Or, a cleaner fix would be to just make mDialpadDigits
+                // *not* handle HW key presses.  That seems to be more
+                // complicated than just setting focusable="false" on it,
+                // though.)
+                mDialpadDigits.getText().append(c);
+            }
+
+            // Play the tone if it exists.
+            if (mToneMap.containsKey(c)) {
+                // begin tone playback.
+                startTone(c, timedShortTone);
+            }
+        } else if (DBG) {
+            log("ignoring dtmf request for '" + c + "'");
+        }
+
+        // Any DTMF keypress counts as explicit "user activity".
+        PhoneGlobals.getInstance().pokeUserActivity();
+    }
+
+    /**
+     * Clears out the display of "DTMF digits typed so far" that's kept in
+     * mDialpadDigits.
+     *
+     * The InCallScreen is responsible for calling this method any time a
+     * new call becomes active (or, more simply, any time a call ends).
+     * This is how we make sure that the "history" of DTMF digits you type
+     * doesn't persist from one call to the next.
+     *
+     * TODO: it might be more elegent if the dialpad itself could remember
+     * the call that we're associated with, and clear the digits if the
+     * "current call" has changed since last time.  (This would require
+     * some unique identifier that's different for each call.  We can't
+     * just use the foreground Call object, since that's a singleton that
+     * lasts the whole life of the phone process.  Instead, maybe look at
+     * the Connection object that comes back from getEarliestConnection()?
+     * Or getEarliestConnectTime()?)
+     *
+     * Or to be even fancier, we could keep a mapping of *multiple*
+     * "active calls" to DTMF strings.  That way you could have two lines
+     * in use and swap calls multiple times, and we'd still remember the
+     * digits for each call.  (But that's such an obscure use case that
+     * it's probably not worth the extra complexity.)
+     */
+    public void clearDigits() {
+        if (DBG) log("clearDigits()...");
+
+        if (mDialpadDigits != null) {
+            mDialpadDigits.setText("");
+        }
+
+        setDialpadContext("");
+    }
+
+    /**
+     * Set the context text (hint) to show in the dialpad Digits EditText.
+     *
+     * This is currently only used for displaying a value for "Voice Mail"
+     * calls since they default to the dialpad and we want to give users better
+     * context when they dial voicemail.
+     *
+     * TODO: Is there value in extending this functionality for all contacts
+     * and not just Voice Mail calls?
+     * TODO: This should include setting the digits as well as the context
+     * once we start saving the digits properly...and properly in this case
+     * ideally means moving some of processDtmf() out of this class.
+     */
+    public void setDialpadContext(String contextValue) {
+        if (mDialpadDigits != null) {
+            if (contextValue == null) {
+              contextValue = "";
+            }
+            final SpannableString hint = new SpannableString(contextValue);
+            hint.setSpan(new RelativeSizeSpan(0.8f), 0, hint.length(), 0);
+            mDialpadDigits.setHint(hint);
+        }
+    }
+
+    /**
+     * Plays the local tone based the phone type.
+     */
+    public void startTone(char c, boolean timedShortTone) {
+        // Only play the tone if it exists.
+        if (!mToneMap.containsKey(c)) {
+            return;
+        }
+
+        if (!mInCallScreen.okToDialDTMFTones()) {
+            return;
+        }
+
+        // Read the settings as it may be changed by the user during the call
+        Phone phone = mCM.getFgPhone();
+        mShortTone = useShortDtmfTones(phone, phone.getContext());
+
+        // Before we go ahead and start a tone, we need to make sure that any pending
+        // stop-tone message is processed.
+        if (mHandler.hasMessages(DTMF_STOP)) {
+            mHandler.removeMessages(DTMF_STOP);
+            stopTone();
+        }
+
+        if (DBG) log("startDtmfTone()...");
+
+        // For Short DTMF we need to play the local tone for fixed duration
+        if (mShortTone) {
+            sendShortDtmfToNetwork(c);
+        } else {
+            // Pass as a char to be sent to network
+            if (DBG) log("send long dtmf for " + c);
+            mCM.startDtmf(c);
+
+            // If it is a timed tone, queue up the stop command in DTMF_DURATION_MS.
+            if (timedShortTone) {
+                mHandler.sendMessageDelayed(mHandler.obtainMessage(DTMF_STOP), DTMF_DURATION_MS);
+            }
+        }
+        startLocalToneIfNeeded(c);
+    }
+
+
+    /**
+     * Plays the local tone based the phone type, optionally forcing a short
+     * tone.
+     */
+    public void startLocalToneIfNeeded(char c) {
+        // if local tone playback is enabled, start it.
+        // Only play the tone if it exists.
+        if (!mToneMap.containsKey(c)) {
+            return;
+        }
+        if (mLocalToneEnabled) {
+            synchronized (mToneGeneratorLock) {
+                if (mToneGenerator == null) {
+                    if (DBG) log("startDtmfTone: mToneGenerator == null, tone: " + c);
+                } else {
+                    if (DBG) log("starting local tone " + c);
+                    int toneDuration = -1;
+                    if (mShortTone) {
+                        toneDuration = DTMF_DURATION_MS;
+                    }
+                    mToneGenerator.startTone(mToneMap.get(c), toneDuration);
+                }
+            }
+        }
+    }
+
+    /**
+     * Check to see if the keyEvent is dialable.
+     */
+    boolean isKeyEventAcceptable (KeyEvent event) {
+        return (mDialerKeyListener != null && mDialerKeyListener.isKeyEventAcceptable(event));
+    }
+
+    /**
+     * static logging method
+     */
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    /**
+     * Stops the local tone based on the phone type.
+     */
+    public void stopTone() {
+        // We do not rely on InCallScreen#okToDialDTMFTones() here since it is ok to stop tones
+        // without starting them.
+
+        if (!mShortTone) {
+            if (DBG) log("stopping remote tone.");
+            mCM.stopDtmf();
+            stopLocalToneIfNeeded();
+        }
+    }
+
+    /**
+     * Stops the local tone based on the phone type.
+     */
+    public void stopLocalToneIfNeeded() {
+        if (!mShortTone) {
+            // if local tone playback is enabled, stop it.
+            if (DBG) log("trying to stop local tone...");
+            if (mLocalToneEnabled) {
+                synchronized (mToneGeneratorLock) {
+                    if (mToneGenerator == null) {
+                        if (DBG) log("stopLocalTone: mToneGenerator == null");
+                    } else {
+                        if (DBG) log("stopping local tone.");
+                        mToneGenerator.stopTone();
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Sends the dtmf character over the network for short DTMF settings
+     * When the characters are entered in quick succession,
+     * the characters are queued before sending over the network.
+     */
+    private void sendShortDtmfToNetwork(char dtmfDigit) {
+        synchronized (mDTMFQueue) {
+            if (mDTMFBurstCnfPending == true) {
+                // Insert the dtmf char to the queue
+                mDTMFQueue.add(new Character(dtmfDigit));
+            } else {
+                String dtmfStr = Character.toString(dtmfDigit);
+                mCM.sendBurstDtmf(dtmfStr, 0, 0, mHandler.obtainMessage(DTMF_SEND_CNF));
+                // Set flag to indicate wait for Telephony confirmation.
+                mDTMFBurstCnfPending = true;
+            }
+        }
+    }
+
+    /**
+     * Handles Burst Dtmf Confirmation from the Framework.
+     */
+    void handleBurstDtmfConfirmation() {
+        Character dtmfChar = null;
+        synchronized (mDTMFQueue) {
+            mDTMFBurstCnfPending = false;
+            if (!mDTMFQueue.isEmpty()) {
+                dtmfChar = mDTMFQueue.remove();
+                Log.i(LOG_TAG, "The dtmf character removed from queue" + dtmfChar);
+            }
+        }
+        if (dtmfChar != null) {
+            sendShortDtmfToNetwork(dtmfChar);
+        }
+    }
+
+    /**
+     * On GSM devices, we never use short tones.
+     * On CDMA devices, it depends upon the settings.
+     */
+    private static boolean useShortDtmfTones(Phone phone, Context context) {
+        int phoneType = phone.getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+            return false;
+        } else if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            int toneType = android.provider.Settings.System.getInt(
+                    context.getContentResolver(),
+                    Settings.System.DTMF_TONE_TYPE_WHEN_DIALING,
+                    Constants.DTMF_TONE_TYPE_NORMAL);
+            if (toneType == Constants.DTMF_TONE_TYPE_NORMAL) {
+                return true;
+            } else {
+                return false;
+            }
+        } else if (phoneType == PhoneConstants.PHONE_TYPE_SIP) {
+            return false;
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+    }
+
+}
diff --git a/src/com/android/phone/DTMFTwelveKeyDialerView.java b/src/com/android/phone/DTMFTwelveKeyDialerView.java
new file mode 100644
index 0000000..e0502b7
--- /dev/null
+++ b/src/com/android/phone/DTMFTwelveKeyDialerView.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.FocusFinder;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import java.util.ArrayList;
+
+/**
+ * DTMFTwelveKeyDialerView is the view logic that the DTMFDialer uses.
+ * This is really a thin wrapper around Linear Layout that intercepts
+ * some user interactions to provide the correct UI behaviour for the
+ * dialer.
+ *
+ * See dtmf_twelve_key_dialer_view.xml.
+ */
+class DTMFTwelveKeyDialerView extends LinearLayout {
+
+    private static final String LOG_TAG = "PHONE/DTMFTwelveKeyDialerView";
+    private static final boolean DBG = false;
+
+    private DTMFTwelveKeyDialer mDialer;
+
+
+    public DTMFTwelveKeyDialerView (Context context) {
+        super(context);
+    }
+
+    public DTMFTwelveKeyDialerView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    void setDialer (DTMFTwelveKeyDialer dialer) {
+        mDialer = dialer;
+    }
+
+    /**
+     * Normally we ignore everything except for the BACK and CALL keys.
+     * For those, we pass them to the model (and then the InCallScreen).
+     */
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        if (DBG) log("dispatchKeyEvent(" + event + ")...");
+
+        int keyCode = event.getKeyCode();
+        if (mDialer != null) {
+            switch (keyCode) {
+                case KeyEvent.KEYCODE_BACK:
+                case KeyEvent.KEYCODE_CALL:
+                    return event.isDown() ? mDialer.onKeyDown(keyCode, event) :
+                        mDialer.onKeyUp(keyCode, event);
+            }
+        }
+
+        if (DBG) log("==> dispatchKeyEvent: forwarding event to the DTMFDialer");
+        return super.dispatchKeyEvent(event);
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/DefaultRingtonePreference.java b/src/com/android/phone/DefaultRingtonePreference.java
new file mode 100644
index 0000000..8205fd0
--- /dev/null
+++ b/src/com/android/phone/DefaultRingtonePreference.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.content.Intent;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.preference.RingtonePreference;
+import android.util.AttributeSet;
+
+/**
+ * RingtonePreference which doesn't show default ringtone setting.
+ *
+ * @see com.android.settings.DefaultRingtonePreference
+ */
+public class DefaultRingtonePreference extends RingtonePreference {
+    public DefaultRingtonePreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onPrepareRingtonePickerIntent(Intent ringtonePickerIntent) {
+        super.onPrepareRingtonePickerIntent(ringtonePickerIntent);
+
+        /*
+         * Since this preference is for choosing the default ringtone, it
+         * doesn't make sense to show a 'Default' item.
+         */
+        ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
+    }
+
+    @Override
+    protected void onSaveRingtone(Uri ringtoneUri) {
+        RingtoneManager.setActualDefaultRingtoneUri(getContext(), getRingtoneType(), ringtoneUri);
+    }
+
+    @Override
+    protected Uri onRestoreRingtone() {
+        return RingtoneManager.getActualDefaultRingtoneUri(getContext(), getRingtoneType());
+    }
+}
diff --git a/src/com/android/phone/DeleteFdnContactScreen.java b/src/com/android/phone/DeleteFdnContactScreen.java
new file mode 100644
index 0000000..074078c
--- /dev/null
+++ b/src/com/android/phone/DeleteFdnContactScreen.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Window;
+import android.widget.Toast;
+
+import static android.view.Window.PROGRESS_VISIBILITY_OFF;
+import static android.view.Window.PROGRESS_VISIBILITY_ON;
+
+/**
+ * Activity to let the user delete an FDN contact.
+ */
+public class DeleteFdnContactScreen extends Activity {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    private static final String INTENT_EXTRA_NAME = "name";
+    private static final String INTENT_EXTRA_NUMBER = "number";
+
+    private static final int PIN2_REQUEST_CODE = 100;
+
+    private String mName;
+    private String mNumber;
+    private String mPin2;
+
+    protected QueryHandler mQueryHandler;
+
+    private Handler mHandler = new Handler();
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        resolveIntent();
+
+        authenticatePin2();
+
+        getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.delete_fdn_contact_screen);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        if (DBG) log("onActivityResult");
+
+        switch (requestCode) {
+            case PIN2_REQUEST_CODE:
+                Bundle extras = (intent != null) ? intent.getExtras() : null;
+                if (extras != null) {
+                    mPin2 = extras.getString("pin2");
+                    showStatus(getResources().getText(
+                            R.string.deleting_fdn_contact));
+                    deleteContact();
+                } else {
+                    // if they cancelled, then we just cancel too.
+                    if (DBG) log("onActivityResult: CANCELLED");
+                    displayProgress(false);
+                    finish();
+                }
+                break;
+        }
+    }
+
+    private void resolveIntent() {
+        Intent intent = getIntent();
+
+        mName =  intent.getStringExtra(INTENT_EXTRA_NAME);
+        mNumber =  intent.getStringExtra(INTENT_EXTRA_NUMBER);
+
+        if (TextUtils.isEmpty(mNumber)) {
+            finish();
+        }
+    }
+
+    private void deleteContact() {
+        StringBuilder buf = new StringBuilder();
+        if (TextUtils.isEmpty(mName)) {
+            buf.append("number='");
+        } else {
+            buf.append("tag='");
+            buf.append(mName);
+            buf.append("' AND number='");
+        }
+        buf.append(mNumber);
+        buf.append("' AND pin2='");
+        buf.append(mPin2);
+        buf.append("'");
+
+        Uri uri = Uri.parse("content://icc/fdn");
+
+        mQueryHandler = new QueryHandler(getContentResolver());
+        mQueryHandler.startDelete(0, null, uri, buf.toString(), null);
+        displayProgress(true);
+    }
+
+    private void authenticatePin2() {
+        Intent intent = new Intent();
+        intent.setClass(this, GetPin2Screen.class);
+        startActivityForResult(intent, PIN2_REQUEST_CODE);
+    }
+
+    private void displayProgress(boolean flag) {
+        getWindow().setFeatureInt(
+                Window.FEATURE_INDETERMINATE_PROGRESS,
+                flag ? PROGRESS_VISIBILITY_ON : PROGRESS_VISIBILITY_OFF);
+    }
+
+    // Replace the status field with a toast to make things appear similar
+    // to the rest of the settings.  Removed the useless status field.
+    private void showStatus(CharSequence statusMsg) {
+        if (statusMsg != null) {
+            Toast.makeText(this, statusMsg, Toast.LENGTH_SHORT)
+            .show();
+        }
+    }
+
+    private void handleResult(boolean success) {
+        if (success) {
+            if (DBG) log("handleResult: success!");
+            showStatus(getResources().getText(R.string.fdn_contact_deleted));
+        } else {
+            if (DBG) log("handleResult: failed!");
+            showStatus(getResources().getText(R.string.pin2_invalid));
+        }
+
+        mHandler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                finish();
+            }
+        }, 2000);
+
+    }
+
+    private class QueryHandler extends AsyncQueryHandler {
+        public QueryHandler(ContentResolver cr) {
+            super(cr);
+        }
+
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor c) {
+        }
+
+        @Override
+        protected void onInsertComplete(int token, Object cookie, Uri uri) {
+        }
+
+        @Override
+        protected void onUpdateComplete(int token, Object cookie, int result) {
+        }
+
+        @Override
+        protected void onDeleteComplete(int token, Object cookie, int result) {
+            if (DBG) log("onDeleteComplete");
+            displayProgress(false);
+            handleResult(result > 0);
+        }
+
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[DeleteFdnContact] " + msg);
+    }
+}
diff --git a/src/com/android/phone/EditFdnContactScreen.java b/src/com/android/phone/EditFdnContactScreen.java
new file mode 100644
index 0000000..2992b7d
--- /dev/null
+++ b/src/com/android/phone/EditFdnContactScreen.java
@@ -0,0 +1,458 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import static android.view.Window.PROGRESS_VISIBILITY_OFF;
+import static android.view.Window.PROGRESS_VISIBILITY_ON;
+
+import android.app.Activity;
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Contacts.PeopleColumns;
+import android.provider.Contacts.PhonesColumns;
+import android.telephony.PhoneNumberUtils;
+import android.text.Selection;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.text.method.DialerKeyListener;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/**
+ * Activity to let the user add or edit an FDN contact.
+ */
+public class EditFdnContactScreen extends Activity {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    // Menu item codes
+    private static final int MENU_IMPORT = 1;
+    private static final int MENU_DELETE = 2;
+
+    private static final String INTENT_EXTRA_NAME = "name";
+    private static final String INTENT_EXTRA_NUMBER = "number";
+
+    private static final int PIN2_REQUEST_CODE = 100;
+
+    private String mName;
+    private String mNumber;
+    private String mPin2;
+    private boolean mAddContact;
+    private QueryHandler mQueryHandler;
+
+    private EditText mNameField;
+    private EditText mNumberField;
+    private LinearLayout mPinFieldContainer;
+    private Button mButton;
+
+    private Handler mHandler = new Handler();
+
+    /**
+     * Constants used in importing from contacts
+     */
+    /** request code when invoking subactivity */
+    private static final int CONTACTS_PICKER_CODE = 200;
+    /** projection for phone number query */
+    private static final String NUM_PROJECTION[] = {PeopleColumns.DISPLAY_NAME,
+        PhonesColumns.NUMBER};
+    /** static intent to invoke phone number picker */
+    private static final Intent CONTACT_IMPORT_INTENT;
+    static {
+        CONTACT_IMPORT_INTENT = new Intent(Intent.ACTION_GET_CONTENT);
+        CONTACT_IMPORT_INTENT.setType(android.provider.Contacts.Phones.CONTENT_ITEM_TYPE);
+    }
+    /** flag to track saving state */
+    private boolean mDataBusy;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        resolveIntent();
+
+        getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.edit_fdn_contact_screen);
+        setupView();
+        setTitle(mAddContact ?
+                R.string.add_fdn_contact : R.string.edit_fdn_contact);
+
+        displayProgress(false);
+    }
+
+    /**
+     * We now want to bring up the pin request screen AFTER the
+     * contact information is displayed, to help with user
+     * experience.
+     *
+     * Also, process the results from the contact picker.
+     */
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        if (DBG) log("onActivityResult request:" + requestCode + " result:" + resultCode);
+
+        switch (requestCode) {
+            case PIN2_REQUEST_CODE:
+                Bundle extras = (intent != null) ? intent.getExtras() : null;
+                if (extras != null) {
+                    mPin2 = extras.getString("pin2");
+                    if (mAddContact) {
+                        addContact();
+                    } else {
+                        updateContact();
+                    }
+                } else if (resultCode != RESULT_OK) {
+                    // if they cancelled, then we just cancel too.
+                    if (DBG) log("onActivityResult: cancelled.");
+                    finish();
+                }
+                break;
+
+            // look for the data associated with this number, and update
+            // the display with it.
+            case CONTACTS_PICKER_CODE:
+                if (resultCode != RESULT_OK) {
+                    if (DBG) log("onActivityResult: cancelled.");
+                    return;
+                }
+                Cursor cursor = null;
+                try {
+                    cursor = getContentResolver().query(intent.getData(),
+                        NUM_PROJECTION, null, null, null);
+                    if ((cursor == null) || (!cursor.moveToFirst())) {
+                        Log.w(LOG_TAG,"onActivityResult: bad contact data, no results found.");
+                        return;
+                    }
+                    mNameField.setText(cursor.getString(0));
+                    mNumberField.setText(cursor.getString(1));
+                } finally {
+                    if (cursor != null) {
+                        cursor.close();
+                    }
+                }
+                break;
+        }
+    }
+
+    /**
+     * Overridden to display the import and delete commands.
+     */
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+
+        Resources r = getResources();
+
+        // Added the icons to the context menu
+        menu.add(0, MENU_IMPORT, 0, r.getString(R.string.importToFDNfromContacts))
+                .setIcon(R.drawable.ic_menu_contact);
+        menu.add(0, MENU_DELETE, 0, r.getString(R.string.menu_delete))
+                .setIcon(android.R.drawable.ic_menu_delete);
+        return true;
+    }
+
+    /**
+     * Allow the menu to be opened ONLY if we're not busy.
+     */
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        boolean result = super.onPrepareOptionsMenu(menu);
+        return mDataBusy ? false : result;
+    }
+
+    /**
+     * Overridden to allow for handling of delete and import.
+     */
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case MENU_IMPORT:
+                startActivityForResult(CONTACT_IMPORT_INTENT, CONTACTS_PICKER_CODE);
+                return true;
+
+            case MENU_DELETE:
+                deleteSelected();
+                return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void resolveIntent() {
+        Intent intent = getIntent();
+
+        mName =  intent.getStringExtra(INTENT_EXTRA_NAME);
+        mNumber =  intent.getStringExtra(INTENT_EXTRA_NUMBER);
+
+        mAddContact = TextUtils.isEmpty(mNumber);
+    }
+
+    /**
+     * We have multiple layouts, one to indicate that the user needs to
+     * open the keyboard to enter information (if the keybord is hidden).
+     * So, we need to make sure that the layout here matches that in the
+     * layout file.
+     */
+    private void setupView() {
+        mNameField = (EditText) findViewById(R.id.fdn_name);
+        if (mNameField != null) {
+            mNameField.setOnFocusChangeListener(mOnFocusChangeHandler);
+            mNameField.setOnClickListener(mClicked);
+        }
+
+        mNumberField = (EditText) findViewById(R.id.fdn_number);
+        if (mNumberField != null) {
+            mNumberField.setKeyListener(DialerKeyListener.getInstance());
+            mNumberField.setOnFocusChangeListener(mOnFocusChangeHandler);
+            mNumberField.setOnClickListener(mClicked);
+        }
+
+        if (!mAddContact) {
+            if (mNameField != null) {
+                mNameField.setText(mName);
+            }
+            if (mNumberField != null) {
+                mNumberField.setText(mNumber);
+            }
+        }
+
+        mButton = (Button) findViewById(R.id.button);
+        if (mButton != null) {
+            mButton.setOnClickListener(mClicked);
+        }
+
+        mPinFieldContainer = (LinearLayout) findViewById(R.id.pinc);
+
+    }
+
+    private String getNameFromTextField() {
+        return mNameField.getText().toString();
+    }
+
+    private String getNumberFromTextField() {
+        return mNumberField.getText().toString();
+    }
+
+    private Uri getContentURI() {
+        return Uri.parse("content://icc/fdn");
+    }
+
+    /**
+      * @param number is voice mail number
+      * @return true if number length is less than 20-digit limit
+      *
+      * TODO: Fix this logic.
+      */
+     private boolean isValidNumber(String number) {
+         return (number.length() <= 20);
+     }
+
+
+    private void addContact() {
+        if (DBG) log("addContact");
+
+        final String number = PhoneNumberUtils.convertAndStrip(getNumberFromTextField());
+
+        if (!isValidNumber(number)) {
+            handleResult(false, true);
+            return;
+        }
+
+        Uri uri = getContentURI();
+
+        ContentValues bundle = new ContentValues(3);
+        bundle.put("tag", getNameFromTextField());
+        bundle.put("number", number);
+        bundle.put("pin2", mPin2);
+
+        mQueryHandler = new QueryHandler(getContentResolver());
+        mQueryHandler.startInsert(0, null, uri, bundle);
+        displayProgress(true);
+        showStatus(getResources().getText(R.string.adding_fdn_contact));
+    }
+
+    private void updateContact() {
+        if (DBG) log("updateContact");
+
+        final String name = getNameFromTextField();
+        final String number = PhoneNumberUtils.convertAndStrip(getNumberFromTextField());
+
+        if (!isValidNumber(number)) {
+            handleResult(false, true);
+            return;
+        }
+        Uri uri = getContentURI();
+
+        ContentValues bundle = new ContentValues();
+        bundle.put("tag", mName);
+        bundle.put("number", mNumber);
+        bundle.put("newTag", name);
+        bundle.put("newNumber", number);
+        bundle.put("pin2", mPin2);
+
+        mQueryHandler = new QueryHandler(getContentResolver());
+        mQueryHandler.startUpdate(0, null, uri, bundle, null, null);
+        displayProgress(true);
+        showStatus(getResources().getText(R.string.updating_fdn_contact));
+    }
+
+    /**
+     * Handle the delete command, based upon the state of the Activity.
+     */
+    private void deleteSelected() {
+        // delete ONLY if this is NOT a new contact.
+        if (!mAddContact) {
+            Intent intent = new Intent();
+            intent.setClass(this, DeleteFdnContactScreen.class);
+            intent.putExtra(INTENT_EXTRA_NAME, mName);
+            intent.putExtra(INTENT_EXTRA_NUMBER, mNumber);
+            startActivity(intent);
+        }
+        finish();
+    }
+
+    private void authenticatePin2() {
+        Intent intent = new Intent();
+        intent.setClass(this, GetPin2Screen.class);
+        startActivityForResult(intent, PIN2_REQUEST_CODE);
+    }
+
+    private void displayProgress(boolean flag) {
+        // indicate we are busy.
+        mDataBusy = flag;
+        getWindow().setFeatureInt(
+                Window.FEATURE_INDETERMINATE_PROGRESS,
+                mDataBusy ? PROGRESS_VISIBILITY_ON : PROGRESS_VISIBILITY_OFF);
+        // make sure we don't allow calls to save when we're
+        // not ready for them.
+        mButton.setClickable(!mDataBusy);
+    }
+
+    /**
+     * Removed the status field, with preference to displaying a toast
+     * to match the rest of settings UI.
+     */
+    private void showStatus(CharSequence statusMsg) {
+        if (statusMsg != null) {
+            Toast.makeText(this, statusMsg, Toast.LENGTH_LONG)
+                    .show();
+        }
+    }
+
+    private void handleResult(boolean success, boolean invalidNumber) {
+        if (success) {
+            if (DBG) log("handleResult: success!");
+            showStatus(getResources().getText(mAddContact ?
+                    R.string.fdn_contact_added : R.string.fdn_contact_updated));
+        } else {
+            if (DBG) log("handleResult: failed!");
+            if (invalidNumber) {
+                showStatus(getResources().getText(R.string.fdn_invalid_number));
+            } else {
+                // There's no way to know whether the failure is due to incorrect PIN2 or
+                // an inappropriate phone number.
+                showStatus(getResources().getText(R.string.pin2_or_fdn_invalid));
+            }
+        }
+
+        mHandler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                finish();
+            }
+        }, 2000);
+
+    }
+
+    private final View.OnClickListener mClicked = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (mPinFieldContainer.getVisibility() != View.VISIBLE) {
+                return;
+            }
+
+            if (v == mNameField) {
+                mNumberField.requestFocus();
+            } else if (v == mNumberField) {
+                mButton.requestFocus();
+            } else if (v == mButton) {
+                // Authenticate the pin AFTER the contact information
+                // is entered, and if we're not busy.
+                if (!mDataBusy) {
+                    authenticatePin2();
+                }
+            }
+        }
+    };
+
+    private final View.OnFocusChangeListener mOnFocusChangeHandler =
+            new View.OnFocusChangeListener() {
+        @Override
+        public void onFocusChange(View v, boolean hasFocus) {
+            if (hasFocus) {
+                TextView textView = (TextView) v;
+                Selection.selectAll((Spannable) textView.getText());
+            }
+        }
+    };
+
+    private class QueryHandler extends AsyncQueryHandler {
+        public QueryHandler(ContentResolver cr) {
+            super(cr);
+        }
+
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor c) {
+        }
+
+        @Override
+        protected void onInsertComplete(int token, Object cookie, Uri uri) {
+            if (DBG) log("onInsertComplete");
+            displayProgress(false);
+            handleResult(uri != null, false);
+        }
+
+        @Override
+        protected void onUpdateComplete(int token, Object cookie, int result) {
+            if (DBG) log("onUpdateComplete");
+            displayProgress(false);
+            handleResult(result > 0, false);
+        }
+
+        @Override
+        protected void onDeleteComplete(int token, Object cookie, int result) {
+        }
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[EditFdnContact] " + msg);
+    }
+}
diff --git a/src/com/android/phone/EditPhoneNumberPreference.java b/src/com/android/phone/EditPhoneNumberPreference.java
new file mode 100644
index 0000000..86671a8
--- /dev/null
+++ b/src/com/android/phone/EditPhoneNumberPreference.java
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.res.TypedArray;
+import android.preference.EditTextPreference;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.text.method.ArrowKeyMovementMethod;
+import android.text.method.DialerKeyListener;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+public class EditPhoneNumberPreference extends EditTextPreference {
+
+    //allowed modes for this preference.
+    /** simple confirmation (OK / CANCEL) */
+    private static final int CM_CONFIRM = 0;
+    /** toggle [(ENABLE / CANCEL) or (DISABLE / CANCEL)], use isToggled() to see requested state.*/
+    private static final int CM_ACTIVATION = 1;
+
+    private int mConfirmationMode;
+
+    //String constants used in storing the value of the preference
+    // The preference is backed by a string that holds the encoded value, which reads:
+    //  <VALUE_ON | VALUE_OFF><VALUE_SEPARATOR><mPhoneNumber>
+    // for example, an enabled preference with a number of 6502345678 would read:
+    //  "1:6502345678"
+    private static final String VALUE_SEPARATOR = ":";
+    private static final String VALUE_OFF = "0";
+    private static final String VALUE_ON = "1";
+
+    //UI layout
+    private ImageButton mContactPickButton;
+
+    //Listeners
+    /** Called when focus is changed between fields */
+    private View.OnFocusChangeListener mDialogFocusChangeListener;
+    /** Called when the Dialog is closed. */
+    private OnDialogClosedListener mDialogOnClosedListener;
+    /**
+     * Used to indicate that we are going to request for a
+     * default number. for the dialog.
+     */
+    private GetDefaultNumberListener mGetDefaultNumberListener;
+
+    //Activity values
+    private Activity mParentActivity;
+    private Intent mContactListIntent;
+    /** Arbitrary activity-assigned preference id value */
+    private int mPrefId;
+
+    //similar to toggle preference
+    private CharSequence mEnableText;
+    private CharSequence mDisableText;
+    private CharSequence mChangeNumberText;
+    private CharSequence mSummaryOn;
+    private CharSequence mSummaryOff;
+
+    // button that was clicked on dialog close.
+    private int mButtonClicked;
+
+    //relevant (parsed) value of the mText
+    private String mPhoneNumber;
+    private boolean mChecked;
+
+
+    /**
+     * Interface for the dialog closed listener, related to
+     * DialogPreference.onDialogClosed(), except we also pass in a buttonClicked
+     * value indicating which of the three possible buttons were pressed.
+     */
+    interface OnDialogClosedListener {
+        void onDialogClosed(EditPhoneNumberPreference preference, int buttonClicked);
+    }
+
+    /**
+     * Interface for the default number setting listener.  Handles requests for
+     * the default display number for the dialog.
+     */
+    interface GetDefaultNumberListener {
+        /**
+         * Notify that we are looking for a default display value.
+         * @return null if there is no contribution from this interface,
+         *  indicating that the orignal value of mPhoneNumber should be
+         *  displayed unchanged.
+         */
+        String onGetDefaultNumber(EditPhoneNumberPreference preference);
+    }
+
+    /*
+     * Constructors
+     */
+    public EditPhoneNumberPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        setDialogLayoutResource(R.layout.pref_dialog_editphonenumber);
+
+        //create intent to bring up contact list
+        mContactListIntent = new Intent(Intent.ACTION_GET_CONTENT);
+        mContactListIntent.setType(Phone.CONTENT_ITEM_TYPE);
+
+        //get the edit phone number default settings
+        TypedArray a = context.obtainStyledAttributes(attrs,
+                R.styleable.EditPhoneNumberPreference, 0, R.style.EditPhoneNumberPreference);
+        mEnableText = a.getString(R.styleable.EditPhoneNumberPreference_enableButtonText);
+        mDisableText = a.getString(R.styleable.EditPhoneNumberPreference_disableButtonText);
+        mChangeNumberText = a.getString(R.styleable.EditPhoneNumberPreference_changeNumButtonText);
+        mConfirmationMode = a.getInt(R.styleable.EditPhoneNumberPreference_confirmMode, 0);
+        a.recycle();
+
+        //get the summary settings, use CheckBoxPreference as the standard.
+        a = context.obtainStyledAttributes(attrs, android.R.styleable.CheckBoxPreference, 0, 0);
+        mSummaryOn = a.getString(android.R.styleable.CheckBoxPreference_summaryOn);
+        mSummaryOff = a.getString(android.R.styleable.CheckBoxPreference_summaryOff);
+        a.recycle();
+    }
+
+    public EditPhoneNumberPreference(Context context) {
+        this(context, null);
+    }
+
+
+    /*
+     * Methods called on UI bindings
+     */
+    @Override
+    //called when we're binding the view to the preference.
+    protected void onBindView(View view) {
+        super.onBindView(view);
+
+        // Sync the summary view
+        TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
+        if (summaryView != null) {
+            CharSequence sum;
+            int vis;
+
+            //set summary depending upon mode
+            if (mConfirmationMode == CM_ACTIVATION) {
+                if (mChecked) {
+                    sum = (mSummaryOn == null) ? getSummary() : mSummaryOn;
+                } else {
+                    sum = (mSummaryOff == null) ? getSummary() : mSummaryOff;
+                }
+            } else {
+                sum = getSummary();
+            }
+
+            if (sum != null) {
+                summaryView.setText(sum);
+                vis = View.VISIBLE;
+            } else {
+                vis = View.GONE;
+            }
+
+            if (vis != summaryView.getVisibility()) {
+                summaryView.setVisibility(vis);
+            }
+        }
+    }
+
+    //called when we're binding the dialog to the preference's view.
+    @Override
+    protected void onBindDialogView(View view) {
+        // default the button clicked to be the cancel button.
+        mButtonClicked = DialogInterface.BUTTON_NEGATIVE;
+
+        super.onBindDialogView(view);
+
+        //get the edittext component within the number field
+        EditText editText = getEditText();
+        //get the contact pick button within the number field
+        mContactPickButton = (ImageButton) view.findViewById(R.id.select_contact);
+
+        //setup number entry
+        if (editText != null) {
+            // see if there is a means to get a default number,
+            // and set it accordingly.
+            if (mGetDefaultNumberListener != null) {
+                String defaultNumber = mGetDefaultNumberListener.onGetDefaultNumber(this);
+                if (defaultNumber != null) {
+                    mPhoneNumber = defaultNumber;
+                }
+            }
+            editText.setText(mPhoneNumber);
+            editText.setMovementMethod(ArrowKeyMovementMethod.getInstance());
+            editText.setKeyListener(DialerKeyListener.getInstance());
+            editText.setOnFocusChangeListener(mDialogFocusChangeListener);
+        }
+
+        //set contact picker
+        if (mContactPickButton != null) {
+            mContactPickButton.setOnClickListener(new View.OnClickListener() {
+                public void onClick(View v) {
+                    if (mParentActivity != null) {
+                        mParentActivity.startActivityForResult(mContactListIntent, mPrefId);
+                    }
+                }
+            });
+        }
+    }
+
+    /**
+     * Overriding EditTextPreference's onAddEditTextToDialogView.
+     *
+     * This method attaches the EditText to the container specific to this
+     * preference's dialog layout.
+     */
+    @Override
+    protected void onAddEditTextToDialogView(View dialogView, EditText editText) {
+
+        // look for the container object
+        ViewGroup container = (ViewGroup) dialogView
+                .findViewById(R.id.edit_container);
+
+        // add the edittext to the container.
+        if (container != null) {
+            container.addView(editText, ViewGroup.LayoutParams.MATCH_PARENT,
+                    ViewGroup.LayoutParams.WRAP_CONTENT);
+        }
+    }
+
+    //control the appearance of the dialog depending upon the mode.
+    @Override
+    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+        // modified so that we just worry about the buttons being
+        // displayed, since there is no need to hide the edittext
+        // field anymore.
+        if (mConfirmationMode == CM_ACTIVATION) {
+            if (mChecked) {
+                builder.setPositiveButton(mChangeNumberText, this);
+                builder.setNeutralButton(mDisableText, this);
+            } else {
+                builder.setPositiveButton(null, null);
+                builder.setNeutralButton(mEnableText, this);
+            }
+        }
+        // set the call icon on the title.
+        builder.setIcon(R.mipmap.ic_launcher_phone);
+    }
+
+
+    /*
+     * Listeners and other state setting methods
+     */
+    //set the on focus change listener to be assigned to the Dialog's edittext field.
+    public void setDialogOnFocusChangeListener(View.OnFocusChangeListener l) {
+        mDialogFocusChangeListener = l;
+    }
+
+    //set the listener to be called wht the dialog is closed.
+    public void setDialogOnClosedListener(OnDialogClosedListener l) {
+        mDialogOnClosedListener = l;
+    }
+
+    //set the link back to the parent activity, so that we may run the contact picker.
+    public void setParentActivity(Activity parent, int identifier) {
+        mParentActivity = parent;
+        mPrefId = identifier;
+        mGetDefaultNumberListener = null;
+    }
+
+    //set the link back to the parent activity, so that we may run the contact picker.
+    //also set the default number listener.
+    public void setParentActivity(Activity parent, int identifier, GetDefaultNumberListener l) {
+        mParentActivity = parent;
+        mPrefId = identifier;
+        mGetDefaultNumberListener = l;
+    }
+
+    /*
+     * Notification handlers
+     */
+    //Notify the preference that the pick activity is complete.
+    public void onPickActivityResult(String pickedValue) {
+        EditText editText = getEditText();
+        if (editText != null) {
+            editText.setText(pickedValue);
+        }
+    }
+
+    //called when the dialog is clicked.
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        // The neutral button (button3) is always the toggle.
+        if ((mConfirmationMode == CM_ACTIVATION) && (which == DialogInterface.BUTTON_NEUTRAL)) {
+            //flip the toggle if we are in the correct mode.
+            setToggled(!isToggled());
+        }
+        // record the button that was clicked.
+        mButtonClicked = which;
+        super.onClick(dialog, which);
+    }
+
+    @Override
+    //When the dialog is closed, perform the relevant actions, including setting
+    // phone numbers and calling the close action listener.
+    protected void onDialogClosed(boolean positiveResult) {
+        // A positive result is technically either button1 or button3.
+        if ((mButtonClicked == DialogInterface.BUTTON_POSITIVE) ||
+                (mButtonClicked == DialogInterface.BUTTON_NEUTRAL)){
+            setPhoneNumber(getEditText().getText().toString());
+            super.onDialogClosed(positiveResult);
+            setText(getStringValue());
+        } else {
+            super.onDialogClosed(positiveResult);
+        }
+
+        // send the clicked button over to the listener.
+        if (mDialogOnClosedListener != null) {
+            mDialogOnClosedListener.onDialogClosed(this, mButtonClicked);
+        }
+    }
+
+
+    /*
+     * Toggle handling code.
+     */
+    //return the toggle value.
+    public boolean isToggled() {
+        return mChecked;
+    }
+
+    //set the toggle value.
+    // return the current preference to allow for chaining preferences.
+    public EditPhoneNumberPreference setToggled(boolean checked) {
+        mChecked = checked;
+        setText(getStringValue());
+        notifyChanged();
+
+        return this;
+    }
+
+
+    /**
+     * Phone number handling code
+     */
+    public String getPhoneNumber() {
+        // return the phone number, after it has been stripped of all
+        // irrelevant text.
+        return PhoneNumberUtils.stripSeparators(mPhoneNumber);
+    }
+
+    /** The phone number including any formatting characters */
+    protected String getRawPhoneNumber() {
+        return mPhoneNumber;
+    }
+
+    //set the phone number value.
+    // return the current preference to allow for chaining preferences.
+    public EditPhoneNumberPreference setPhoneNumber(String number) {
+        mPhoneNumber = number;
+        setText(getStringValue());
+        notifyChanged();
+
+        return this;
+    }
+
+
+    /*
+     * Other code relevant to preference framework
+     */
+    //when setting default / initial values, make sure we're setting things correctly.
+    @Override
+    protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
+        setValueFromString(restoreValue ? getPersistedString(getStringValue())
+                : (String) defaultValue);
+    }
+
+    /**
+     * Decides how to disable dependents.
+     */
+    @Override
+    public boolean shouldDisableDependents() {
+        // There is really only one case we care about, but for consistency
+        // we fill out the dependency tree for all of the cases.  If this
+        // is in activation mode (CF), we look for the encoded toggle value
+        // in the string.  If this in confirm mode (VM), then we just
+        // examine the number field.
+        // Note: The toggle value is stored in the string in an encoded
+        // manner (refer to setValueFromString and getStringValue below).
+        boolean shouldDisable = false;
+        if ((mConfirmationMode == CM_ACTIVATION) && (mEncodedText != null)) {
+            String[] inValues = mEncodedText.split(":", 2);
+            shouldDisable = inValues[0].equals(VALUE_ON);
+        } else {
+            shouldDisable = (TextUtils.isEmpty(mPhoneNumber) && (mConfirmationMode == CM_CONFIRM));
+        }
+        return shouldDisable;
+    }
+
+    /**
+     * Override persistString so that we can get a hold of the EditTextPreference's
+     * text field.
+     */
+    private String mEncodedText = null;
+    @Override
+    protected boolean persistString(String value) {
+        mEncodedText = value;
+        return super.persistString(value);
+    }
+
+
+    /*
+     * Summary On handling code
+     */
+    //set the Summary for the on state (relevant only in CM_ACTIVATION mode)
+    public EditPhoneNumberPreference setSummaryOn(CharSequence summary) {
+        mSummaryOn = summary;
+        if (isToggled()) {
+            notifyChanged();
+        }
+        return this;
+    }
+
+    //set the Summary for the on state, given a string resource id
+    // (relevant only in CM_ACTIVATION mode)
+    public EditPhoneNumberPreference setSummaryOn(int summaryResId) {
+        return setSummaryOn(getContext().getString(summaryResId));
+    }
+
+    //get the summary string for the on state
+    public CharSequence getSummaryOn() {
+        return mSummaryOn;
+    }
+
+
+    /*
+     * Summary Off handling code
+     */
+    //set the Summary for the off state (relevant only in CM_ACTIVATION mode)
+    public EditPhoneNumberPreference setSummaryOff(CharSequence summary) {
+        mSummaryOff = summary;
+        if (!isToggled()) {
+            notifyChanged();
+        }
+        return this;
+    }
+
+    //set the Summary for the off state, given a string resource id
+    // (relevant only in CM_ACTIVATION mode)
+    public EditPhoneNumberPreference setSummaryOff(int summaryResId) {
+        return setSummaryOff(getContext().getString(summaryResId));
+    }
+
+    //get the summary string for the off state
+    public CharSequence getSummaryOff() {
+        return mSummaryOff;
+    }
+
+
+    /*
+     * Methods to get and set from encoded strings.
+     */
+    //set the values given an encoded string.
+    protected void setValueFromString(String value) {
+        String[] inValues = value.split(":", 2);
+        setToggled(inValues[0].equals(VALUE_ON));
+        setPhoneNumber(inValues[1]);
+    }
+
+    //retrieve the state of this preference in the form of an encoded string
+    protected String getStringValue() {
+        return ((isToggled() ? VALUE_ON : VALUE_OFF) + VALUE_SEPARATOR + getPhoneNumber());
+    }
+
+    /**
+     * Externally visible method to bring up the dialog.
+     *
+     * Generally used when we are navigating the user to this preference.
+     */
+    public void showPhoneNumberDialog() {
+        showDialog(null);
+    }
+}
diff --git a/src/com/android/phone/EditPinPreference.java b/src/com/android/phone/EditPinPreference.java
new file mode 100644
index 0000000..af0040d
--- /dev/null
+++ b/src/com/android/phone/EditPinPreference.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.preference.EditTextPreference;
+import android.text.InputType;
+import android.text.method.DigitsKeyListener;
+import android.text.method.PasswordTransformationMethod;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.EditText;
+
+import java.util.Map;
+
+/**
+ * Class similar to the com.android.settings.EditPinPreference
+ * class, with a couple of modifications, including a different layout 
+ * for the dialog.
+ */
+public class EditPinPreference extends EditTextPreference {
+
+    private boolean shouldHideButtons;
+    
+    interface OnPinEnteredListener {
+        void onPinEntered(EditPinPreference preference, boolean positiveResult);
+    }
+    
+    private OnPinEnteredListener mPinListener;
+
+    public void setOnPinEnteredListener(OnPinEnteredListener listener) {
+        mPinListener = listener;
+    }
+    
+    public EditPinPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public EditPinPreference(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+    
+    /**
+     * Overridden to setup the correct dialog layout, as well as setting up 
+     * other properties for the pin / puk entry field.
+     */
+    @Override
+    protected View onCreateDialogView() {
+        // set the dialog layout
+        setDialogLayoutResource(R.layout.pref_dialog_editpin);
+        
+        View dialog = super.onCreateDialogView();
+
+        getEditText().setInputType(InputType.TYPE_CLASS_NUMBER |
+            InputType.TYPE_NUMBER_VARIATION_PASSWORD);
+
+        return dialog;
+    }
+    
+    @Override
+    protected void onBindDialogView(View view) {
+        super.onBindDialogView(view);
+        
+        // If the layout does not contain an edittext, hide the buttons.
+        shouldHideButtons = (view.findViewById(android.R.id.edit) == null);
+    }
+    
+    @Override
+    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        
+        // hide the buttons if we need to.
+        if (shouldHideButtons) {
+            builder.setPositiveButton(null, this);
+            builder.setNegativeButton(null, this);
+        }
+    }
+    
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+        if (mPinListener != null) {
+            mPinListener.onPinEntered(this, positiveResult);
+        }
+    }
+    
+    /**
+     * Externally visible method to bring up the dialog to 
+     * for multi-step / multi-dialog requests (like changing 
+     * the SIM pin). 
+     */
+    public void showPinDialog() {
+        showDialog(null);
+    }
+}
diff --git a/src/com/android/phone/EmergencyCallHelper.java b/src/com/android/phone/EmergencyCallHelper.java
new file mode 100644
index 0000000..7f5b0d2
--- /dev/null
+++ b/src/com/android/phone/EmergencyCallHelper.java
@@ -0,0 +1,545 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.Constants.CallStatusCode;
+import com.android.phone.InCallUiState.ProgressIndicationType;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.telephony.ServiceState;
+import android.util.Log;
+
+
+/**
+ * Helper class for the {@link CallController} that implements special
+ * behavior related to emergency calls.  Specifically, this class handles
+ * the case of the user trying to dial an emergency number while the radio
+ * is off (i.e. the device is in airplane mode), by forcibly turning the
+ * radio back on, waiting for it to come up, and then retrying the
+ * emergency call.
+ *
+ * This class is instantiated lazily (the first time the user attempts to
+ * make an emergency call from airplane mode) by the the
+ * {@link CallController} singleton.
+ */
+public class EmergencyCallHelper extends Handler {
+    private static final String TAG = "EmergencyCallHelper";
+    private static final boolean DBG = false;
+
+    // Number of times to retry the call, and time between retry attempts.
+    public static final int MAX_NUM_RETRIES = 6;
+    public static final long TIME_BETWEEN_RETRIES = 5000;  // msec
+
+    // Timeout used with our wake lock (just as a safety valve to make
+    // sure we don't hold it forever).
+    public static final long WAKE_LOCK_TIMEOUT = 5 * 60 * 1000;  // 5 minutes in msec
+
+    // Handler message codes; see handleMessage()
+    private static final int START_SEQUENCE = 1;
+    private static final int SERVICE_STATE_CHANGED = 2;
+    private static final int DISCONNECT = 3;
+    private static final int RETRY_TIMEOUT = 4;
+
+    private CallController mCallController;
+    private PhoneGlobals mApp;
+    private CallManager mCM;
+    private Phone mPhone;
+    private String mNumber;  // The emergency number we're trying to dial
+    private int mNumRetriesSoFar;
+
+    // Wake lock we hold while running the whole sequence
+    private PowerManager.WakeLock mPartialWakeLock;
+
+    public EmergencyCallHelper(CallController callController) {
+        if (DBG) log("EmergencyCallHelper constructor...");
+        mCallController = callController;
+        mApp = PhoneGlobals.getInstance();
+        mCM =  mApp.mCM;
+    }
+
+    @Override
+    public void handleMessage(Message msg) {
+        switch (msg.what) {
+            case START_SEQUENCE:
+                startSequenceInternal(msg);
+                break;
+            case SERVICE_STATE_CHANGED:
+                onServiceStateChanged(msg);
+                break;
+            case DISCONNECT:
+                onDisconnect(msg);
+                break;
+            case RETRY_TIMEOUT:
+                onRetryTimeout();
+                break;
+            default:
+                Log.wtf(TAG, "handleMessage: unexpected message: " + msg);
+                break;
+        }
+    }
+
+    /**
+     * Starts the "emergency call from airplane mode" sequence.
+     *
+     * This is the (single) external API of the EmergencyCallHelper class.
+     * This method is called from the CallController placeCall() sequence
+     * if the user dials a valid emergency number, but the radio is
+     * powered-off (presumably due to airplane mode.)
+     *
+     * This method kicks off the following sequence:
+     * - Power on the radio
+     * - Listen for the service state change event telling us the radio has come up
+     * - Then launch the emergency call
+     * - Retry if the call fails with an OUT_OF_SERVICE error
+     * - Retry if we've gone 5 seconds without any response from the radio
+     * - Finally, clean up any leftover state (progress UI, wake locks, etc.)
+     *
+     * This method is safe to call from any thread, since it simply posts
+     * a message to the EmergencyCallHelper's handler (thus ensuring that
+     * the rest of the sequence is entirely serialized, and runs only on
+     * the handler thread.)
+     *
+     * This method does *not* force the in-call UI to come up; our caller
+     * is responsible for doing that (presumably by calling
+     * PhoneApp.displayCallScreen().)
+     */
+    public void startEmergencyCallFromAirplaneModeSequence(String number) {
+        if (DBG) log("startEmergencyCallFromAirplaneModeSequence('" + number + "')...");
+        Message msg = obtainMessage(START_SEQUENCE, number);
+        sendMessage(msg);
+    }
+
+    /**
+     * Actual implementation of startEmergencyCallFromAirplaneModeSequence(),
+     * guaranteed to run on the handler thread.
+     * @see startEmergencyCallFromAirplaneModeSequence()
+     */
+    private void startSequenceInternal(Message msg) {
+        if (DBG) log("startSequenceInternal(): msg = " + msg);
+
+        // First of all, clean up any state (including mPartialWakeLock!)
+        // left over from a prior emergency call sequence.
+        // This ensures that we'll behave sanely if another
+        // startEmergencyCallFromAirplaneModeSequence() comes in while
+        // we're already in the middle of the sequence.
+        cleanup();
+
+        mNumber = (String) msg.obj;
+        if (DBG) log("- startSequenceInternal: Got mNumber: '" + mNumber + "'");
+
+        mNumRetriesSoFar = 0;
+
+        // Reset mPhone to whatever the current default phone is right now.
+        mPhone = mApp.mCM.getDefaultPhone();
+
+        // Wake lock to make sure the processor doesn't go to sleep midway
+        // through the emergency call sequence.
+        PowerManager pm = (PowerManager) mApp.getSystemService(Context.POWER_SERVICE);
+        mPartialWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
+        // Acquire with a timeout, just to be sure we won't hold the wake
+        // lock forever even if a logic bug (in this class) causes us to
+        // somehow never call cleanup().
+        if (DBG) log("- startSequenceInternal: acquiring wake lock");
+        mPartialWakeLock.acquire(WAKE_LOCK_TIMEOUT);
+
+        // No need to check the current service state here, since the only
+        // reason the CallController would call this method in the first
+        // place is if the radio is powered-off.
+        //
+        // So just go ahead and turn the radio on.
+
+        powerOnRadio();  // We'll get an onServiceStateChanged() callback
+                         // when the radio successfully comes up.
+
+        // Next step: when the SERVICE_STATE_CHANGED event comes in,
+        // we'll retry the call; see placeEmergencyCall();
+        // But also, just in case, start a timer to make sure we'll retry
+        // the call even if the SERVICE_STATE_CHANGED event never comes in
+        // for some reason.
+        startRetryTimer();
+
+        // And finally, let the in-call UI know that we need to
+        // display the "Turning on radio..." progress indication.
+        mApp.inCallUiState.setProgressIndication(ProgressIndicationType.TURNING_ON_RADIO);
+
+        // (Our caller is responsible for calling mApp.displayCallScreen().)
+    }
+
+    /**
+     * Handles the SERVICE_STATE_CHANGED event.
+     *
+     * (Normally this event tells us that the radio has finally come
+     * up.  In that case, it's now safe to actually place the
+     * emergency call.)
+     */
+    private void onServiceStateChanged(Message msg) {
+        ServiceState state = (ServiceState) ((AsyncResult) msg.obj).result;
+        if (DBG) log("onServiceStateChanged()...  new state = " + state);
+
+        // Possible service states:
+        // - STATE_IN_SERVICE        // Normal operation
+        // - STATE_OUT_OF_SERVICE    // Still searching for an operator to register to,
+        //                           // or no radio signal
+        // - STATE_EMERGENCY_ONLY    // Phone is locked; only emergency numbers are allowed
+        // - STATE_POWER_OFF         // Radio is explicitly powered off (airplane mode)
+
+        // Once we reach either STATE_IN_SERVICE or STATE_EMERGENCY_ONLY,
+        // it's finally OK to place the emergency call.
+        boolean okToCall = (state.getState() == ServiceState.STATE_IN_SERVICE)
+                || (state.getState() == ServiceState.STATE_EMERGENCY_ONLY);
+
+        if (okToCall) {
+            // Woo hoo!  It's OK to actually place the call.
+            if (DBG) log("onServiceStateChanged: ok to call!");
+
+            // Deregister for the service state change events.
+            unregisterForServiceStateChanged();
+
+            // Take down the "Turning on radio..." indication.
+            mApp.inCallUiState.clearProgressIndication();
+
+            placeEmergencyCall();
+
+            // The in-call UI is probably still up at this point,
+            // but make sure of that:
+            mApp.displayCallScreen();
+        } else {
+            // The service state changed, but we're still not ready to call yet.
+            // (This probably was the transition from STATE_POWER_OFF to
+            // STATE_OUT_OF_SERVICE, which happens immediately after powering-on
+            // the radio.)
+            //
+            // So just keep waiting; we'll probably get to either
+            // STATE_IN_SERVICE or STATE_EMERGENCY_ONLY very shortly.
+            // (Or even if that doesn't happen, we'll at least do another retry
+            // when the RETRY_TIMEOUT event fires.)
+            if (DBG) log("onServiceStateChanged: not ready to call yet, keep waiting...");
+        }
+    }
+
+    /**
+     * Handles a DISCONNECT event from the telephony layer.
+     *
+     * Even after we successfully place an emergency call (after powering
+     * on the radio), it's still possible for the call to fail with the
+     * disconnect cause OUT_OF_SERVICE.  If so, schedule a retry.
+     */
+    private void onDisconnect(Message msg) {
+        Connection conn = (Connection) ((AsyncResult) msg.obj).result;
+        Connection.DisconnectCause cause = conn.getDisconnectCause();
+        if (DBG) log("onDisconnect: connection '" + conn
+                     + "', addr '" + conn.getAddress() + "', cause = " + cause);
+
+        if (cause == Connection.DisconnectCause.OUT_OF_SERVICE) {
+            // Wait a bit more and try again (or just bail out totally if
+            // we've had too many failures.)
+            if (DBG) log("- onDisconnect: OUT_OF_SERVICE, need to retry...");
+            scheduleRetryOrBailOut();
+        } else {
+            // Any other disconnect cause means we're done.
+            // Either the emergency call succeeded *and* ended normally,
+            // or else there was some error that we can't retry.  In either
+            // case, just clean up our internal state.)
+
+            if (DBG) log("==> Disconnect event; clean up...");
+            cleanup();
+
+            // Nothing else to do here.  If the InCallScreen was visible,
+            // it would have received this disconnect event too (so it'll
+            // show the "Call ended" state and finish itself without any
+            // help from us.)
+        }
+    }
+
+    /**
+     * Handles the retry timer expiring.
+     */
+    private void onRetryTimeout() {
+        PhoneConstants.State phoneState = mCM.getState();
+        int serviceState = mPhone.getServiceState().getState();
+        if (DBG) log("onRetryTimeout():  phone state " + phoneState
+                     + ", service state " + serviceState
+                     + ", mNumRetriesSoFar = " + mNumRetriesSoFar);
+
+        // - If we're actually in a call, we've succeeded.
+        //
+        // - Otherwise, if the radio is now on, that means we successfully got
+        //   out of airplane mode but somehow didn't get the service state
+        //   change event.  In that case, try to place the call.
+        //
+        // - If the radio is still powered off, try powering it on again.
+
+        if (phoneState == PhoneConstants.State.OFFHOOK) {
+            if (DBG) log("- onRetryTimeout: Call is active!  Cleaning up...");
+            cleanup();
+            return;
+        }
+
+        if (serviceState != ServiceState.STATE_POWER_OFF) {
+            // Woo hoo -- we successfully got out of airplane mode.
+
+            // Deregister for the service state change events; we don't need
+            // these any more now that the radio is powered-on.
+            unregisterForServiceStateChanged();
+
+            // Take down the "Turning on radio..." indication.
+            mApp.inCallUiState.clearProgressIndication();
+
+            placeEmergencyCall();  // If the call fails, placeEmergencyCall()
+                                   // will schedule a retry.
+        } else {
+            // Uh oh; we've waited the full TIME_BETWEEN_RETRIES and the
+            // radio is still not powered-on.  Try again...
+
+            if (DBG) log("- Trying (again) to turn on the radio...");
+            powerOnRadio();  // Again, we'll (hopefully) get an onServiceStateChanged()
+                             // callback when the radio successfully comes up.
+
+            // ...and also set a fresh retry timer (or just bail out
+            // totally if we've had too many failures.)
+            scheduleRetryOrBailOut();
+        }
+
+        // Finally, the in-call UI is probably still up at this point,
+        // but make sure of that:
+        mApp.displayCallScreen();
+    }
+
+    /**
+     * Attempt to power on the radio (i.e. take the device out
+     * of airplane mode.)
+     *
+     * Additionally, start listening for service state changes;
+     * we'll eventually get an onServiceStateChanged() callback
+     * when the radio successfully comes up.
+     */
+    private void powerOnRadio() {
+        if (DBG) log("- powerOnRadio()...");
+
+        // We're about to turn on the radio, so arrange to be notified
+        // when the sequence is complete.
+        registerForServiceStateChanged();
+
+        // If airplane mode is on, we turn it off the same way that the
+        // Settings activity turns it off.
+        if (Settings.Global.getInt(mApp.getContentResolver(),
+                                   Settings.Global.AIRPLANE_MODE_ON, 0) > 0) {
+            if (DBG) log("==> Turning off airplane mode...");
+
+            // Change the system setting
+            Settings.Global.putInt(mApp.getContentResolver(),
+                                   Settings.Global.AIRPLANE_MODE_ON, 0);
+
+            // Post the intent
+            Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+            intent.putExtra("state", false);
+            mApp.sendBroadcastAsUser(intent, UserHandle.ALL);
+        } else {
+            // Otherwise, for some strange reason the radio is off
+            // (even though the Settings database doesn't think we're
+            // in airplane mode.)  In this case just turn the radio
+            // back on.
+            if (DBG) log("==> (Apparently) not in airplane mode; manually powering radio on...");
+            mPhone.setRadioPower(true);
+        }
+    }
+
+    /**
+     * Actually initiate the outgoing emergency call.
+     * (We do this once the radio has successfully been powered-up.)
+     *
+     * If the call succeeds, we're done.
+     * If the call fails, schedule a retry of the whole sequence.
+     */
+    private void placeEmergencyCall() {
+        if (DBG) log("placeEmergencyCall()...");
+
+        // Place an outgoing call to mNumber.
+        // Note we call PhoneUtils.placeCall() directly; we don't want any
+        // of the behavior from CallController.placeCallInternal() here.
+        // (Specifically, we don't want to start the "emergency call from
+        // airplane mode" sequence from the beginning again!)
+
+        registerForDisconnect();  // Get notified when this call disconnects
+
+        if (DBG) log("- placing call to '" + mNumber + "'...");
+        int callStatus = PhoneUtils.placeCall(mApp,
+                                              mPhone,
+                                              mNumber,
+                                              null,  // contactUri
+                                              true,  // isEmergencyCall
+                                              null);  // gatewayUri
+        if (DBG) log("- PhoneUtils.placeCall() returned status = " + callStatus);
+
+        boolean success;
+        // Note PhoneUtils.placeCall() returns one of the CALL_STATUS_*
+        // constants, not a CallStatusCode enum value.
+        switch (callStatus) {
+            case PhoneUtils.CALL_STATUS_DIALED:
+                success = true;
+                break;
+
+            case PhoneUtils.CALL_STATUS_DIALED_MMI:
+            case PhoneUtils.CALL_STATUS_FAILED:
+            default:
+                // Anything else is a failure, and we'll need to retry.
+                Log.w(TAG, "placeEmergencyCall(): placeCall() failed: callStatus = " + callStatus);
+                success = false;
+                break;
+        }
+
+        if (success) {
+            if (DBG) log("==> Success from PhoneUtils.placeCall()!");
+            // Ok, the emergency call is (hopefully) under way.
+
+            // We're not done yet, though, so don't call cleanup() here.
+            // (It's still possible that this call will fail, and disconnect
+            // with cause==OUT_OF_SERVICE.  If so, that will trigger a retry
+            // from the onDisconnect() method.)
+        } else {
+            if (DBG) log("==> Failure.");
+            // Wait a bit more and try again (or just bail out totally if
+            // we've had too many failures.)
+            scheduleRetryOrBailOut();
+        }
+    }
+
+    /**
+     * Schedules a retry in response to some failure (either the radio
+     * failing to power on, or a failure when trying to place the call.)
+     * Or, if we've hit the retry limit, bail out of this whole sequence
+     * and display a failure message to the user.
+     */
+    private void scheduleRetryOrBailOut() {
+        mNumRetriesSoFar++;
+        if (DBG) log("scheduleRetryOrBailOut()...  mNumRetriesSoFar is now " + mNumRetriesSoFar);
+
+        if (mNumRetriesSoFar > MAX_NUM_RETRIES) {
+            Log.w(TAG, "scheduleRetryOrBailOut: hit MAX_NUM_RETRIES; giving up...");
+            cleanup();
+            // ...and have the InCallScreen display a generic failure
+            // message.
+            mApp.inCallUiState.setPendingCallStatusCode(CallStatusCode.CALL_FAILED);
+        } else {
+            if (DBG) log("- Scheduling another retry...");
+            startRetryTimer();
+            mApp.inCallUiState.setProgressIndication(ProgressIndicationType.RETRYING);
+        }
+    }
+
+    /**
+     * Clean up when done with the whole sequence: either after
+     * successfully placing *and* ending the emergency call, or after
+     * bailing out because of too many failures.
+     *
+     * The exact cleanup steps are:
+     * - Take down any progress UI (and also ask the in-call UI to refresh itself,
+     *   if it's still visible)
+     * - Double-check that we're not still registered for any telephony events
+     * - Clean up any extraneous handler messages (like retry timeouts) still in the queue
+     * - Make sure we're not still holding any wake locks
+     *
+     * Basically this method guarantees that there will be no more
+     * activity from the EmergencyCallHelper until the CallController
+     * kicks off the whole sequence again with another call to
+     * startEmergencyCallFromAirplaneModeSequence().
+     *
+     * Note we don't call this method simply after a successful call to
+     * placeCall(), since it's still possible the call will disconnect
+     * very quickly with an OUT_OF_SERVICE error.
+     */
+    private void cleanup() {
+        if (DBG) log("cleanup()...");
+
+        // Take down the "Turning on radio..." indication.
+        mApp.inCallUiState.clearProgressIndication();
+
+        unregisterForServiceStateChanged();
+        unregisterForDisconnect();
+        cancelRetryTimer();
+
+        // Release / clean up the wake lock
+        if (mPartialWakeLock != null) {
+            if (mPartialWakeLock.isHeld()) {
+                if (DBG) log("- releasing wake lock");
+                mPartialWakeLock.release();
+            }
+            mPartialWakeLock = null;
+        }
+
+        // And finally, ask the in-call UI to refresh itself (to clean up the
+        // progress indication if necessary), if it's currently visible.
+        mApp.updateInCallScreen();
+    }
+
+    private void startRetryTimer() {
+        removeMessages(RETRY_TIMEOUT);
+        sendEmptyMessageDelayed(RETRY_TIMEOUT, TIME_BETWEEN_RETRIES);
+    }
+
+    private void cancelRetryTimer() {
+        removeMessages(RETRY_TIMEOUT);
+    }
+
+    private void registerForServiceStateChanged() {
+        // Unregister first, just to make sure we never register ourselves
+        // twice.  (We need this because Phone.registerForServiceStateChanged()
+        // does not prevent multiple registration of the same handler.)
+        mPhone.unregisterForServiceStateChanged(this);  // Safe even if not currently registered
+        mPhone.registerForServiceStateChanged(this, SERVICE_STATE_CHANGED, null);
+    }
+
+    private void unregisterForServiceStateChanged() {
+        // This method is safe to call even if we haven't set mPhone yet.
+        if (mPhone != null) {
+            mPhone.unregisterForServiceStateChanged(this);  // Safe even if unnecessary
+        }
+        removeMessages(SERVICE_STATE_CHANGED);  // Clean up any pending messages too
+    }
+
+    private void registerForDisconnect() {
+        // Note: no need to unregister first, since
+        // CallManager.registerForDisconnect() automatically prevents
+        // multiple registration of the same handler.
+        mCM.registerForDisconnect(this, DISCONNECT, null);
+    }
+
+    private void unregisterForDisconnect() {
+        mCM.unregisterForDisconnect(this);  // Safe even if not currently registered
+        removeMessages(DISCONNECT);  // Clean up any pending messages too
+    }
+
+
+    //
+    // Debugging
+    //
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
new file mode 100644
index 0000000..7758b23
--- /dev/null
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -0,0 +1,347 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.app.AlertDialog;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.res.Resources;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.CountDownTimer;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
+
+/**
+ * Displays dialog that enables users to exit Emergency Callback Mode
+ *
+ * @see EmergencyCallbackModeService
+ */
+public class EmergencyCallbackModeExitDialog extends Activity implements OnDismissListener {
+
+    /** Intent to trigger the Emergency Callback Mode exit dialog */
+    static final String ACTION_SHOW_ECM_EXIT_DIALOG =
+            "com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG";
+    /** Used to get the users choice from the return Intent's extra */
+    public static final String EXTRA_EXIT_ECM_RESULT = "exit_ecm_result";
+
+    public static final int EXIT_ECM_BLOCK_OTHERS = 1;
+    public static final int EXIT_ECM_DIALOG = 2;
+    public static final int EXIT_ECM_PROGRESS_DIALOG = 3;
+    public static final int EXIT_ECM_IN_EMERGENCY_CALL_DIALOG = 4;
+
+    AlertDialog mAlertDialog = null;
+    ProgressDialog mProgressDialog = null;
+    CountDownTimer mTimer = null;
+    EmergencyCallbackModeService mService = null;
+    Handler mHandler = null;
+    int mDialogType = 0;
+    long mEcmTimeout = 0;
+    private boolean mInEmergencyCall = false;
+    private static final int ECM_TIMER_RESET = 1;
+    private Phone mPhone = null;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Check if phone is in Emergency Callback Mode. If not, exit.
+        if (!Boolean.parseBoolean(
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
+            finish();
+        }
+
+        mHandler = new Handler();
+
+        // Start thread that will wait for the connection completion so that it can get
+        // timeout value from the service
+        Thread waitForConnectionCompleteThread = new Thread(null, mTask,
+                "EcmExitDialogWaitThread");
+        waitForConnectionCompleteThread.start();
+
+        // Register ECM timer reset notfication
+        mPhone = PhoneGlobals.getPhone();
+        mPhone.registerForEcmTimerReset(mTimerResetHandler, ECM_TIMER_RESET, null);
+
+        // Register receiver for intent closing the dialog
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
+        registerReceiver(mEcmExitReceiver, filter);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(mEcmExitReceiver);
+        // Unregister ECM timer reset notification
+        mPhone.unregisterForEcmTimerReset(mHandler);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        mDialogType = savedInstanceState.getInt("DIALOG_TYPE");
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt("DIALOG_TYPE", mDialogType);
+    }
+
+    /**
+     * Waits until bind to the service completes
+     */
+    private Runnable mTask = new Runnable() {
+        public void run() {
+            Looper.prepare();
+
+            // Bind to the remote service
+            bindService(new Intent(EmergencyCallbackModeExitDialog.this,
+                    EmergencyCallbackModeService.class), mConnection, Context.BIND_AUTO_CREATE);
+
+            // Wait for bind to finish
+            synchronized (EmergencyCallbackModeExitDialog.this) {
+                try {
+                    if (mService == null) {
+                        EmergencyCallbackModeExitDialog.this.wait();
+                    }
+                } catch (InterruptedException e) {
+                    Log.d("ECM", "EmergencyCallbackModeExitDialog InterruptedException: "
+                            + e.getMessage());
+                    e.printStackTrace();
+                }
+            }
+
+            // Get timeout value and call state from the service
+            if (mService != null) {
+                mEcmTimeout = mService.getEmergencyCallbackModeTimeout();
+                mInEmergencyCall = mService.getEmergencyCallbackModeCallState();
+            }
+
+            // Unbind from remote service
+            unbindService(mConnection);
+
+            // Show dialog
+            mHandler.post(new Runnable() {
+                public void run() {
+                    showEmergencyCallbackModeExitDialog();
+                }
+            });
+        }
+    };
+
+    /**
+     * Shows Emergency Callback Mode dialog and starts countdown timer
+     */
+    private void showEmergencyCallbackModeExitDialog() {
+
+        if(mInEmergencyCall) {
+            mDialogType = EXIT_ECM_IN_EMERGENCY_CALL_DIALOG;
+            showDialog(EXIT_ECM_IN_EMERGENCY_CALL_DIALOG);
+        } else {
+            if (getIntent().getAction().equals(
+                    TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS)) {
+                mDialogType = EXIT_ECM_BLOCK_OTHERS;
+                showDialog(EXIT_ECM_BLOCK_OTHERS);
+            } else if (getIntent().getAction().equals(ACTION_SHOW_ECM_EXIT_DIALOG)) {
+                mDialogType = EXIT_ECM_DIALOG;
+                showDialog(EXIT_ECM_DIALOG);
+            }
+
+            mTimer = new CountDownTimer(mEcmTimeout, 1000) {
+                @Override
+                public void onTick(long millisUntilFinished) {
+                    CharSequence text = getDialogText(millisUntilFinished);
+                    mAlertDialog.setMessage(text);
+                }
+
+                @Override
+                public void onFinish() {
+                    //Do nothing
+                }
+            }.start();
+        }
+    }
+
+    /**
+     * Creates dialog that enables users to exit Emergency Callback Mode
+     */
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        switch (id) {
+        case EXIT_ECM_BLOCK_OTHERS:
+        case EXIT_ECM_DIALOG:
+            CharSequence text = getDialogText(mEcmTimeout);
+            mAlertDialog = new AlertDialog.Builder(EmergencyCallbackModeExitDialog.this)
+                    .setIcon(R.drawable.picture_emergency32x32)
+                    .setTitle(R.string.phone_in_ecm_notification_title)
+                    .setMessage(text)
+                    .setPositiveButton(R.string.alert_dialog_yes,
+                            new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog,int whichButton) {
+                                    // User clicked Yes. Exit Emergency Callback Mode.
+                                    mPhone.exitEmergencyCallbackMode();
+
+                                    // Show progress dialog
+                                    showDialog(EXIT_ECM_PROGRESS_DIALOG);
+                                    mTimer.cancel();
+                                }
+                            })
+                    .setNegativeButton(R.string.alert_dialog_no,
+                            new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog, int whichButton) {
+                                    // User clicked No
+                                    setResult(RESULT_OK, (new Intent()).putExtra(
+                                            EXTRA_EXIT_ECM_RESULT, false));
+                                    finish();
+                                }
+                            }).create();
+            mAlertDialog.setOnDismissListener(this);
+            return mAlertDialog;
+
+        case EXIT_ECM_IN_EMERGENCY_CALL_DIALOG:
+            mAlertDialog = new AlertDialog.Builder(EmergencyCallbackModeExitDialog.this)
+                    .setIcon(R.drawable.picture_emergency32x32)
+                    .setTitle(R.string.phone_in_ecm_notification_title)
+                    .setMessage(R.string.alert_dialog_in_ecm_call)
+                    .setNeutralButton(R.string.alert_dialog_dismiss,
+                            new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog, int whichButton) {
+                                    // User clicked Dismiss
+                                    setResult(RESULT_OK, (new Intent()).putExtra(
+                                            EXTRA_EXIT_ECM_RESULT, false));
+                                    finish();
+                                }
+                            }).create();
+            mAlertDialog.setOnDismissListener(this);
+            return mAlertDialog;
+
+        case EXIT_ECM_PROGRESS_DIALOG:
+            mProgressDialog = new ProgressDialog(EmergencyCallbackModeExitDialog.this);
+            mProgressDialog.setMessage(getText(R.string.progress_dialog_exiting_ecm));
+            mProgressDialog.setIndeterminate(true);
+            mProgressDialog.setCancelable(false);
+            return mProgressDialog;
+
+        default:
+            return null;
+        }
+    }
+
+    /**
+     * Returns dialog box text with updated timeout value
+     */
+    private CharSequence getDialogText(long millisUntilFinished) {
+        // Format time
+        int minutes = (int)(millisUntilFinished / 60000);
+        String time = String.format("%d:%02d", minutes,
+                (millisUntilFinished % 60000) / 1000);
+
+        switch (mDialogType) {
+        case EXIT_ECM_BLOCK_OTHERS:
+            return String.format(getResources().getQuantityText(
+                    R.plurals.alert_dialog_not_avaialble_in_ecm, minutes).toString(), time);
+        case EXIT_ECM_DIALOG:
+            return String.format(getResources().getQuantityText(R.plurals.alert_dialog_exit_ecm,
+                    minutes).toString(), time);
+        }
+        return null;
+    }
+
+    /**
+     * Closes activity when dialog is dismissed
+     */
+    public void onDismiss(DialogInterface dialog) {
+        EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
+                .putExtra(EXTRA_EXIT_ECM_RESULT, false));
+        finish();
+    }
+
+    /**
+     * Listens for Emergency Callback Mode state change intents
+     */
+    private BroadcastReceiver mEcmExitReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // Received exit Emergency Callback Mode notification close all dialogs
+            if (intent.getAction().equals(
+                    TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
+                if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+                    if (mAlertDialog != null)
+                        mAlertDialog.dismiss();
+                    if (mProgressDialog != null)
+                        mProgressDialog.dismiss();
+                    EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
+                            .putExtra(EXTRA_EXIT_ECM_RESULT, true));
+                    finish();
+                }
+            }
+        }
+    };
+
+    /**
+     * Class for interacting with the interface of the service
+     */
+    private ServiceConnection mConnection = new ServiceConnection() {
+        public void onServiceConnected(ComponentName className, IBinder service) {
+            mService = ((EmergencyCallbackModeService.LocalBinder)service).getService();
+            // Notify thread that connection is ready
+            synchronized (EmergencyCallbackModeExitDialog.this) {
+                EmergencyCallbackModeExitDialog.this.notify();
+            }
+        }
+
+        public void onServiceDisconnected(ComponentName className) {
+            mService = null;
+        }
+    };
+
+    /**
+     * Class for receiving framework timer reset notifications
+     */
+    private Handler mTimerResetHandler = new Handler () {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case ECM_TIMER_RESET:
+                    if(!((Boolean)((AsyncResult) msg.obj).result).booleanValue()) {
+                        EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
+                                .putExtra(EXTRA_EXIT_ECM_RESULT, false));
+                        finish();
+                    }
+                    break;
+            }
+        }
+    };
+}
diff --git a/src/com/android/phone/EmergencyCallbackModeService.java b/src/com/android/phone/EmergencyCallbackModeService.java
new file mode 100644
index 0000000..b506598
--- /dev/null
+++ b/src/com/android/phone/EmergencyCallbackModeService.java
@@ -0,0 +1,242 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources;
+import android.os.AsyncResult;
+import android.os.Binder;
+import android.os.CountDownTimer;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import com.android.internal.telephony.cdma.CDMAPhone;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
+
+/**
+ * Application service that inserts/removes Emergency Callback Mode notification and
+ * updates Emergency Callback Mode countdown clock in the notification
+ *
+ * @see EmergencyCallbackModeExitDialog
+ */
+public class EmergencyCallbackModeService extends Service {
+
+    // Default Emergency Callback Mode timeout value
+    private static final int DEFAULT_ECM_EXIT_TIMER_VALUE = 300000;
+    private static final String LOG_TAG = "EmergencyCallbackModeService";
+
+    private NotificationManager mNotificationManager = null;
+    private CountDownTimer mTimer = null;
+    private long mTimeLeft = 0;
+    private Phone mPhone = null;
+    private boolean mInEmergencyCall = false;
+
+    private static final int ECM_TIMER_RESET = 1;
+
+    private Handler mHandler = new Handler () {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case ECM_TIMER_RESET:
+                    resetEcmTimer((AsyncResult) msg.obj);
+                    break;
+            }
+        }
+    };
+
+    @Override
+    public void onCreate() {
+        // Check if it is CDMA phone
+        if (PhoneFactory.getDefaultPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_CDMA) {
+            Log.e(LOG_TAG, "Error! Emergency Callback Mode not supported for " +
+                    PhoneFactory.getDefaultPhone().getPhoneName() + " phones");
+            stopSelf();
+        }
+
+        // Register receiver for intents
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
+        filter.addAction(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS);
+        registerReceiver(mEcmReceiver, filter);
+
+        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+
+        // Register ECM timer reset notfication
+        mPhone = PhoneFactory.getDefaultPhone();
+        mPhone.registerForEcmTimerReset(mHandler, ECM_TIMER_RESET, null);
+
+        startTimerNotification();
+    }
+
+    @Override
+    public void onDestroy() {
+        // Unregister receiver
+        unregisterReceiver(mEcmReceiver);
+        // Unregister ECM timer reset notification
+        mPhone.unregisterForEcmTimerReset(mHandler);
+
+        // Cancel the notification and timer
+        mNotificationManager.cancel(R.string.phone_in_ecm_notification_title);
+        mTimer.cancel();
+    }
+
+    /**
+     * Listens for Emergency Callback Mode intents
+     */
+    private BroadcastReceiver mEcmReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // Stop the service when phone exits Emergency Callback Mode
+            if (intent.getAction().equals(
+                    TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
+                if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+                    stopSelf();
+                }
+            }
+            // Show dialog box
+            else if (intent.getAction().equals(
+                    TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS)) {
+                    context.startActivity(
+                            new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS)
+                    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+            }
+        }
+    };
+
+    /**
+     * Start timer notification for Emergency Callback Mode
+     */
+    private void startTimerNotification() {
+        // Get Emergency Callback Mode timeout value
+        long ecmTimeout = SystemProperties.getLong(
+                    TelephonyProperties.PROPERTY_ECM_EXIT_TIMER, DEFAULT_ECM_EXIT_TIMER_VALUE);
+
+        // Show the notification
+        showNotification(ecmTimeout);
+
+        // Start countdown timer for the notification updates
+        mTimer = new CountDownTimer(ecmTimeout, 1000) {
+
+            @Override
+            public void onTick(long millisUntilFinished) {
+                mTimeLeft = millisUntilFinished;
+                EmergencyCallbackModeService.this.showNotification(millisUntilFinished);
+            }
+
+            @Override
+            public void onFinish() {
+                //Do nothing
+            }
+
+        }.start();
+    }
+
+    /**
+     * Shows notification for Emergency Callback Mode
+     */
+    private void showNotification(long millisUntilFinished) {
+
+        // Set the icon and text
+        Notification notification = new Notification(
+                R.drawable.picture_emergency25x25,
+                getText(R.string.phone_entered_ecm_text), 0);
+
+        // PendingIntent to launch Emergency Callback Mode Exit activity if the user selects
+        // this notification
+        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
+                new Intent(EmergencyCallbackModeExitDialog.ACTION_SHOW_ECM_EXIT_DIALOG), 0);
+
+        // Format notification string
+        String text = null;
+        if(mInEmergencyCall) {
+            text = getText(R.string.phone_in_ecm_call_notification_text).toString();
+        } else {
+            int minutes = (int)(millisUntilFinished / 60000);
+            String time = String.format("%d:%02d", minutes, (millisUntilFinished % 60000) / 1000);
+            text = String.format(getResources().getQuantityText(
+                     R.plurals.phone_in_ecm_notification_time, minutes).toString(), time);
+        }
+        // Set the info in the notification
+        notification.setLatestEventInfo(this, getText(R.string.phone_in_ecm_notification_title),
+                text, contentIntent);
+
+        notification.flags = Notification.FLAG_ONGOING_EVENT;
+
+        // Show notification
+        mNotificationManager.notify(R.string.phone_in_ecm_notification_title, notification);
+    }
+
+    /**
+     * Handle ECM_TIMER_RESET notification
+     */
+    private void resetEcmTimer(AsyncResult r) {
+        boolean isTimerCanceled = ((Boolean)r.result).booleanValue();
+
+        if (isTimerCanceled) {
+            mInEmergencyCall = true;
+            mTimer.cancel();
+            showNotification(0);
+        } else {
+            mInEmergencyCall = false;
+            startTimerNotification();
+        }
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+
+    // This is the object that receives interactions from clients.
+    private final IBinder mBinder = new LocalBinder();
+
+    /**
+     * Class for clients to access
+     */
+    public class LocalBinder extends Binder {
+        EmergencyCallbackModeService getService() {
+            return EmergencyCallbackModeService.this;
+        }
+    }
+
+    /**
+     * Returns Emergency Callback Mode timeout value
+     */
+    public long getEmergencyCallbackModeTimeout() {
+        return mTimeLeft;
+    }
+
+    /**
+     * Returns Emergency Callback Mode call state
+     */
+    public boolean getEmergencyCallbackModeCallState() {
+        return mInEmergencyCall;
+    }
+}
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
new file mode 100644
index 0000000..6900183
--- /dev/null
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -0,0 +1,639 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.StatusBarManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources;
+import android.media.AudioManager;
+import android.media.ToneGenerator;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.text.method.DialerKeyListener;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager;
+import android.widget.EditText;
+
+import com.android.phone.common.HapticFeedback;
+
+
+/**
+ * EmergencyDialer is a special dialer that is used ONLY for dialing emergency calls.
+ *
+ * It's a simplified version of the regular dialer (i.e. the TwelveKeyDialer
+ * activity from apps/Contacts) that:
+ *   1. Allows ONLY emergency calls to be dialed
+ *   2. Disallows voicemail functionality
+ *   3. Uses the FLAG_SHOW_WHEN_LOCKED window manager flag to allow this
+ *      activity to stay in front of the keyguard.
+ *
+ * TODO: Even though this is an ultra-simplified version of the normal
+ * dialer, there's still lots of code duplication between this class and
+ * the TwelveKeyDialer class from apps/Contacts.  Could the common code be
+ * moved into a shared base class that would live in the framework?
+ * Or could we figure out some way to move *this* class into apps/Contacts
+ * also?
+ */
+public class EmergencyDialer extends Activity implements View.OnClickListener,
+        View.OnLongClickListener, View.OnHoverListener, View.OnKeyListener, TextWatcher {
+    // Keys used with onSaveInstanceState().
+    private static final String LAST_NUMBER = "lastNumber";
+
+    // Intent action for this activity.
+    public static final String ACTION_DIAL = "com.android.phone.EmergencyDialer.DIAL";
+
+    // List of dialer button IDs.
+    private static final int[] DIALER_KEYS = new int[] {
+            R.id.one, R.id.two, R.id.three,
+            R.id.four, R.id.five, R.id.six,
+            R.id.seven, R.id.eight, R.id.nine,
+            R.id.star, R.id.zero, R.id.pound };
+
+    // Debug constants.
+    private static final boolean DBG = false;
+    private static final String LOG_TAG = "EmergencyDialer";
+
+    private PhoneGlobals mApp;
+    private StatusBarManager mStatusBarManager;
+    private AccessibilityManager mAccessibilityManager;
+
+    /** The length of DTMF tones in milliseconds */
+    private static final int TONE_LENGTH_MS = 150;
+
+    /** The DTMF tone volume relative to other sounds in the stream */
+    private static final int TONE_RELATIVE_VOLUME = 80;
+
+    /** Stream type used to play the DTMF tones off call, and mapped to the volume control keys */
+    private static final int DIAL_TONE_STREAM_TYPE = AudioManager.STREAM_DTMF;
+
+    private static final int BAD_EMERGENCY_NUMBER_DIALOG = 0;
+
+    private static final int USER_ACTIVITY_TIMEOUT_WHEN_NO_PROX_SENSOR = 15000; // millis
+
+    EditText mDigits;
+    private View mDialButton;
+    private View mDelete;
+
+    private ToneGenerator mToneGenerator;
+    private Object mToneGeneratorLock = new Object();
+
+    // determines if we want to playback local DTMF tones.
+    private boolean mDTMFToneEnabled;
+
+    // Haptic feedback (vibration) for dialer key presses.
+    private HapticFeedback mHaptic = new HapticFeedback();
+
+    // close activity when screen turns off
+    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
+                finish();
+            }
+        }
+    };
+
+    private String mLastNumber; // last number we tried to dial. Used to restore error dialog.
+
+    @Override
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // Do nothing
+    }
+
+    @Override
+    public void onTextChanged(CharSequence input, int start, int before, int changeCount) {
+        // Do nothing
+    }
+
+    @Override
+    public void afterTextChanged(Editable input) {
+        // Check for special sequences, in particular the "**04" or "**05"
+        // sequences that allow you to enter PIN or PUK-related codes.
+        //
+        // But note we *don't* allow most other special sequences here,
+        // like "secret codes" (*#*#<code>#*#*) or IMEI display ("*#06#"),
+        // since those shouldn't be available if the device is locked.
+        //
+        // So we call SpecialCharSequenceMgr.handleCharsForLockedDevice()
+        // here, not the regular handleChars() method.
+        if (SpecialCharSequenceMgr.handleCharsForLockedDevice(this, input.toString(), this)) {
+            // A special sequence was entered, clear the digits
+            mDigits.getText().clear();
+        }
+
+        updateDialAndDeleteButtonStateEnabledAttr();
+    }
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        mApp = PhoneGlobals.getInstance();
+        mStatusBarManager = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
+        mAccessibilityManager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
+
+        // Allow this activity to be displayed in front of the keyguard / lockscreen.
+        WindowManager.LayoutParams lp = getWindow().getAttributes();
+        lp.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
+        if (!mApp.proximitySensorModeEnabled()) {
+            // When no proximity sensor is available, use a shorter timeout.
+            lp.userActivityTimeout = USER_ACTIVITY_TIMEOUT_WHEN_NO_PROX_SENSOR;
+        }
+        getWindow().setAttributes(lp);
+
+        setContentView(R.layout.emergency_dialer);
+
+        mDigits = (EditText) findViewById(R.id.digits);
+        mDigits.setKeyListener(DialerKeyListener.getInstance());
+        mDigits.setOnClickListener(this);
+        mDigits.setOnKeyListener(this);
+        mDigits.setLongClickable(false);
+        if (mAccessibilityManager.isEnabled()) {
+            // The text view must be selected to send accessibility events.
+            mDigits.setSelected(true);
+        }
+        maybeAddNumberFormatting();
+
+        // Check for the presence of the keypad
+        View view = findViewById(R.id.one);
+        if (view != null) {
+            setupKeypad();
+        }
+
+        mDelete = findViewById(R.id.deleteButton);
+        mDelete.setOnClickListener(this);
+        mDelete.setOnLongClickListener(this);
+
+        mDialButton = findViewById(R.id.dialButton);
+
+        // Check whether we should show the onscreen "Dial" button and co.
+        Resources res = getResources();
+        if (res.getBoolean(R.bool.config_show_onscreen_dial_button)) {
+            mDialButton.setOnClickListener(this);
+        } else {
+            mDialButton.setVisibility(View.GONE);
+        }
+
+        if (icicle != null) {
+            super.onRestoreInstanceState(icicle);
+        }
+
+        // Extract phone number from intent
+        Uri data = getIntent().getData();
+        if (data != null && (Constants.SCHEME_TEL.equals(data.getScheme()))) {
+            String number = PhoneNumberUtils.getNumberFromIntent(getIntent(), this);
+            if (number != null) {
+                mDigits.setText(number);
+            }
+        }
+
+        // if the mToneGenerator creation fails, just continue without it.  It is
+        // a local audio signal, and is not as important as the dtmf tone itself.
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator == null) {
+                try {
+                    mToneGenerator = new ToneGenerator(DIAL_TONE_STREAM_TYPE, TONE_RELATIVE_VOLUME);
+                } catch (RuntimeException e) {
+                    Log.w(LOG_TAG, "Exception caught while creating local tone generator: " + e);
+                    mToneGenerator = null;
+                }
+            }
+        }
+
+        final IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
+        registerReceiver(mBroadcastReceiver, intentFilter);
+
+        try {
+            mHaptic.init(this, res.getBoolean(R.bool.config_enable_dialer_key_vibration));
+        } catch (Resources.NotFoundException nfe) {
+             Log.e(LOG_TAG, "Vibrate control bool missing.", nfe);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator != null) {
+                mToneGenerator.release();
+                mToneGenerator = null;
+            }
+        }
+        unregisterReceiver(mBroadcastReceiver);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle icicle) {
+        mLastNumber = icicle.getString(LAST_NUMBER);
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putString(LAST_NUMBER, mLastNumber);
+    }
+
+    /**
+     * Explicitly turn off number formatting, since it gets in the way of the emergency
+     * number detector
+     */
+    protected void maybeAddNumberFormatting() {
+        // Do nothing.
+    }
+
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+
+        // This can't be done in onCreate(), since the auto-restoring of the digits
+        // will play DTMF tones for all the old digits if it is when onRestoreSavedInstanceState()
+        // is called. This method will be called every time the activity is created, and
+        // will always happen after onRestoreSavedInstanceState().
+        mDigits.addTextChangedListener(this);
+    }
+
+    private void setupKeypad() {
+        // Setup the listeners for the buttons
+        for (int id : DIALER_KEYS) {
+            final View key = findViewById(id);
+            key.setOnClickListener(this);
+            key.setOnHoverListener(this);
+        }
+
+        View view = findViewById(R.id.zero);
+        view.setOnLongClickListener(this);
+    }
+
+    /**
+     * handle key events
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            // Happen when there's a "Call" hard button.
+            case KeyEvent.KEYCODE_CALL: {
+                if (TextUtils.isEmpty(mDigits.getText().toString())) {
+                    // if we are adding a call from the InCallScreen and the phone
+                    // number entered is empty, we just close the dialer to expose
+                    // the InCallScreen under it.
+                    finish();
+                } else {
+                    // otherwise, we place the call.
+                    placeCall();
+                }
+                return true;
+            }
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void keyPressed(int keyCode) {
+        mHaptic.vibrate();
+        KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
+        mDigits.onKeyDown(keyCode, event);
+    }
+
+    @Override
+    public boolean onKey(View view, int keyCode, KeyEvent event) {
+        switch (view.getId()) {
+            case R.id.digits:
+                // Happen when "Done" button of the IME is pressed. This can happen when this
+                // Activity is forced into landscape mode due to a desk dock.
+                if (keyCode == KeyEvent.KEYCODE_ENTER
+                        && event.getAction() == KeyEvent.ACTION_UP) {
+                    placeCall();
+                    return true;
+                }
+                break;
+        }
+        return false;
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.one: {
+                playTone(ToneGenerator.TONE_DTMF_1);
+                keyPressed(KeyEvent.KEYCODE_1);
+                return;
+            }
+            case R.id.two: {
+                playTone(ToneGenerator.TONE_DTMF_2);
+                keyPressed(KeyEvent.KEYCODE_2);
+                return;
+            }
+            case R.id.three: {
+                playTone(ToneGenerator.TONE_DTMF_3);
+                keyPressed(KeyEvent.KEYCODE_3);
+                return;
+            }
+            case R.id.four: {
+                playTone(ToneGenerator.TONE_DTMF_4);
+                keyPressed(KeyEvent.KEYCODE_4);
+                return;
+            }
+            case R.id.five: {
+                playTone(ToneGenerator.TONE_DTMF_5);
+                keyPressed(KeyEvent.KEYCODE_5);
+                return;
+            }
+            case R.id.six: {
+                playTone(ToneGenerator.TONE_DTMF_6);
+                keyPressed(KeyEvent.KEYCODE_6);
+                return;
+            }
+            case R.id.seven: {
+                playTone(ToneGenerator.TONE_DTMF_7);
+                keyPressed(KeyEvent.KEYCODE_7);
+                return;
+            }
+            case R.id.eight: {
+                playTone(ToneGenerator.TONE_DTMF_8);
+                keyPressed(KeyEvent.KEYCODE_8);
+                return;
+            }
+            case R.id.nine: {
+                playTone(ToneGenerator.TONE_DTMF_9);
+                keyPressed(KeyEvent.KEYCODE_9);
+                return;
+            }
+            case R.id.zero: {
+                playTone(ToneGenerator.TONE_DTMF_0);
+                keyPressed(KeyEvent.KEYCODE_0);
+                return;
+            }
+            case R.id.pound: {
+                playTone(ToneGenerator.TONE_DTMF_P);
+                keyPressed(KeyEvent.KEYCODE_POUND);
+                return;
+            }
+            case R.id.star: {
+                playTone(ToneGenerator.TONE_DTMF_S);
+                keyPressed(KeyEvent.KEYCODE_STAR);
+                return;
+            }
+            case R.id.deleteButton: {
+                keyPressed(KeyEvent.KEYCODE_DEL);
+                return;
+            }
+            case R.id.dialButton: {
+                mHaptic.vibrate();  // Vibrate here too, just like we do for the regular keys
+                placeCall();
+                return;
+            }
+            case R.id.digits: {
+                if (mDigits.length() != 0) {
+                    mDigits.setCursorVisible(true);
+                }
+                return;
+            }
+        }
+    }
+
+    /**
+     * Implemented for {@link android.view.View.OnHoverListener}. Handles touch
+     * events for accessibility when touch exploration is enabled.
+     */
+    @Override
+    public boolean onHover(View v, MotionEvent event) {
+        // When touch exploration is turned on, lifting a finger while inside
+        // the button's hover target bounds should perform a click action.
+        if (mAccessibilityManager.isEnabled()
+                && mAccessibilityManager.isTouchExplorationEnabled()) {
+
+            switch (event.getActionMasked()) {
+                case MotionEvent.ACTION_HOVER_ENTER:
+                    // Lift-to-type temporarily disables double-tap activation.
+                    v.setClickable(false);
+                    break;
+                case MotionEvent.ACTION_HOVER_EXIT:
+                    final int left = v.getPaddingLeft();
+                    final int right = (v.getWidth() - v.getPaddingRight());
+                    final int top = v.getPaddingTop();
+                    final int bottom = (v.getHeight() - v.getPaddingBottom());
+                    final int x = (int) event.getX();
+                    final int y = (int) event.getY();
+                    if ((x > left) && (x < right) && (y > top) && (y < bottom)) {
+                        v.performClick();
+                    }
+                    v.setClickable(true);
+                    break;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * called for long touch events
+     */
+    @Override
+    public boolean onLongClick(View view) {
+        int id = view.getId();
+        switch (id) {
+            case R.id.deleteButton: {
+                mDigits.getText().clear();
+                // TODO: The framework forgets to clear the pressed
+                // status of disabled button. Until this is fixed,
+                // clear manually the pressed status. b/2133127
+                mDelete.setPressed(false);
+                return true;
+            }
+            case R.id.zero: {
+                keyPressed(KeyEvent.KEYCODE_PLUS);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        // retrieve the DTMF tone play back setting.
+        mDTMFToneEnabled = Settings.System.getInt(getContentResolver(),
+                Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
+
+        // Retrieve the haptic feedback setting.
+        mHaptic.checkSystemSetting();
+
+        // if the mToneGenerator creation fails, just continue without it.  It is
+        // a local audio signal, and is not as important as the dtmf tone itself.
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator == null) {
+                try {
+                    mToneGenerator = new ToneGenerator(AudioManager.STREAM_DTMF,
+                            TONE_RELATIVE_VOLUME);
+                } catch (RuntimeException e) {
+                    Log.w(LOG_TAG, "Exception caught while creating local tone generator: " + e);
+                    mToneGenerator = null;
+                }
+            }
+        }
+
+        // Disable the status bar and set the poke lock timeout to medium.
+        // There is no need to do anything with the wake lock.
+        if (DBG) Log.d(LOG_TAG, "disabling status bar, set to long timeout");
+        mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
+
+        updateDialAndDeleteButtonStateEnabledAttr();
+    }
+
+    @Override
+    public void onPause() {
+        // Reenable the status bar and set the poke lock timeout to default.
+        // There is no need to do anything with the wake lock.
+        if (DBG) Log.d(LOG_TAG, "reenabling status bar and closing the dialer");
+        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+
+        super.onPause();
+
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator != null) {
+                mToneGenerator.release();
+                mToneGenerator = null;
+            }
+        }
+    }
+
+    /**
+     * place the call, but check to make sure it is a viable number.
+     */
+    private void placeCall() {
+        mLastNumber = mDigits.getText().toString();
+        if (PhoneNumberUtils.isLocalEmergencyNumber(mLastNumber, this)) {
+            if (DBG) Log.d(LOG_TAG, "placing call to " + mLastNumber);
+
+            // place the call if it is a valid number
+            if (mLastNumber == null || !TextUtils.isGraphic(mLastNumber)) {
+                // There is no number entered.
+                playTone(ToneGenerator.TONE_PROP_NACK);
+                return;
+            }
+            Intent intent = new Intent(Intent.ACTION_CALL_EMERGENCY);
+            intent.setData(Uri.fromParts(Constants.SCHEME_TEL, mLastNumber, null));
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            startActivity(intent);
+            finish();
+        } else {
+            if (DBG) Log.d(LOG_TAG, "rejecting bad requested number " + mLastNumber);
+
+            // erase the number and throw up an alert dialog.
+            mDigits.getText().delete(0, mDigits.getText().length());
+            showDialog(BAD_EMERGENCY_NUMBER_DIALOG);
+        }
+    }
+
+    /**
+     * Plays the specified tone for TONE_LENGTH_MS milliseconds.
+     *
+     * The tone is played locally, using the audio stream for phone calls.
+     * Tones are played only if the "Audible touch tones" user preference
+     * is checked, and are NOT played if the device is in silent mode.
+     *
+     * @param tone a tone code from {@link ToneGenerator}
+     */
+    void playTone(int tone) {
+        // if local tone playback is disabled, just return.
+        if (!mDTMFToneEnabled) {
+            return;
+        }
+
+        // Also do nothing if the phone is in silent mode.
+        // We need to re-check the ringer mode for *every* playTone()
+        // call, rather than keeping a local flag that's updated in
+        // onResume(), since it's possible to toggle silent mode without
+        // leaving the current activity (via the ENDCALL-longpress menu.)
+        AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+        int ringerMode = audioManager.getRingerMode();
+        if ((ringerMode == AudioManager.RINGER_MODE_SILENT)
+            || (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {
+            return;
+        }
+
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator == null) {
+                Log.w(LOG_TAG, "playTone: mToneGenerator == null, tone: " + tone);
+                return;
+            }
+
+            // Start the new tone (will stop any playing tone)
+            mToneGenerator.startTone(tone, TONE_LENGTH_MS);
+        }
+    }
+
+    private CharSequence createErrorMessage(String number) {
+        if (!TextUtils.isEmpty(number)) {
+            return getString(R.string.dial_emergency_error, mLastNumber);
+        } else {
+            return getText(R.string.dial_emergency_empty_error).toString();
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        AlertDialog dialog = null;
+        if (id == BAD_EMERGENCY_NUMBER_DIALOG) {
+            // construct dialog
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(getText(R.string.emergency_enable_radio_dialog_title))
+                    .setMessage(createErrorMessage(mLastNumber))
+                    .setPositiveButton(R.string.ok, null)
+                    .setCancelable(true).create();
+
+            // blur stuff behind the dialog
+            dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+        }
+        return dialog;
+    }
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog) {
+        super.onPrepareDialog(id, dialog);
+        if (id == BAD_EMERGENCY_NUMBER_DIALOG) {
+            AlertDialog alert = (AlertDialog) dialog;
+            alert.setMessage(createErrorMessage(mLastNumber));
+        }
+    }
+
+    /**
+     * Update the enabledness of the "Dial" and "Backspace" buttons if applicable.
+     */
+    private void updateDialAndDeleteButtonStateEnabledAttr() {
+        final boolean notEmpty = mDigits.length() != 0;
+
+        mDialButton.setEnabled(notEmpty);
+        mDelete.setEnabled(notEmpty);
+    }
+}
diff --git a/src/com/android/phone/EnableFdnScreen.java b/src/com/android/phone/EnableFdnScreen.java
new file mode 100644
index 0000000..0db47c3
--- /dev/null
+++ b/src/com/android/phone/EnableFdnScreen.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.text.method.DigitsKeyListener;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+
+/**
+ * UI to enable/disable FDN.
+ */
+public class EnableFdnScreen extends Activity {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    private static final int ENABLE_FDN_COMPLETE = 100;
+
+    private LinearLayout mPinFieldContainer;
+    private EditText mPin2Field;
+    private TextView mStatusField;
+    private boolean mEnable;
+    private Phone mPhone;
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case ENABLE_FDN_COMPLETE:
+                    AsyncResult ar = (AsyncResult) msg.obj;
+                    handleResult(ar);
+                    break;
+            }
+
+            return;
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        setContentView(R.layout.enable_fdn_screen);
+        setupView();
+
+        mPhone = PhoneGlobals.getPhone();
+        mEnable = !mPhone.getIccCard().getIccFdnEnabled();
+
+        int id = mEnable ? R.string.enable_fdn : R.string.disable_fdn;
+        setTitle(getResources().getText(id));
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mPhone = PhoneGlobals.getPhone();
+    }
+
+    private void setupView() {
+        mPin2Field = (EditText) findViewById(R.id.pin);
+        mPin2Field.setKeyListener(DigitsKeyListener.getInstance());
+        mPin2Field.setMovementMethod(null);
+        mPin2Field.setOnClickListener(mClicked);
+
+        mPinFieldContainer = (LinearLayout) findViewById(R.id.pinc);
+        mStatusField = (TextView) findViewById(R.id.status);
+    }
+
+    private void showStatus(CharSequence statusMsg) {
+        if (statusMsg != null) {
+            mStatusField.setText(statusMsg);
+            mStatusField.setVisibility(View.VISIBLE);
+            mPinFieldContainer.setVisibility(View.GONE);
+        } else {
+            mPinFieldContainer.setVisibility(View.VISIBLE);
+            mStatusField.setVisibility(View.GONE);
+        }
+    }
+
+    private String getPin2() {
+        return mPin2Field.getText().toString();
+    }
+
+    private void enableFdn() {
+        Message callback = Message.obtain(mHandler, ENABLE_FDN_COMPLETE);
+        mPhone.getIccCard().setIccFdnEnabled(mEnable, getPin2(), callback);
+        if (DBG) log("enableFdn: please wait...");
+    }
+
+    private void handleResult(AsyncResult ar) {
+        if (ar.exception == null) {
+            if (DBG) log("handleResult: success!");
+            showStatus(getResources().getText(mEnable ?
+                            R.string.enable_fdn_ok : R.string.disable_fdn_ok));
+        } else if (ar.exception instanceof CommandException
+                /* && ((CommandException)ar.exception).getCommandError() ==
+                    CommandException.Error.GENERIC_FAILURE */ ) {
+            if (DBG) log("handleResult: failed!");
+            showStatus(getResources().getText(
+                    R.string.pin_failed));
+        }
+
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                finish();
+            }
+        }, 3000);
+    }
+
+    private View.OnClickListener mClicked = new View.OnClickListener() {
+        public void onClick(View v) {
+            if (TextUtils.isEmpty(mPin2Field.getText())) {
+                return;
+            }
+
+            showStatus(getResources().getText(
+                    R.string.enable_in_progress));
+
+            enableFdn();
+        }
+    };
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[EnableSimPin] " + msg);
+    }
+}
diff --git a/src/com/android/phone/EnableIccPinScreen.java b/src/com/android/phone/EnableIccPinScreen.java
new file mode 100644
index 0000000..160978f
--- /dev/null
+++ b/src/com/android/phone/EnableIccPinScreen.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.text.method.DigitsKeyListener;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+
+/**
+ * UI to enable/disable the ICC PIN.
+ */
+public class EnableIccPinScreen extends Activity {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+
+    private static final int ENABLE_ICC_PIN_COMPLETE = 100;
+    private static final boolean DBG = false;
+
+    private LinearLayout mPinFieldContainer;
+    private EditText mPinField;
+    private TextView mStatusField;
+    private boolean mEnable;
+    private Phone mPhone;
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case ENABLE_ICC_PIN_COMPLETE:
+                    AsyncResult ar = (AsyncResult) msg.obj;
+                    handleResult(ar);
+                    break;
+            }
+
+            return;
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        setContentView(R.layout.enable_sim_pin_screen);
+        setupView();
+
+        mPhone = PhoneGlobals.getPhone();
+        mEnable = !mPhone.getIccCard().getIccLockEnabled();
+
+        int id = mEnable ? R.string.enable_sim_pin : R.string.disable_sim_pin;
+        setTitle(getResources().getText(id));
+    }
+
+    private void setupView() {
+        mPinField = (EditText) findViewById(R.id.pin);
+        mPinField.setKeyListener(DigitsKeyListener.getInstance());
+        mPinField.setMovementMethod(null);
+        mPinField.setOnClickListener(mClicked);
+
+        mPinFieldContainer = (LinearLayout) findViewById(R.id.pinc);
+        mStatusField = (TextView) findViewById(R.id.status);
+    }
+
+    private void showStatus(CharSequence statusMsg) {
+        if (statusMsg != null) {
+            mStatusField.setText(statusMsg);
+            mStatusField.setVisibility(View.VISIBLE);
+            mPinFieldContainer.setVisibility(View.GONE);
+        } else {
+            mPinFieldContainer.setVisibility(View.VISIBLE);
+            mStatusField.setVisibility(View.GONE);
+        }
+    }
+
+    private String getPin() {
+        return mPinField.getText().toString();
+    }
+
+    private void enableIccPin() {
+        Message callback = Message.obtain(mHandler, ENABLE_ICC_PIN_COMPLETE);
+        if (DBG) log("enableIccPin:");
+        mPhone.getIccCard().setIccLockEnabled(mEnable, getPin(), callback);
+        if (DBG) log("enableIccPin: please wait...");
+    }
+
+    private void handleResult(AsyncResult ar) {
+        if (ar.exception == null) {
+            if (DBG) log("handleResult: success!");
+            showStatus(getResources().getText(
+                    mEnable ? R.string.enable_pin_ok : R.string.disable_pin_ok));
+        } else if (ar.exception instanceof CommandException
+                /* && ((CommandException)ar.exception).getCommandError() ==
+                    CommandException.Error.GENERIC_FAILURE */ ) {
+            if (DBG) log("handleResult: failed!");
+            showStatus(getResources().getText(
+                    R.string.pin_failed));
+        }
+
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                finish();
+            }
+        }, 3000);
+    }
+
+    private View.OnClickListener mClicked = new View.OnClickListener() {
+        public void onClick(View v) {
+            if (TextUtils.isEmpty(mPinField.getText())) {
+                return;
+            }
+
+            showStatus(getResources().getText(
+                    R.string.enable_in_progress));
+
+            enableIccPin();
+        }
+    };
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[EnableIccPin] " + msg);
+    }
+}
diff --git a/src/com/android/phone/EventLogTags.logtags b/src/com/android/phone/EventLogTags.logtags
new file mode 100644
index 0000000..474a01c
--- /dev/null
+++ b/src/com/android/phone/EventLogTags.logtags
@@ -0,0 +1,9 @@
+# See system/core/logcat/event.logtags for a description of the format of this file.
+
+option java_package com.android.phone;
+
+70301 phone_ui_enter
+70302 phone_ui_exit
+70303 phone_ui_button_click (text|3)
+70304 phone_ui_ringer_query_elapsed
+70305 phone_ui_multiple_query
diff --git a/src/com/android/phone/FakePhoneActivity.java b/src/com/android/phone/FakePhoneActivity.java
new file mode 100644
index 0000000..686a766
--- /dev/null
+++ b/src/com/android/phone/FakePhoneActivity.java
@@ -0,0 +1,78 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.NotificationManager;
+import android.os.Bundle;
+import com.android.internal.telephony.test.SimulatedRadioControl;
+import android.util.Log;
+import android.view.View.OnClickListener;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+/**
+ * A simple activity that presents you with a UI for faking incoming phone operations.
+ */
+public class FakePhoneActivity extends Activity {
+    private static final String TAG = "FakePhoneActivity";
+
+    private Button mPlaceCall;
+    private EditText mPhoneNumber;
+    SimulatedRadioControl mRadioControl;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        setContentView(R.layout.fake_phone_activity);
+
+        mPlaceCall = (Button) findViewById(R.id.placeCall);
+        mPlaceCall.setOnClickListener(new ButtonListener());
+
+        mPhoneNumber = (EditText) findViewById(R.id.phoneNumber);
+        mPhoneNumber.setOnClickListener(
+                new View.OnClickListener() {
+                    public void onClick(View v) {
+                        mPlaceCall.requestFocus();
+                    }
+                });
+
+        mRadioControl = PhoneGlobals.getPhone().getSimulatedRadioControl();
+
+        Log.i(TAG, "- PhoneApp.getInstance(): " + PhoneGlobals.getInstance());
+        Log.i(TAG, "- PhoneApp.getPhone(): " + PhoneGlobals.getPhone());
+        Log.i(TAG, "- mRadioControl: " + mRadioControl);
+    }
+
+    private class ButtonListener implements OnClickListener {
+        public void onClick(View v) {
+            if (mRadioControl == null) {
+                Log.e("Phone", "SimulatedRadioControl not available, abort!");
+                NotificationManager nm =
+                        (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+                Toast.makeText(FakePhoneActivity.this, "null mRadioControl!",
+                        Toast.LENGTH_SHORT).show();
+                return;
+            }
+            
+            mRadioControl.triggerRing(mPhoneNumber.getText().toString());
+        }
+    }
+}
diff --git a/src/com/android/phone/FdnList.java b/src/com/android/phone/FdnList.java
new file mode 100644
index 0000000..bd9680c
--- /dev/null
+++ b/src/com/android/phone/FdnList.java
@@ -0,0 +1,165 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.ActionBar;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ListView;
+
+/**
+ * FDN List UI for the Phone app.
+ */
+public class FdnList extends ADNList {
+    private static final int MENU_ADD = 1;
+    private static final int MENU_EDIT = 2;
+    private static final int MENU_DELETE = 3;
+
+    private static final String INTENT_EXTRA_NAME = "name";
+    private static final String INTENT_EXTRA_NUMBER = "number";
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    protected Uri resolveIntent() {
+        Intent intent = getIntent();
+        intent.setData(Uri.parse("content://icc/fdn"));
+        return intent.getData();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+
+        Resources r = getResources();
+
+        // Added the icons to the context menu
+        menu.add(0, MENU_ADD, 0, r.getString(R.string.menu_add))
+                .setIcon(android.R.drawable.ic_menu_add);
+        menu.add(0, MENU_EDIT, 0, r.getString(R.string.menu_edit))
+                .setIcon(android.R.drawable.ic_menu_edit);
+        menu.add(0, MENU_DELETE, 0, r.getString(R.string.menu_delete))
+                .setIcon(android.R.drawable.ic_menu_delete);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        super.onPrepareOptionsMenu(menu);
+        boolean hasSelection = (getSelectedItemPosition() >= 0);
+
+        menu.findItem(MENU_ADD).setVisible(true);
+        menu.findItem(MENU_EDIT).setVisible(hasSelection);
+        menu.findItem(MENU_DELETE).setVisible(hasSelection);
+
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:  // See ActionBar#setDisplayHomeAsUpEnabled()
+                Intent intent = new Intent(this, FdnSetting.class);
+                intent.setAction(Intent.ACTION_MAIN);
+                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                startActivity(intent);
+                finish();
+                return true;
+
+            case MENU_ADD:
+                addContact();
+                return true;
+
+            case MENU_EDIT:
+                editSelected();
+                return true;
+
+            case MENU_DELETE:
+                deleteSelected();
+                return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        // TODO: is this what we really want?
+        editSelected(position);
+    }
+
+    private void addContact() {
+        // if we don't put extras "name" when starting this activity, then
+        // EditFdnContactScreen treats it like add contact.
+        Intent intent = new Intent();
+        intent.setClass(this, EditFdnContactScreen.class);
+        startActivity(intent);
+    }
+
+    /**
+     * Overloaded to call editSelected with the current selection
+     * by default.  This method may have a problem with touch UI
+     * since touch UI does not really have a concept of "selected"
+     * items.
+     */
+    private void editSelected() {
+        editSelected(getSelectedItemPosition());
+    }
+
+    /**
+     * Edit the item at the selected position in the list.
+     */
+    private void editSelected(int position) {
+        if (mCursor.moveToPosition(position)) {
+            String name = mCursor.getString(NAME_COLUMN);
+            String number = mCursor.getString(NUMBER_COLUMN);
+
+            Intent intent = new Intent();
+            intent.setClass(this, EditFdnContactScreen.class);
+            intent.putExtra(INTENT_EXTRA_NAME, name);
+            intent.putExtra(INTENT_EXTRA_NUMBER, number);
+            startActivity(intent);
+        }
+    }
+
+    private void deleteSelected() {
+        if (mCursor.moveToPosition(getSelectedItemPosition())) {
+            String name = mCursor.getString(NAME_COLUMN);
+            String number = mCursor.getString(NUMBER_COLUMN);
+
+            Intent intent = new Intent();
+            intent.setClass(this, DeleteFdnContactScreen.class);
+            intent.putExtra(INTENT_EXTRA_NAME, name);
+            intent.putExtra(INTENT_EXTRA_NUMBER, number);
+            startActivity(intent);
+        }
+    }
+}
diff --git a/src/com/android/phone/FdnSetting.java b/src/com/android/phone/FdnSetting.java
new file mode 100644
index 0000000..283d612
--- /dev/null
+++ b/src/com/android/phone/FdnSetting.java
@@ -0,0 +1,493 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.view.MenuItem;
+import android.view.WindowManager;
+import android.widget.Toast;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+
+/**
+ * FDN settings UI for the Phone app.
+ * Rewritten to look and behave closer to the other preferences.
+ */
+public class FdnSetting extends PreferenceActivity
+        implements EditPinPreference.OnPinEnteredListener, DialogInterface.OnCancelListener {
+
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    private Phone mPhone;
+
+    /**
+     * Events we handle.
+     * The first is used for toggling FDN enable, the second for the PIN change.
+     */
+    private static final int EVENT_PIN2_ENTRY_COMPLETE = 100;
+    private static final int EVENT_PIN2_CHANGE_COMPLETE = 200;
+
+    // String keys for preference lookup
+    // We only care about the pin preferences here, the manage FDN contacts
+    // Preference is handled solely in xml.
+    private static final String BUTTON_FDN_ENABLE_KEY = "button_fdn_enable_key";
+    private static final String BUTTON_CHANGE_PIN2_KEY = "button_change_pin2_key";
+
+    private EditPinPreference mButtonEnableFDN;
+    private EditPinPreference mButtonChangePin2;
+
+    // State variables
+    private String mOldPin;
+    private String mNewPin;
+    private String mPuk2;
+    private static final int PIN_CHANGE_OLD = 0;
+    private static final int PIN_CHANGE_NEW = 1;
+    private static final int PIN_CHANGE_REENTER = 2;
+    private static final int PIN_CHANGE_PUK = 3;
+    private static final int PIN_CHANGE_NEW_PIN_FOR_PUK = 4;
+    private static final int PIN_CHANGE_REENTER_PIN_FOR_PUK = 5;
+    private int mPinChangeState;
+    private boolean mIsPuk2Locked;    // Indicates we know that we are PUK2 blocked.
+
+    private static final String SKIP_OLD_PIN_KEY = "skip_old_pin_key";
+    private static final String PIN_CHANGE_STATE_KEY = "pin_change_state_key";
+    private static final String OLD_PIN_KEY = "old_pin_key";
+    private static final String NEW_PIN_KEY = "new_pin_key";
+    private static final String DIALOG_MESSAGE_KEY = "dialog_message_key";
+    private static final String DIALOG_PIN_ENTRY_KEY = "dialog_pin_entry_key";
+
+    // size limits for the pin.
+    private static final int MIN_PIN_LENGTH = 4;
+    private static final int MAX_PIN_LENGTH = 8;
+
+    /**
+     * Delegate to the respective handlers.
+     */
+    @Override
+    public void onPinEntered(EditPinPreference preference, boolean positiveResult) {
+        if (preference == mButtonEnableFDN) {
+            toggleFDNEnable(positiveResult);
+        } else if (preference == mButtonChangePin2){
+            updatePINChangeState(positiveResult);
+        }
+    }
+
+    /**
+     * Attempt to toggle FDN activation.
+     */
+    private void toggleFDNEnable(boolean positiveResult) {
+        if (!positiveResult) {
+            return;
+        }
+
+        // validate the pin first, before submitting it to the RIL for FDN enable.
+        String password = mButtonEnableFDN.getText();
+        if (validatePin (password, false)) {
+            // get the relevant data for the icc call
+            boolean isEnabled = mPhone.getIccCard().getIccFdnEnabled();
+            Message onComplete = mFDNHandler.obtainMessage(EVENT_PIN2_ENTRY_COMPLETE);
+
+            // make fdn request
+            mPhone.getIccCard().setIccFdnEnabled(!isEnabled, password, onComplete);
+        } else {
+            // throw up error if the pin is invalid.
+            displayMessage(R.string.invalidPin2);
+        }
+
+        mButtonEnableFDN.setText("");
+    }
+
+    /**
+     * Attempt to change the pin.
+     */
+    private void updatePINChangeState(boolean positiveResult) {
+        if (DBG) log("updatePINChangeState positive=" + positiveResult
+                + " mPinChangeState=" + mPinChangeState
+                + " mSkipOldPin=" + mIsPuk2Locked);
+
+        if (!positiveResult) {
+            // reset the state on cancel, either to expect PUK2 or PIN2
+            if (!mIsPuk2Locked) {
+                resetPinChangeState();
+            } else {
+                resetPinChangeStateForPUK2();
+            }
+            return;
+        }
+
+        // Progress through the dialog states, generally in this order:
+        //   1. Enter old pin
+        //   2. Enter new pin
+        //   3. Re-Enter new pin
+        // While handling any error conditions that may show up in between.
+        // Also handle the PUK2 entry, if it is requested.
+        //
+        // In general, if any invalid entries are made, the dialog re-
+        // appears with text to indicate what the issue is.
+        switch (mPinChangeState) {
+            case PIN_CHANGE_OLD:
+                mOldPin = mButtonChangePin2.getText();
+                mButtonChangePin2.setText("");
+                // if the pin is not valid, display a message and reset the state.
+                if (validatePin (mOldPin, false)) {
+                    mPinChangeState = PIN_CHANGE_NEW;
+                    displayPinChangeDialog();
+                } else {
+                    displayPinChangeDialog(R.string.invalidPin2, true);
+                }
+                break;
+            case PIN_CHANGE_NEW:
+                mNewPin = mButtonChangePin2.getText();
+                mButtonChangePin2.setText("");
+                // if the new pin is not valid, display a message and reset the state.
+                if (validatePin (mNewPin, false)) {
+                    mPinChangeState = PIN_CHANGE_REENTER;
+                    displayPinChangeDialog();
+                } else {
+                    displayPinChangeDialog(R.string.invalidPin2, true);
+                }
+                break;
+            case PIN_CHANGE_REENTER:
+                // if the re-entered pin is not valid, display a message and reset the state.
+                if (!mNewPin.equals(mButtonChangePin2.getText())) {
+                    mPinChangeState = PIN_CHANGE_NEW;
+                    mButtonChangePin2.setText("");
+                    displayPinChangeDialog(R.string.mismatchPin2, true);
+                } else {
+                    // If the PIN is valid, then we submit the change PIN request.
+                    mButtonChangePin2.setText("");
+                    Message onComplete = mFDNHandler.obtainMessage(
+                            EVENT_PIN2_CHANGE_COMPLETE);
+                    mPhone.getIccCard().changeIccFdnPassword(
+                            mOldPin, mNewPin, onComplete);
+                }
+                break;
+            case PIN_CHANGE_PUK: {
+                    // Doh! too many incorrect requests, PUK requested.
+                    mPuk2 = mButtonChangePin2.getText();
+                    mButtonChangePin2.setText("");
+                    // if the puk is not valid, display
+                    // a message and reset the state.
+                    if (validatePin (mPuk2, true)) {
+                        mPinChangeState = PIN_CHANGE_NEW_PIN_FOR_PUK;
+                        displayPinChangeDialog();
+                    } else {
+                        displayPinChangeDialog(R.string.invalidPuk2, true);
+                    }
+                }
+                break;
+            case PIN_CHANGE_NEW_PIN_FOR_PUK:
+                mNewPin = mButtonChangePin2.getText();
+                mButtonChangePin2.setText("");
+                // if the new pin is not valid, display
+                // a message and reset the state.
+                if (validatePin (mNewPin, false)) {
+                    mPinChangeState = PIN_CHANGE_REENTER_PIN_FOR_PUK;
+                    displayPinChangeDialog();
+                } else {
+                    displayPinChangeDialog(R.string.invalidPin2, true);
+                }
+                break;
+            case PIN_CHANGE_REENTER_PIN_FOR_PUK:
+                // if the re-entered pin is not valid, display
+                // a message and reset the state.
+                if (!mNewPin.equals(mButtonChangePin2.getText())) {
+                    mPinChangeState = PIN_CHANGE_NEW_PIN_FOR_PUK;
+                    mButtonChangePin2.setText("");
+                    displayPinChangeDialog(R.string.mismatchPin2, true);
+                } else {
+                    // Both puk2 and new pin2 are ready to submit
+                    mButtonChangePin2.setText("");
+                    Message onComplete = mFDNHandler.obtainMessage(
+                            EVENT_PIN2_CHANGE_COMPLETE);
+                    mPhone.getIccCard().supplyPuk2(mPuk2, mNewPin, onComplete);
+                }
+                break;
+        }
+    }
+
+    /**
+     * Handler for asynchronous replies from the sim.
+     */
+    private final Handler mFDNHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+
+                // when we are enabling FDN, either we are unsuccessful and display
+                // a toast, or just update the UI.
+                case EVENT_PIN2_ENTRY_COMPLETE: {
+                        AsyncResult ar = (AsyncResult) msg.obj;
+                        if (ar.exception != null) {
+                            // see if PUK2 is requested and alert the user accordingly.
+                            CommandException ce = (CommandException) ar.exception;
+                            if (ce.getCommandError() == CommandException.Error.SIM_PUK2) {
+                                // make sure we set the PUK2 state so that we can skip
+                                // some redundant behaviour.
+                                displayMessage(R.string.fdn_enable_puk2_requested);
+                                resetPinChangeStateForPUK2();
+                            } else {
+                                displayMessage(R.string.pin2_invalid);
+                            }
+                        }
+                        updateEnableFDN();
+                    }
+                    break;
+
+                // when changing the pin we need to pay attention to whether or not
+                // the error requests a PUK (usually after too many incorrect tries)
+                // Set the state accordingly.
+                case EVENT_PIN2_CHANGE_COMPLETE: {
+                        if (DBG)
+                            log("Handle EVENT_PIN2_CHANGE_COMPLETE");
+                        AsyncResult ar = (AsyncResult) msg.obj;
+                        if (ar.exception != null) {
+                            CommandException ce = (CommandException) ar.exception;
+                            if (ce.getCommandError() == CommandException.Error.SIM_PUK2) {
+                                // throw an alert dialog on the screen, displaying the
+                                // request for a PUK2.  set the cancel listener to
+                                // FdnSetting.onCancel().
+                                AlertDialog a = new AlertDialog.Builder(FdnSetting.this)
+                                    .setMessage(R.string.puk2_requested)
+                                    .setCancelable(true)
+                                    .setOnCancelListener(FdnSetting.this)
+                                    .create();
+                                a.getWindow().addFlags(
+                                        WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+                                a.show();
+                            } else {
+                                // set the correct error message depending upon the state.
+                                // Reset the state depending upon or knowledge of the PUK state.
+                                if (!mIsPuk2Locked) {
+                                    displayMessage(R.string.badPin2);
+                                    resetPinChangeState();
+                                } else {
+                                    displayMessage(R.string.badPuk2);
+                                    resetPinChangeStateForPUK2();
+                                }
+                            }
+                        } else {
+                            // reset to normal behaviour on successful change.
+                            displayMessage(R.string.pin2_changed);
+                            resetPinChangeState();
+                        }
+                    }
+                    break;
+            }
+        }
+    };
+
+    /**
+     * Cancel listener for the PUK2 request alert dialog.
+     */
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        // set the state of the preference and then display the dialog.
+        resetPinChangeStateForPUK2();
+        displayPinChangeDialog(0, true);
+    }
+
+    /**
+     * Display a toast for message, like the rest of the settings.
+     */
+    private final void displayMessage(int strId) {
+        Toast.makeText(this, getString(strId), Toast.LENGTH_SHORT)
+            .show();
+    }
+
+    /**
+     * The next two functions are for updating the message field on the dialog.
+     */
+    private final void displayPinChangeDialog() {
+        displayPinChangeDialog(0, true);
+    }
+
+    private final void displayPinChangeDialog(int strId, boolean shouldDisplay) {
+        int msgId;
+        switch (mPinChangeState) {
+            case PIN_CHANGE_OLD:
+                msgId = R.string.oldPin2Label;
+                break;
+            case PIN_CHANGE_NEW:
+            case PIN_CHANGE_NEW_PIN_FOR_PUK:
+                msgId = R.string.newPin2Label;
+                break;
+            case PIN_CHANGE_REENTER:
+            case PIN_CHANGE_REENTER_PIN_FOR_PUK:
+                msgId = R.string.confirmPin2Label;
+                break;
+            case PIN_CHANGE_PUK:
+            default:
+                msgId = R.string.label_puk2_code;
+                break;
+        }
+
+        // append the note / additional message, if needed.
+        if (strId != 0) {
+            mButtonChangePin2.setDialogMessage(getText(msgId) + "\n" + getText(strId));
+        } else {
+            mButtonChangePin2.setDialogMessage(msgId);
+        }
+
+        // only display if requested.
+        if (shouldDisplay) {
+            mButtonChangePin2.showPinDialog();
+        }
+    }
+
+    /**
+     * Reset the state of the pin change dialog.
+     */
+    private final void resetPinChangeState() {
+        if (DBG) log("resetPinChangeState");
+        mPinChangeState = PIN_CHANGE_OLD;
+        displayPinChangeDialog(0, false);
+        mOldPin = mNewPin = "";
+        mIsPuk2Locked = false;
+    }
+
+    /**
+     * Reset the state of the pin change dialog solely for PUK2 use.
+     */
+    private final void resetPinChangeStateForPUK2() {
+        if (DBG) log("resetPinChangeStateForPUK2");
+        mPinChangeState = PIN_CHANGE_PUK;
+        displayPinChangeDialog(0, false);
+        mOldPin = mNewPin = mPuk2 = "";
+        mIsPuk2Locked = true;
+    }
+
+    /**
+     * Validate the pin entry.
+     *
+     * @param pin This is the pin to validate
+     * @param isPuk Boolean indicating whether we are to treat
+     * the pin input as a puk.
+     */
+    private boolean validatePin(String pin, boolean isPuk) {
+
+        // for pin, we have 4-8 numbers, or puk, we use only 8.
+        int pinMinimum = isPuk ? MAX_PIN_LENGTH : MIN_PIN_LENGTH;
+
+        // check validity
+        if (pin == null || pin.length() < pinMinimum || pin.length() > MAX_PIN_LENGTH) {
+            return false;
+        } else {
+            return true;
+        }
+    }
+
+    /**
+     * Reflect the updated FDN state in the UI.
+     */
+    private void updateEnableFDN() {
+        if (mPhone.getIccCard().getIccFdnEnabled()) {
+            mButtonEnableFDN.setTitle(R.string.enable_fdn_ok);
+            mButtonEnableFDN.setSummary(R.string.fdn_enabled);
+            mButtonEnableFDN.setDialogTitle(R.string.disable_fdn);
+        } else {
+            mButtonEnableFDN.setTitle(R.string.disable_fdn_ok);
+            mButtonEnableFDN.setSummary(R.string.fdn_disabled);
+            mButtonEnableFDN.setDialogTitle(R.string.enable_fdn);
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.fdn_setting);
+
+        mPhone = PhoneGlobals.getPhone();
+
+        //get UI object references
+        PreferenceScreen prefSet = getPreferenceScreen();
+        mButtonEnableFDN = (EditPinPreference) prefSet.findPreference(BUTTON_FDN_ENABLE_KEY);
+        mButtonChangePin2 = (EditPinPreference) prefSet.findPreference(BUTTON_CHANGE_PIN2_KEY);
+
+        //assign click listener and update state
+        mButtonEnableFDN.setOnPinEnteredListener(this);
+        updateEnableFDN();
+
+        mButtonChangePin2.setOnPinEnteredListener(this);
+
+        // Only reset the pin change dialog if we're not in the middle of changing it.
+        if (icicle == null) {
+            resetPinChangeState();
+        } else {
+            mIsPuk2Locked = icicle.getBoolean(SKIP_OLD_PIN_KEY);
+            mPinChangeState = icicle.getInt(PIN_CHANGE_STATE_KEY);
+            mOldPin = icicle.getString(OLD_PIN_KEY);
+            mNewPin = icicle.getString(NEW_PIN_KEY);
+            mButtonChangePin2.setDialogMessage(icicle.getString(DIALOG_MESSAGE_KEY));
+            mButtonChangePin2.setText(icicle.getString(DIALOG_PIN_ENTRY_KEY));
+        }
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mPhone = PhoneGlobals.getPhone();
+        updateEnableFDN();
+    }
+
+    /**
+     * Save the state of the pin change.
+     */
+    @Override
+    protected void onSaveInstanceState(Bundle out) {
+        super.onSaveInstanceState(out);
+        out.putBoolean(SKIP_OLD_PIN_KEY, mIsPuk2Locked);
+        out.putInt(PIN_CHANGE_STATE_KEY, mPinChangeState);
+        out.putString(OLD_PIN_KEY, mOldPin);
+        out.putString(NEW_PIN_KEY, mNewPin);
+        out.putString(DIALOG_MESSAGE_KEY, mButtonChangePin2.getDialogMessage().toString());
+        out.putString(DIALOG_PIN_ENTRY_KEY, mButtonChangePin2.getText());
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            CallFeaturesSetting.goUpToTopLevelSetting(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "FdnSetting: " + msg);
+    }
+}
+
diff --git a/src/com/android/phone/GetPin2Screen.java b/src/com/android/phone/GetPin2Screen.java
new file mode 100644
index 0000000..a06b0cf
--- /dev/null
+++ b/src/com/android/phone/GetPin2Screen.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.text.method.DigitsKeyListener;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+/**
+ * Pin2 entry screen.
+ */
+public class GetPin2Screen extends Activity implements TextView.OnEditorActionListener {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+
+    private EditText mPin2Field;
+    private Button mOkButton;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        setContentView(R.layout.get_pin2_screen);
+
+        mPin2Field = (EditText) findViewById(R.id.pin);
+        mPin2Field.setKeyListener(DigitsKeyListener.getInstance());
+        mPin2Field.setMovementMethod(null);
+        mPin2Field.setOnEditorActionListener(this);
+
+        mOkButton = (Button) findViewById(R.id.ok);
+        mOkButton.setOnClickListener(mClicked);
+    }
+
+    private String getPin2() {
+        return mPin2Field.getText().toString();
+    }
+
+    private void returnResult() {
+        Bundle map = new Bundle();
+        map.putString("pin2", getPin2());
+
+        Intent intent = getIntent();
+        Uri uri = intent.getData();
+
+        Intent action = new Intent();
+        if (uri != null) action.setAction(uri.toString());
+        setResult(RESULT_OK, action.putExtras(map));
+        finish();
+    }
+
+    @Override
+    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+        if (actionId == EditorInfo.IME_ACTION_DONE) {
+            mOkButton.performClick();
+            return true;
+        }
+        return false;
+    }
+
+    private final View.OnClickListener mClicked = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (TextUtils.isEmpty(mPin2Field.getText())) {
+                return;
+            }
+
+            returnResult();
+        }
+    };
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[GetPin2] " + msg);
+    }
+}
diff --git a/src/com/android/phone/GsmUmtsAdditionalCallOptions.java b/src/com/android/phone/GsmUmtsAdditionalCallOptions.java
new file mode 100644
index 0000000..cd400f9
--- /dev/null
+++ b/src/com/android/phone/GsmUmtsAdditionalCallOptions.java
@@ -0,0 +1,95 @@
+package com.android.phone;
+
+import android.app.ActionBar;
+import android.content.Intent;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+import android.view.MenuItem;
+
+import java.util.ArrayList;
+
+public class GsmUmtsAdditionalCallOptions extends
+        TimeConsumingPreferenceActivity {
+    private static final String LOG_TAG = "GsmUmtsAdditionalCallOptions";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private static final String BUTTON_CLIR_KEY  = "button_clir_key";
+    private static final String BUTTON_CW_KEY    = "button_cw_key";
+
+    private CLIRListPreference mCLIRButton;
+    private CallWaitingCheckBoxPreference mCWButton;
+
+    private final ArrayList<Preference> mPreferences = new ArrayList<Preference>();
+    private int mInitIndex= 0;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.gsm_umts_additional_options);
+
+        PreferenceScreen prefSet = getPreferenceScreen();
+        mCLIRButton = (CLIRListPreference) prefSet.findPreference(BUTTON_CLIR_KEY);
+        mCWButton = (CallWaitingCheckBoxPreference) prefSet.findPreference(BUTTON_CW_KEY);
+
+        mPreferences.add(mCLIRButton);
+        mPreferences.add(mCWButton);
+
+        if (icicle == null) {
+            if (DBG) Log.d(LOG_TAG, "start to init ");
+            mCLIRButton.init(this, false);
+        } else {
+            if (DBG) Log.d(LOG_TAG, "restore stored states");
+            mInitIndex = mPreferences.size();
+            mCLIRButton.init(this, true);
+            mCWButton.init(this, true);
+            int[] clirArray = icicle.getIntArray(mCLIRButton.getKey());
+            if (clirArray != null) {
+                if (DBG) Log.d(LOG_TAG, "onCreate:  clirArray[0]="
+                        + clirArray[0] + ", clirArray[1]=" + clirArray[1]);
+                mCLIRButton.handleGetCLIRResult(clirArray);
+            } else {
+                mCLIRButton.init(this, false);
+            }
+        }
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        if (mCLIRButton.clirArray != null) {
+            outState.putIntArray(mCLIRButton.getKey(), mCLIRButton.clirArray);
+        }
+    }
+
+    @Override
+    public void onFinished(Preference preference, boolean reading) {
+        if (mInitIndex < mPreferences.size()-1 && !isFinishing()) {
+            mInitIndex++;
+            Preference pref = mPreferences.get(mInitIndex);
+            if (pref instanceof CallWaitingCheckBoxPreference) {
+                ((CallWaitingCheckBoxPreference) pref).init(this, false);
+            }
+        }
+        super.onFinished(preference, reading);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            CallFeaturesSetting.goUpToTopLevelSetting(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/phone/GsmUmtsCallForwardOptions.java b/src/com/android/phone/GsmUmtsCallForwardOptions.java
new file mode 100644
index 0000000..8ecb1bf
--- /dev/null
+++ b/src/com/android/phone/GsmUmtsCallForwardOptions.java
@@ -0,0 +1,181 @@
+package com.android.phone;
+
+import com.android.internal.telephony.CallForwardInfo;
+import com.android.internal.telephony.CommandsInterface;
+
+import android.app.ActionBar;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.util.Log;
+import android.view.MenuItem;
+
+import java.util.ArrayList;
+
+
+public class GsmUmtsCallForwardOptions extends TimeConsumingPreferenceActivity {
+    private static final String LOG_TAG = "GsmUmtsCallForwardOptions";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private static final String NUM_PROJECTION[] = {Phone.NUMBER};
+
+    private static final String BUTTON_CFU_KEY   = "button_cfu_key";
+    private static final String BUTTON_CFB_KEY   = "button_cfb_key";
+    private static final String BUTTON_CFNRY_KEY = "button_cfnry_key";
+    private static final String BUTTON_CFNRC_KEY = "button_cfnrc_key";
+
+    private static final String KEY_TOGGLE = "toggle";
+    private static final String KEY_STATUS = "status";
+    private static final String KEY_NUMBER = "number";
+
+    private CallForwardEditPreference mButtonCFU;
+    private CallForwardEditPreference mButtonCFB;
+    private CallForwardEditPreference mButtonCFNRy;
+    private CallForwardEditPreference mButtonCFNRc;
+
+    private final ArrayList<CallForwardEditPreference> mPreferences =
+            new ArrayList<CallForwardEditPreference> ();
+    private int mInitIndex= 0;
+
+    private boolean mFirstResume;
+    private Bundle mIcicle;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.callforward_options);
+
+        PreferenceScreen prefSet = getPreferenceScreen();
+        mButtonCFU   = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFU_KEY);
+        mButtonCFB   = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFB_KEY);
+        mButtonCFNRy = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFNRY_KEY);
+        mButtonCFNRc = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFNRC_KEY);
+
+        mButtonCFU.setParentActivity(this, mButtonCFU.reason);
+        mButtonCFB.setParentActivity(this, mButtonCFB.reason);
+        mButtonCFNRy.setParentActivity(this, mButtonCFNRy.reason);
+        mButtonCFNRc.setParentActivity(this, mButtonCFNRc.reason);
+
+        mPreferences.add(mButtonCFU);
+        mPreferences.add(mButtonCFB);
+        mPreferences.add(mButtonCFNRy);
+        mPreferences.add(mButtonCFNRc);
+
+        // we wait to do the initialization until onResume so that the
+        // TimeConsumingPreferenceActivity dialog can display as it
+        // relies on onResume / onPause to maintain its foreground state.
+
+        mFirstResume = true;
+        mIcicle = icicle;
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        if (mFirstResume) {
+            if (mIcicle == null) {
+                if (DBG) Log.d(LOG_TAG, "start to init ");
+                mPreferences.get(mInitIndex).init(this, false);
+            } else {
+                mInitIndex = mPreferences.size();
+
+                for (CallForwardEditPreference pref : mPreferences) {
+                    Bundle bundle = mIcicle.getParcelable(pref.getKey());
+                    pref.setToggled(bundle.getBoolean(KEY_TOGGLE));
+                    CallForwardInfo cf = new CallForwardInfo();
+                    cf.number = bundle.getString(KEY_NUMBER);
+                    cf.status = bundle.getInt(KEY_STATUS);
+                    pref.handleCallForwardResult(cf);
+                    pref.init(this, true);
+                }
+            }
+            mFirstResume = false;
+            mIcicle=null;
+        }
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        for (CallForwardEditPreference pref : mPreferences) {
+            Bundle bundle = new Bundle();
+            bundle.putBoolean(KEY_TOGGLE, pref.isToggled());
+            if (pref.callForwardInfo != null) {
+                bundle.putString(KEY_NUMBER, pref.callForwardInfo.number);
+                bundle.putInt(KEY_STATUS, pref.callForwardInfo.status);
+            }
+            outState.putParcelable(pref.getKey(), bundle);
+        }
+    }
+
+    @Override
+    public void onFinished(Preference preference, boolean reading) {
+        if (mInitIndex < mPreferences.size()-1 && !isFinishing()) {
+            mInitIndex++;
+            mPreferences.get(mInitIndex).init(this, false);
+        }
+
+        super.onFinished(preference, reading);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (DBG) Log.d(LOG_TAG, "onActivityResult: done");
+        if (resultCode != RESULT_OK) {
+            if (DBG) Log.d(LOG_TAG, "onActivityResult: contact picker result not OK.");
+            return;
+        }
+        Cursor cursor = null;
+        try {
+            cursor = getContentResolver().query(data.getData(),
+                NUM_PROJECTION, null, null, null);
+            if ((cursor == null) || (!cursor.moveToFirst())) {
+                if (DBG) Log.d(LOG_TAG, "onActivityResult: bad contact data, no results found.");
+                return;
+            }
+
+            switch (requestCode) {
+                case CommandsInterface.CF_REASON_UNCONDITIONAL:
+                    mButtonCFU.onPickActivityResult(cursor.getString(0));
+                    break;
+                case CommandsInterface.CF_REASON_BUSY:
+                    mButtonCFB.onPickActivityResult(cursor.getString(0));
+                    break;
+                case CommandsInterface.CF_REASON_NO_REPLY:
+                    mButtonCFNRy.onPickActivityResult(cursor.getString(0));
+                    break;
+                case CommandsInterface.CF_REASON_NOT_REACHABLE:
+                    mButtonCFNRc.onPickActivityResult(cursor.getString(0));
+                    break;
+                default:
+                    // TODO: may need exception here.
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            CallFeaturesSetting.goUpToTopLevelSetting(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/phone/GsmUmtsCallOptions.java b/src/com/android/phone/GsmUmtsCallOptions.java
new file mode 100644
index 0000000..a9a1940
--- /dev/null
+++ b/src/com/android/phone/GsmUmtsCallOptions.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+
+public class GsmUmtsCallOptions extends PreferenceActivity {
+    private static final String LOG_TAG = "GsmUmtsCallOptions";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.gsm_umts_call_options);
+
+        if (PhoneGlobals.getPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
+            //disable the entire screen
+            getPreferenceScreen().setEnabled(false);
+        }
+    }
+}
diff --git a/src/com/android/phone/GsmUmtsOptions.java b/src/com/android/phone/GsmUmtsOptions.java
new file mode 100644
index 0000000..1f1ac4a
--- /dev/null
+++ b/src/com/android/phone/GsmUmtsOptions.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.content.res.Resources;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
+
+/**
+ * List of Network-specific settings screens.
+ */
+public class GsmUmtsOptions {
+    private static final String LOG_TAG = "GsmUmtsOptions";
+
+    private PreferenceScreen mButtonAPNExpand;
+    private PreferenceScreen mButtonOperatorSelectionExpand;
+    private CheckBoxPreference mButtonPrefer2g;
+
+    private static final String BUTTON_APN_EXPAND_KEY = "button_apn_key";
+    private static final String BUTTON_OPERATOR_SELECTION_EXPAND_KEY = "button_carrier_sel_key";
+    private static final String BUTTON_PREFER_2G_KEY = "button_prefer_2g_key";
+    private PreferenceActivity mPrefActivity;
+    private PreferenceScreen mPrefScreen;
+
+    public GsmUmtsOptions(PreferenceActivity prefActivity, PreferenceScreen prefScreen) {
+        mPrefActivity = prefActivity;
+        mPrefScreen = prefScreen;
+        create();
+    }
+
+    protected void create() {
+        mPrefActivity.addPreferencesFromResource(R.xml.gsm_umts_options);
+        mButtonAPNExpand = (PreferenceScreen) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+        mButtonOperatorSelectionExpand =
+                (PreferenceScreen) mPrefScreen.findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY);
+        mButtonPrefer2g = (CheckBoxPreference) mPrefScreen.findPreference(BUTTON_PREFER_2G_KEY);
+        if (PhoneFactory.getDefaultPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
+            log("Not a GSM phone");
+            mButtonAPNExpand.setEnabled(false);
+            mButtonOperatorSelectionExpand.setEnabled(false);
+            mButtonPrefer2g.setEnabled(false);
+        } else {
+            log("Not a CDMA phone");
+            Resources res = mPrefActivity.getResources();
+
+            // Determine which options to display, for GSM these are defaulted
+            // are defaulted to true in Phone/res/values/config.xml. But for
+            // some operators like verizon they maybe overriden in operator
+            // specific resources or device specifc overlays.
+            if (!res.getBoolean(R.bool.config_apn_expand)) {
+                mPrefScreen.removePreference(mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY));
+            }
+            if (!res.getBoolean(R.bool.config_operator_selection_expand)) {
+                mPrefScreen.removePreference(mPrefScreen
+                        .findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY));
+            }
+            if (!res.getBoolean(R.bool.config_prefer_2g)) {
+                mPrefScreen.removePreference(mPrefScreen.findPreference(BUTTON_PREFER_2G_KEY));
+            }
+
+            if (res.getBoolean(R.bool.csp_enabled)) {
+                if (PhoneFactory.getDefaultPhone().isCspPlmnEnabled()) {
+                    log("[CSP] Enabling Operator Selection menu.");
+                    mButtonOperatorSelectionExpand.setEnabled(true);
+                } else {
+                    log("[CSP] Disabling Operator Selection menu.");
+                    mPrefScreen.removePreference(mPrefScreen
+                          .findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY));
+                }
+            }
+        }
+    }
+
+    public boolean preferenceTreeClick(Preference preference) {
+        if (preference.getKey().equals(BUTTON_PREFER_2G_KEY)) {
+            log("preferenceTreeClick: return true");
+            return true;
+        }
+        log("preferenceTreeClick: return false");
+        return false;
+    }
+
+    protected void log(String s) {
+        android.util.Log.d(LOG_TAG, s);
+    }
+}
diff --git a/src/com/android/phone/INetworkQueryService.aidl b/src/com/android/phone/INetworkQueryService.aidl
new file mode 100644
index 0000000..749163c
--- /dev/null
+++ b/src/com/android/phone/INetworkQueryService.aidl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+ 
+package com.android.phone;
+
+import com.android.phone.INetworkQueryServiceCallback;
+ 
+/**
+ * Service interface to handle queries for available networks.  The
+ * Phone application lets this service interface handle carrier 
+ * availability queries instead of making direct calls to the 
+ * GSMPhone layer.
+ */
+oneway interface INetworkQueryService {
+ 
+    /**
+     * Starts a network query if it has not been started yet, and
+     * request a callback through the INetworkQueryServiceCallback
+     * object on query completion.  If there is an existing request,
+     * then just add the callback to the list of notifications
+     * that will be sent upon query completion.
+     */
+    void startNetworkQuery(in INetworkQueryServiceCallback cb);
+ 
+    /**
+     * Tells the service that the requested query is to be ignored.
+     * This may not do anything for the Query request in the 
+     * underlying RIL, but it ensures that the callback is removed
+     * from the list of notifications.
+     */
+    void stopNetworkQuery(in INetworkQueryServiceCallback cb);
+}
diff --git a/src/com/android/phone/INetworkQueryServiceCallback.aidl b/src/com/android/phone/INetworkQueryServiceCallback.aidl
new file mode 100644
index 0000000..4c32883
--- /dev/null
+++ b/src/com/android/phone/INetworkQueryServiceCallback.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.OperatorInfo;
+
+/**
+ * Service interface to handle callbacks into the activity from the
+ * NetworkQueryService.  These objects are used to notify that a
+ * query is complete and that the results are ready to process.
+ */
+oneway interface INetworkQueryServiceCallback {
+
+    /**
+     * Called upon query completion, handing a status value and an
+     * array of OperatorInfo objects.
+     *
+     * @param networkInfoArray is the list of OperatorInfo. Can be
+     * null, indicating no results were found, or an error.
+     * @param status the status indicating if there were any
+     * problems with the request.
+     */
+    void onQueryComplete(in List<OperatorInfo> networkInfoArray, int status);
+
+}
diff --git a/src/com/android/phone/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
new file mode 100644
index 0000000..aa582a1
--- /dev/null
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.Editable;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.text.method.DialerKeyListener;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.telephony.Phone;
+
+/**
+ * "SIM network unlock" PIN entry screen.
+ *
+ * @see PhoneGlobals.EVENT_SIM_NETWORK_LOCKED
+ *
+ * TODO: This UI should be part of the lock screen, not the
+ * phone app (see bug 1804111).
+ */
+public class IccNetworkDepersonalizationPanel extends IccPanel {
+
+    //debug constants
+    private static final boolean DBG = false;
+
+    //events
+    private static final int EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT = 100;
+
+    private Phone mPhone;
+
+    //UI elements
+    private EditText     mPinEntry;
+    private LinearLayout mEntryPanel;
+    private LinearLayout mStatusPanel;
+    private TextView     mStatusText;
+
+    private Button       mUnlockButton;
+    private Button       mDismissButton;
+
+    //private textwatcher to control text entry.
+    private TextWatcher mPinEntryWatcher = new TextWatcher() {
+        public void beforeTextChanged(CharSequence buffer, int start, int olen, int nlen) {
+        }
+
+        public void onTextChanged(CharSequence buffer, int start, int olen, int nlen) {
+        }
+
+        public void afterTextChanged(Editable buffer) {
+            if (SpecialCharSequenceMgr.handleChars(
+                    getContext(), buffer.toString())) {
+                mPinEntry.getText().clear();
+            }
+        }
+    };
+
+    //handler for unlock function results
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            if (msg.what == EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT) {
+                AsyncResult res = (AsyncResult) msg.obj;
+                if (res.exception != null) {
+                    if (DBG) log("network depersonalization request failure.");
+                    indicateError();
+                    postDelayed(new Runnable() {
+                                    public void run() {
+                                        hideAlert();
+                                        mPinEntry.getText().clear();
+                                        mPinEntry.requestFocus();
+                                    }
+                                }, 3000);
+                } else {
+                    if (DBG) log("network depersonalization success.");
+                    indicateSuccess();
+                    postDelayed(new Runnable() {
+                                    public void run() {
+                                        dismiss();
+                                    }
+                                }, 3000);
+                }
+            }
+        }
+    };
+
+    //constructor
+    public IccNetworkDepersonalizationPanel(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.sim_ndp);
+
+        // PIN entry text field
+        mPinEntry = (EditText) findViewById(R.id.pin_entry);
+        mPinEntry.setKeyListener(DialerKeyListener.getInstance());
+        mPinEntry.setOnClickListener(mUnlockListener);
+
+        // Attach the textwatcher
+        CharSequence text = mPinEntry.getText();
+        Spannable span = (Spannable) text;
+        span.setSpan(mPinEntryWatcher, 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+
+        mEntryPanel = (LinearLayout) findViewById(R.id.entry_panel);
+
+        mUnlockButton = (Button) findViewById(R.id.ndp_unlock);
+        mUnlockButton.setOnClickListener(mUnlockListener);
+
+        // The "Dismiss" button is present in some (but not all) products,
+        // based on the "sim_network_unlock_allow_dismiss" resource.
+        mDismissButton = (Button) findViewById(R.id.ndp_dismiss);
+        if (getContext().getResources().getBoolean(R.bool.sim_network_unlock_allow_dismiss)) {
+            if (DBG) log("Enabling 'Dismiss' button...");
+            mDismissButton.setVisibility(View.VISIBLE);
+            mDismissButton.setOnClickListener(mDismissListener);
+        } else {
+            if (DBG) log("Removing 'Dismiss' button...");
+            mDismissButton.setVisibility(View.GONE);
+        }
+
+        //status panel is used since we're having problems with the alert dialog.
+        mStatusPanel = (LinearLayout) findViewById(R.id.status_panel);
+        mStatusText = (TextView) findViewById(R.id.status_text);
+
+        mPhone = PhoneGlobals.getPhone();
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+    }
+
+    //Mirrors IccPinUnlockPanel.onKeyDown().
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            return true;
+        }
+
+        return super.onKeyDown(keyCode, event);
+    }
+
+    View.OnClickListener mUnlockListener = new View.OnClickListener() {
+        public void onClick(View v) {
+            String pin = mPinEntry.getText().toString();
+
+            if (TextUtils.isEmpty(pin)) {
+                return;
+            }
+
+            if (DBG) log("requesting network depersonalization with code " + pin);
+            mPhone.getIccCard().supplyNetworkDepersonalization(pin,
+                    Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
+            indicateBusy();
+        }
+    };
+
+    private void indicateBusy() {
+        mStatusText.setText(R.string.requesting_unlock);
+        mEntryPanel.setVisibility(View.GONE);
+        mStatusPanel.setVisibility(View.VISIBLE);
+    }
+
+    private void indicateError() {
+        mStatusText.setText(R.string.unlock_failed);
+        mEntryPanel.setVisibility(View.GONE);
+        mStatusPanel.setVisibility(View.VISIBLE);
+    }
+
+    private void indicateSuccess() {
+        mStatusText.setText(R.string.unlock_success);
+        mEntryPanel.setVisibility(View.GONE);
+        mStatusPanel.setVisibility(View.VISIBLE);
+    }
+
+    private void hideAlert() {
+        mEntryPanel.setVisibility(View.VISIBLE);
+        mStatusPanel.setVisibility(View.GONE);
+    }
+
+    View.OnClickListener mDismissListener = new View.OnClickListener() {
+            public void onClick(View v) {
+                if (DBG) log("mDismissListener: skipping depersonalization...");
+                dismiss();
+            }
+        };
+
+    private void log(String msg) {
+        Log.v(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
+    }
+}
diff --git a/src/com/android/phone/IccPanel.java b/src/com/android/phone/IccPanel.java
new file mode 100644
index 0000000..e603a06
--- /dev/null
+++ b/src/com/android/phone/IccPanel.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Dialog;
+import android.app.StatusBarManager;
+import android.content.Context;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.WindowManager;
+import android.view.Window;
+import android.os.Bundle;
+
+/**
+ * Base class for ICC-related panels in the Phone UI.
+ */
+public class IccPanel extends Dialog {
+    protected static final String TAG = PhoneGlobals.LOG_TAG;
+
+    private StatusBarManager mStatusBarManager;
+
+    public IccPanel(Context context) {
+        super(context, R.style.IccPanel);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Window winP = getWindow();
+        winP.setType(WindowManager.LayoutParams.TYPE_PRIORITY_PHONE);
+        winP.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
+                WindowManager.LayoutParams.MATCH_PARENT);
+        winP.setGravity(Gravity.CENTER);
+
+        // TODO: Ideally, we'd like this dialog to be visible in front of the
+        // keyguard, so the user will see it immediately after boot (without
+        // needing to enter the lock pattern or dismiss the keyguard first.)
+        //
+        // However that's not easy to do.  It's not just a matter of setting
+        // the FLAG_SHOW_WHEN_LOCKED and FLAG_DISMISS_KEYGUARD flags on our
+        // window, since we're a Dialog (not an Activity), and the framework
+        // won't ever let a dialog hide the keyguard (because there could
+        // possibly be stuff behind it that shouldn't be seen.)
+        //
+        // So for now, we'll live with the fact that the user has to enter the
+        // lock pattern (or dismiss the keyguard) *before* being able to type
+        // a SIM network unlock PIN.  That's not ideal, but still OK.
+        // (And eventually this will be a moot point once this UI moves
+        // from the phone app to the framework; see bug 1804111).
+
+        // TODO: we shouldn't need the mStatusBarManager calls here either,
+        // once this dialog gets moved into the framework and becomes a truly
+        // full-screen UI.
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        mStatusBarManager = (StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
+
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+    }
+
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            return true;
+        }
+
+        return super.onKeyDown(keyCode, event);
+    }
+}
diff --git a/src/com/android/phone/IccProvider.java b/src/com/android/phone/IccProvider.java
new file mode 100644
index 0000000..827d500
--- /dev/null
+++ b/src/com/android/phone/IccProvider.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+/**
+ * ICC address book content provider.
+ */
+public class IccProvider extends com.android.internal.telephony.IccProvider {
+    public IccProvider() {
+        super();
+    }
+}
diff --git a/src/com/android/phone/InCallControlState.java b/src/com/android/phone/InCallControlState.java
new file mode 100644
index 0000000..e5c7f20
--- /dev/null
+++ b/src/com/android/phone/InCallControlState.java
@@ -0,0 +1,233 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.telephony.PhoneNumberUtils;
+import android.util.Log;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+/**
+ * Helper class to keep track of enabledness, visibility, and "on/off"
+ * or "checked" state of the various controls available in the in-call
+ * UI, based on the current telephony state.
+ *
+ * This class is independent of the exact UI controls used on any given
+ * device.  To avoid cluttering up the "view" code (i.e. InCallTouchUi)
+ * with logic about which functions are available right now, we instead
+ * have that logic here, and provide simple boolean flags to indicate the
+ * state and/or enabledness of all possible in-call user operations.
+ *
+ * (In other words, this is the "model" that corresponds to the "view"
+ * implemented by InCallTouchUi.)
+ */
+public class InCallControlState {
+    private static final String LOG_TAG = "InCallControlState";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private InCallScreen mInCallScreen;
+    private CallManager mCM;
+
+    //
+    // Our "public API": Boolean flags to indicate the state and/or
+    // enabledness of all possible in-call user operations:
+    //
+
+    public boolean manageConferenceVisible;
+    public boolean manageConferenceEnabled;
+    //
+    public boolean canAddCall;
+    //
+    public boolean canEndCall;
+    //
+    public boolean canSwap;
+    public boolean canMerge;
+    //
+    public boolean bluetoothEnabled;
+    public boolean bluetoothIndicatorOn;
+    //
+    public boolean speakerEnabled;
+    public boolean speakerOn;
+    //
+    public boolean canMute;
+    public boolean muteIndicatorOn;
+    //
+    public boolean dialpadEnabled;
+    public boolean dialpadVisible;
+    //
+    /** True if the "Hold" function is *ever* available on this device */
+    public boolean supportsHold;
+    /** True if the call is currently on hold */
+    public boolean onHold;
+    /** True if the "Hold" or "Unhold" function should be available right now */
+    // TODO: this name is misleading.  Let's break this apart into
+    // separate canHold and canUnhold flags, and have the caller look at
+    // "canHold || canUnhold" to decide whether the hold/unhold UI element
+    // should be visible.
+    public boolean canHold;
+
+
+    public InCallControlState(InCallScreen inCallScreen, CallManager cm) {
+        if (DBG) log("InCallControlState constructor...");
+        mInCallScreen = inCallScreen;
+        mCM = cm;
+    }
+
+    /**
+     * Updates all our public boolean flags based on the current state of
+     * the Phone.
+     */
+    public void update() {
+        final PhoneConstants.State state = mCM.getState();  // coarse-grained voice call state
+        final Call fgCall = mCM.getActiveFgCall();
+        final Call.State fgCallState = fgCall.getState();
+        final boolean hasActiveForegroundCall = (fgCallState == Call.State.ACTIVE);
+        final boolean hasHoldingCall = mCM.hasActiveBgCall();
+
+        // Manage conference:
+        if (TelephonyCapabilities.supportsConferenceCallManagement(fgCall.getPhone())) {
+            // This item is visible only if the foreground call is a
+            // conference call, and it's enabled unless the "Manage
+            // conference" UI is already up.
+            manageConferenceVisible = PhoneUtils.isConferenceCall(fgCall);
+            manageConferenceEnabled =
+                    manageConferenceVisible && !mInCallScreen.isManageConferenceMode();
+        } else {
+            // This device has no concept of managing a conference call.
+            manageConferenceVisible = false;
+            manageConferenceEnabled = false;
+        }
+
+        // "Add call":
+        canAddCall = PhoneUtils.okToAddCall(mCM);
+
+        // "End call": always enabled unless the phone is totally idle.
+        // Note that while the phone is ringing, the InCallTouchUi widget isn't
+        // visible at all, so the state of the End button doesn't matter.  However
+        // we *do* still set canEndCall to true in this case, purely to prevent a
+        // UI glitch when the InCallTouchUi widget first appears, immediately after
+        // answering an incoming call.
+        canEndCall = (mCM.hasActiveFgCall() || mCM.hasActiveRingingCall() || mCM.hasActiveBgCall());
+
+        // Swap / merge calls
+        canSwap = PhoneUtils.okToSwapCalls(mCM);
+        canMerge = PhoneUtils.okToMergeCalls(mCM);
+
+        // "Bluetooth":
+        if (mInCallScreen.isBluetoothAvailable()) {
+            bluetoothEnabled = true;
+            bluetoothIndicatorOn = mInCallScreen.isBluetoothAudioConnectedOrPending();
+        } else {
+            bluetoothEnabled = false;
+            bluetoothIndicatorOn = false;
+        }
+
+        // "Speaker": always enabled unless the phone is totally idle.
+        // The current speaker state comes from the AudioManager.
+        speakerEnabled = (state != PhoneConstants.State.IDLE);
+        speakerOn = PhoneUtils.isSpeakerOn(mInCallScreen);
+
+        // "Mute": only enabled when the foreground call is ACTIVE.
+        // (It's meaningless while on hold, or while DIALING/ALERTING.)
+        // It's also explicitly disabled during emergency calls or if
+        // emergency callback mode (ECM) is active.
+        Connection c = fgCall.getLatestConnection();
+        boolean isEmergencyCall = false;
+        if (c != null) isEmergencyCall =
+                PhoneNumberUtils.isLocalEmergencyNumber(c.getAddress(),
+                                                        fgCall.getPhone().getContext());
+        boolean isECM = PhoneUtils.isPhoneInEcm(fgCall.getPhone());
+        if (isEmergencyCall || isECM) {  // disable "Mute" item
+            canMute = false;
+            muteIndicatorOn = false;
+        } else {
+            canMute = hasActiveForegroundCall;
+            muteIndicatorOn = PhoneUtils.getMute();
+        }
+
+        // "Dialpad": Enabled only when it's OK to use the dialpad in the
+        // first place.
+        dialpadEnabled = mInCallScreen.okToShowDialpad();
+
+        // Also keep track of whether the dialpad is currently "opened"
+        // (i.e. visible).
+        dialpadVisible = mInCallScreen.isDialerOpened();
+
+        // "Hold:
+        if (TelephonyCapabilities.supportsHoldAndUnhold(fgCall.getPhone())) {
+            // This phone has the concept of explicit "Hold" and "Unhold" actions.
+            supportsHold = true;
+            // "On hold" means that there's a holding call and
+            // *no* foreground call.  (If there *is* a foreground call,
+            // that's "two lines in use".)
+            onHold = hasHoldingCall && (fgCallState == Call.State.IDLE);
+            // The "Hold" control is disabled entirely if there's
+            // no way to either hold or unhold in the current state.
+            boolean okToHold = hasActiveForegroundCall && !hasHoldingCall;
+            boolean okToUnhold = onHold;
+            canHold = okToHold || okToUnhold;
+        } else if (hasHoldingCall && (fgCallState == Call.State.IDLE)) {
+            // Even when foreground phone device doesn't support hold/unhold, phone devices
+            // for background holding calls may do.
+            //
+            // If the foreground call is ACTIVE,  we should turn on "swap" button instead.
+            final Call bgCall = mCM.getFirstActiveBgCall();
+            if (bgCall != null &&
+                    TelephonyCapabilities.supportsHoldAndUnhold(bgCall.getPhone())) {
+                supportsHold = true;
+                onHold = true;
+                canHold = true;
+            }
+        } else {
+            // This device has no concept of "putting a call on hold."
+            supportsHold = false;
+            onHold = false;
+            canHold = false;
+        }
+
+        if (DBG) dumpState();
+    }
+
+    public void dumpState() {
+        log("InCallControlState:");
+        log("  manageConferenceVisible: " + manageConferenceVisible);
+        log("  manageConferenceEnabled: " + manageConferenceEnabled);
+        log("  canAddCall: " + canAddCall);
+        log("  canEndCall: " + canEndCall);
+        log("  canSwap: " + canSwap);
+        log("  canMerge: " + canMerge);
+        log("  bluetoothEnabled: " + bluetoothEnabled);
+        log("  bluetoothIndicatorOn: " + bluetoothIndicatorOn);
+        log("  speakerEnabled: " + speakerEnabled);
+        log("  speakerOn: " + speakerOn);
+        log("  canMute: " + canMute);
+        log("  muteIndicatorOn: " + muteIndicatorOn);
+        log("  dialpadEnabled: " + dialpadEnabled);
+        log("  dialpadVisible: " + dialpadVisible);
+        log("  onHold: " + onHold);
+        log("  canHold: " + canHold);
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/InCallScreen.java b/src/com/android/phone/InCallScreen.java
new file mode 100644
index 0000000..d5db689
--- /dev/null
+++ b/src/com/android/phone/InCallScreen.java
@@ -0,0 +1,4612 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.ActivityOptions;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.IBluetoothHeadsetPhone;
+import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.media.AudioManager;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.telephony.ServiceState;
+import android.text.TextUtils;
+import android.text.method.DialerKeyListener;
+import android.util.EventLog;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.MmiCode;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.phone.Constants.CallStatusCode;
+import com.android.phone.InCallUiState.InCallScreenMode;
+import com.android.phone.OtaUtils.CdmaOtaScreenState;
+
+import java.util.List;
+
+
+/**
+ * Phone app "in call" screen.
+ */
+public class InCallScreen extends Activity
+        implements View.OnClickListener {
+    private static final String LOG_TAG = "InCallScreen";
+
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    private static final boolean VDBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    /**
+     * Intent extra used to specify whether the DTMF dialpad should be
+     * initially visible when bringing up the InCallScreen.  (If this
+     * extra is present, the dialpad will be initially shown if the extra
+     * has the boolean value true, and initially hidden otherwise.)
+     */
+    // TODO: Should be EXTRA_SHOW_DIALPAD for consistency.
+    static final String SHOW_DIALPAD_EXTRA = "com.android.phone.ShowDialpad";
+
+    /**
+     * Intent extra to specify the package name of the gateway
+     * provider.  Used to get the name displayed in the in-call screen
+     * during the call setup. The value is a string.
+     */
+    // TODO: This extra is currently set by the gateway application as
+    // a temporary measure. Ultimately, the framework will securely
+    // set it.
+    /* package */ static final String EXTRA_GATEWAY_PROVIDER_PACKAGE =
+            "com.android.phone.extra.GATEWAY_PROVIDER_PACKAGE";
+
+    /**
+     * Intent extra to specify the URI of the provider to place the
+     * call. The value is a string. It holds the gateway address
+     * (phone gateway URL should start with the 'tel:' scheme) that
+     * will actually be contacted to call the number passed in the
+     * intent URL or in the EXTRA_PHONE_NUMBER extra.
+     */
+    // TODO: Should the value be a Uri (Parcelable)? Need to make sure
+    // MMI code '#' don't get confused as URI fragments.
+    /* package */ static final String EXTRA_GATEWAY_URI =
+            "com.android.phone.extra.GATEWAY_URI";
+
+    // Amount of time (in msec) that we display the "Call ended" state.
+    // The "short" value is for calls ended by the local user, and the
+    // "long" value is for calls ended by the remote caller.
+    private static final int CALL_ENDED_SHORT_DELAY =  200;  // msec
+    private static final int CALL_ENDED_LONG_DELAY = 2000;  // msec
+    private static final int CALL_ENDED_EXTRA_LONG_DELAY = 5000;  // msec
+
+    // Amount of time that we display the PAUSE alert Dialog showing the
+    // post dial string yet to be send out to the n/w
+    private static final int PAUSE_PROMPT_DIALOG_TIMEOUT = 2000;  //msec
+
+    // Amount of time that we display the provider info if applicable.
+    private static final int PROVIDER_INFO_TIMEOUT = 5000;  // msec
+
+    // These are values for the settings of the auto retry mode:
+    // 0 = disabled
+    // 1 = enabled
+    // TODO (Moto):These constants don't really belong here,
+    // they should be moved to Settings where the value is being looked up in the first place
+    static final int AUTO_RETRY_OFF = 0;
+    static final int AUTO_RETRY_ON = 1;
+
+    // Message codes; see mHandler below.
+    // Note message codes < 100 are reserved for the PhoneApp.
+    private static final int PHONE_STATE_CHANGED = 101;
+    private static final int PHONE_DISCONNECT = 102;
+    private static final int EVENT_HEADSET_PLUG_STATE_CHANGED = 103;
+    private static final int POST_ON_DIAL_CHARS = 104;
+    private static final int WILD_PROMPT_CHAR_ENTERED = 105;
+    private static final int ADD_VOICEMAIL_NUMBER = 106;
+    private static final int DONT_ADD_VOICEMAIL_NUMBER = 107;
+    private static final int DELAYED_CLEANUP_AFTER_DISCONNECT = 108;
+    private static final int SUPP_SERVICE_FAILED = 110;
+    private static final int REQUEST_UPDATE_BLUETOOTH_INDICATION = 114;
+    private static final int PHONE_CDMA_CALL_WAITING = 115;
+    private static final int REQUEST_CLOSE_SPC_ERROR_NOTICE = 118;
+    private static final int REQUEST_CLOSE_OTA_FAILURE_NOTICE = 119;
+    private static final int EVENT_PAUSE_DIALOG_COMPLETE = 120;
+    private static final int EVENT_HIDE_PROVIDER_INFO = 121;  // Time to remove the info.
+    private static final int REQUEST_UPDATE_SCREEN = 122;
+    private static final int PHONE_INCOMING_RING = 123;
+    private static final int PHONE_NEW_RINGING_CONNECTION = 124;
+
+    // When InCallScreenMode is UNDEFINED set the default action
+    // to ACTION_UNDEFINED so if we are resumed the activity will
+    // know its undefined. In particular checkIsOtaCall will return
+    // false.
+    public static final String ACTION_UNDEFINED = "com.android.phone.InCallScreen.UNDEFINED";
+
+    /** Status codes returned from syncWithPhoneState(). */
+    private enum SyncWithPhoneStateStatus {
+        /**
+         * Successfully updated our internal state based on the telephony state.
+         */
+        SUCCESS,
+
+        /**
+         * There was no phone state to sync with (i.e. the phone was
+         * completely idle).  In most cases this means that the
+         * in-call UI shouldn't be visible in the first place, unless
+         * we need to remain in the foreground while displaying an
+         * error message.
+         */
+        PHONE_NOT_IN_USE
+    }
+
+    private boolean mRegisteredForPhoneStates;
+
+    private PhoneGlobals mApp;
+    private CallManager mCM;
+
+    // TODO: need to clean up all remaining uses of mPhone.
+    // (There may be more than one Phone instance on the device, so it's wrong
+    // to just keep a single mPhone field.  Instead, any time we need a Phone
+    // reference we should get it dynamically from the CallManager, probably
+    // based on the current foreground Call.)
+    private Phone mPhone;
+
+    private BluetoothHeadset mBluetoothHeadset;
+    private BluetoothAdapter mBluetoothAdapter;
+    private boolean mBluetoothConnectionPending;
+    private long mBluetoothConnectionRequestTime;
+
+    /** Main in-call UI elements. */
+    private CallCard mCallCard;
+
+    // UI controls:
+    private InCallControlState mInCallControlState;
+    private InCallTouchUi mInCallTouchUi;
+    private RespondViaSmsManager mRespondViaSmsManager;  // see internalRespondViaSms()
+    private ManageConferenceUtils mManageConferenceUtils;
+
+    // DTMF Dialer controller and its view:
+    private DTMFTwelveKeyDialer mDialer;
+
+    private EditText mWildPromptText;
+
+    // Various dialogs we bring up (see dismissAllDialogs()).
+    // TODO: convert these all to use the "managed dialogs" framework.
+    //
+    // The MMI started dialog can actually be one of 2 items:
+    //   1. An alert dialog if the MMI code is a normal MMI
+    //   2. A progress dialog if the user requested a USSD
+    private Dialog mMmiStartedDialog;
+    private AlertDialog mMissingVoicemailDialog;
+    private AlertDialog mGenericErrorDialog;
+    private AlertDialog mSuppServiceFailureDialog;
+    private AlertDialog mWaitPromptDialog;
+    private AlertDialog mWildPromptDialog;
+    private AlertDialog mCallLostDialog;
+    private AlertDialog mPausePromptDialog;
+    private AlertDialog mExitingECMDialog;
+    // NOTE: if you add a new dialog here, be sure to add it to dismissAllDialogs() also.
+
+    // ProgressDialog created by showProgressIndication()
+    private ProgressDialog mProgressDialog;
+
+    // TODO: If the Activity class ever provides an easy way to get the
+    // current "activity lifecycle" state, we can remove these flags.
+    private boolean mIsDestroyed = false;
+    private boolean mIsForegroundActivity = false;
+    private boolean mIsForegroundActivityForProximity = false;
+    private PowerManager mPowerManager;
+
+    // For use with Pause/Wait dialogs
+    private String mPostDialStrAfterPause;
+    private boolean mPauseInProgress = false;
+
+    // Info about the most-recently-disconnected Connection, which is used
+    // to determine what should happen when exiting the InCallScreen after a
+    // call.  (This info is set by onDisconnect(), and used by
+    // delayedCleanupAfterDisconnect().)
+    private Connection.DisconnectCause mLastDisconnectCause;
+
+    /** In-call audio routing options; see switchInCallAudio(). */
+    public enum InCallAudioMode {
+        SPEAKER,    // Speakerphone
+        BLUETOOTH,  // Bluetooth headset (if available)
+        EARPIECE,   // Handset earpiece (or wired headset, if connected)
+    }
+
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (mIsDestroyed) {
+                if (DBG) log("Handler: ignoring message " + msg + "; we're destroyed!");
+                return;
+            }
+            if (!mIsForegroundActivity) {
+                if (DBG) log("Handler: handling message " + msg + " while not in foreground");
+                // Continue anyway; some of the messages below *want* to
+                // be handled even if we're not the foreground activity
+                // (like DELAYED_CLEANUP_AFTER_DISCONNECT), and they all
+                // should at least be safe to handle if we're not in the
+                // foreground...
+            }
+
+            switch (msg.what) {
+                case SUPP_SERVICE_FAILED:
+                    onSuppServiceFailed((AsyncResult) msg.obj);
+                    break;
+
+                case PHONE_STATE_CHANGED:
+                    onPhoneStateChanged((AsyncResult) msg.obj);
+                    break;
+
+                case PHONE_DISCONNECT:
+                    onDisconnect((AsyncResult) msg.obj);
+                    break;
+
+                case EVENT_HEADSET_PLUG_STATE_CHANGED:
+                    // Update the in-call UI, since some UI elements (such
+                    // as the "Speaker" button) may change state depending on
+                    // whether a headset is plugged in.
+                    // TODO: A full updateScreen() is overkill here, since
+                    // the value of PhoneApp.isHeadsetPlugged() only affects a
+                    // single onscreen UI element.  (But even a full updateScreen()
+                    // is still pretty cheap, so let's keep this simple
+                    // for now.)
+                    updateScreen();
+
+                    // Also, force the "audio mode" popup to refresh itself if
+                    // it's visible, since one of its items is either "Wired
+                    // headset" or "Handset earpiece" depending on whether the
+                    // headset is plugged in or not.
+                    mInCallTouchUi.refreshAudioModePopup();  // safe even if the popup's not active
+
+                    break;
+
+                // TODO: sort out MMI code (probably we should remove this method entirely).
+                // See also MMI handling code in onResume()
+                // case PhoneApp.MMI_INITIATE:
+                // onMMIInitiate((AsyncResult) msg.obj);
+                //    break;
+
+                case PhoneGlobals.MMI_CANCEL:
+                    onMMICancel();
+                    break;
+
+                // handle the mmi complete message.
+                // since the message display class has been replaced with
+                // a system dialog in PhoneUtils.displayMMIComplete(), we
+                // should finish the activity here to close the window.
+                case PhoneGlobals.MMI_COMPLETE:
+                    onMMIComplete((MmiCode) ((AsyncResult) msg.obj).result);
+                    break;
+
+                case POST_ON_DIAL_CHARS:
+                    handlePostOnDialChars((AsyncResult) msg.obj, (char) msg.arg1);
+                    break;
+
+                case ADD_VOICEMAIL_NUMBER:
+                    addVoiceMailNumberPanel();
+                    break;
+
+                case DONT_ADD_VOICEMAIL_NUMBER:
+                    dontAddVoiceMailNumber();
+                    break;
+
+                case DELAYED_CLEANUP_AFTER_DISCONNECT:
+                    delayedCleanupAfterDisconnect();
+                    break;
+
+                case REQUEST_UPDATE_BLUETOOTH_INDICATION:
+                    if (VDBG) log("REQUEST_UPDATE_BLUETOOTH_INDICATION...");
+                    // The bluetooth headset state changed, so some UI
+                    // elements may need to update.  (There's no need to
+                    // look up the current state here, since any UI
+                    // elements that care about the bluetooth state get it
+                    // directly from PhoneApp.showBluetoothIndication().)
+                    updateScreen();
+                    break;
+
+                case PHONE_CDMA_CALL_WAITING:
+                    if (DBG) log("Received PHONE_CDMA_CALL_WAITING event ...");
+                    Connection cn = mCM.getFirstActiveRingingCall().getLatestConnection();
+
+                    // Only proceed if we get a valid connection object
+                    if (cn != null) {
+                        // Finally update screen with Call waiting info and request
+                        // screen to wake up
+                        updateScreen();
+                        mApp.updateWakeState();
+                    }
+                    break;
+
+                case REQUEST_CLOSE_SPC_ERROR_NOTICE:
+                    if (mApp.otaUtils != null) {
+                        mApp.otaUtils.onOtaCloseSpcNotice();
+                    }
+                    break;
+
+                case REQUEST_CLOSE_OTA_FAILURE_NOTICE:
+                    if (mApp.otaUtils != null) {
+                        mApp.otaUtils.onOtaCloseFailureNotice();
+                    }
+                    break;
+
+                case EVENT_PAUSE_DIALOG_COMPLETE:
+                    if (mPausePromptDialog != null) {
+                        if (DBG) log("- DISMISSING mPausePromptDialog.");
+                        mPausePromptDialog.dismiss();  // safe even if already dismissed
+                        mPausePromptDialog = null;
+                    }
+                    break;
+
+                case EVENT_HIDE_PROVIDER_INFO:
+                    mApp.inCallUiState.providerInfoVisible = false;
+                    if (mCallCard != null) {
+                        mCallCard.updateState(mCM);
+                    }
+                    break;
+                case REQUEST_UPDATE_SCREEN:
+                    updateScreen();
+                    break;
+
+                case PHONE_INCOMING_RING:
+                    onIncomingRing();
+                    break;
+
+                case PHONE_NEW_RINGING_CONNECTION:
+                    onNewRingingConnection();
+                    break;
+
+                default:
+                    Log.wtf(LOG_TAG, "mHandler: unexpected message: " + msg);
+                    break;
+            }
+        }
+    };
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                String action = intent.getAction();
+                if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
+                    // Listen for ACTION_HEADSET_PLUG broadcasts so that we
+                    // can update the onscreen UI when the headset state changes.
+                    // if (DBG) log("mReceiver: ACTION_HEADSET_PLUG");
+                    // if (DBG) log("==> intent: " + intent);
+                    // if (DBG) log("    state: " + intent.getIntExtra("state", 0));
+                    // if (DBG) log("    name: " + intent.getStringExtra("name"));
+                    // send the event and add the state as an argument.
+                    Message message = Message.obtain(mHandler, EVENT_HEADSET_PLUG_STATE_CHANGED,
+                            intent.getIntExtra("state", 0), 0);
+                    mHandler.sendMessage(message);
+                }
+            }
+        };
+
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        Log.i(LOG_TAG, "onCreate()...  this = " + this);
+        Profiler.callScreenOnCreate();
+        super.onCreate(icicle);
+
+        // Make sure this is a voice-capable device.
+        if (!PhoneGlobals.sVoiceCapable) {
+            // There should be no way to ever reach the InCallScreen on a
+            // non-voice-capable device, since this activity is not exported by
+            // our manifest, and we explicitly disable any other external APIs
+            // like the CALL intent and ITelephony.showCallScreen().
+            // So the fact that we got here indicates a phone app bug.
+            Log.wtf(LOG_TAG, "onCreate() reached on non-voice-capable device");
+            finish();
+            return;
+        }
+
+        mApp = PhoneGlobals.getInstance();
+        mApp.setInCallScreenInstance(this);
+
+        // set this flag so this activity will stay in front of the keyguard
+        int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON;
+        if (mApp.getPhoneState() == PhoneConstants.State.OFFHOOK) {
+            // While we are in call, the in-call screen should dismiss the keyguard.
+            // This allows the user to press Home to go directly home without going through
+            // an insecure lock screen.
+            // But we do not want to do this if there is no active call so we do not
+            // bypass the keyguard if the call is not answered or declined.
+            flags |= WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
+        }
+
+        WindowManager.LayoutParams lp = getWindow().getAttributes();
+        lp.flags |= flags;
+        if (!mApp.proximitySensorModeEnabled()) {
+            // If we don't have a proximity sensor, then the in-call screen explicitly
+            // controls user activity.  This is to prevent spurious touches from waking
+            // the display.
+            lp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
+        }
+        getWindow().setAttributes(lp);
+
+        setPhone(mApp.phone);  // Sets mPhone
+
+        mCM =  mApp.mCM;
+        log("- onCreate: phone state = " + mCM.getState());
+
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (mBluetoothAdapter != null) {
+            mBluetoothAdapter.getProfileProxy(getApplicationContext(), mBluetoothProfileServiceListener,
+                                    BluetoothProfile.HEADSET);
+        }
+
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+        // Inflate everything in incall_screen.xml and add it to the screen.
+        setContentView(R.layout.incall_screen);
+
+        // If in landscape, then one of the ViewStubs (instead of <include>) is used for the
+        // incall_touch_ui, because CDMA and GSM button layouts are noticeably different.
+        final ViewStub touchUiStub = (ViewStub) findViewById(
+                mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
+                ? R.id.inCallTouchUiCdmaStub : R.id.inCallTouchUiStub);
+        if (touchUiStub != null) touchUiStub.inflate();
+
+        initInCallScreen();
+
+        registerForPhoneStates();
+
+        // No need to change wake state here; that happens in onResume() when we
+        // are actually displayed.
+
+        // Handle the Intent we were launched with, but only if this is the
+        // the very first time we're being launched (ie. NOT if we're being
+        // re-initialized after previously being shut down.)
+        // Once we're up and running, any future Intents we need
+        // to handle will come in via the onNewIntent() method.
+        if (icicle == null) {
+            if (DBG) log("onCreate(): this is our very first launch, checking intent...");
+            internalResolveIntent(getIntent());
+        }
+
+        Profiler.callScreenCreated();
+        if (DBG) log("onCreate(): exit");
+    }
+
+     private BluetoothProfile.ServiceListener mBluetoothProfileServiceListener =
+             new BluetoothProfile.ServiceListener() {
+         @Override
+         public void onServiceConnected(int profile, BluetoothProfile proxy) {
+             mBluetoothHeadset = (BluetoothHeadset) proxy;
+             if (VDBG) log("- Got BluetoothHeadset: " + mBluetoothHeadset);
+         }
+
+         @Override
+         public void onServiceDisconnected(int profile) {
+             mBluetoothHeadset = null;
+         }
+    };
+
+    /**
+     * Sets the Phone object used internally by the InCallScreen.
+     *
+     * In normal operation this is called from onCreate(), and the
+     * passed-in Phone object comes from the PhoneApp.
+     * For testing, test classes can use this method to
+     * inject a test Phone instance.
+     */
+    /* package */ void setPhone(Phone phone) {
+        mPhone = phone;
+    }
+
+    @Override
+    protected void onResume() {
+        if (DBG) log("onResume()...");
+        super.onResume();
+
+        mIsForegroundActivity = true;
+        mIsForegroundActivityForProximity = true;
+
+        // The flag shouldn't be turned on when there are actual phone calls.
+        if (mCM.hasActiveFgCall() || mCM.hasActiveBgCall() || mCM.hasActiveRingingCall()) {
+            mApp.inCallUiState.showAlreadyDisconnectedState = false;
+        }
+
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+        if (VDBG) inCallUiState.dumpState();
+
+        updateExpandedViewState();
+
+        // ...and update the in-call notification too, since the status bar
+        // icon needs to be hidden while we're the foreground activity:
+        mApp.notificationMgr.updateInCallNotification();
+
+        // Listen for broadcast intents that might affect the onscreen UI.
+        registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
+
+        // Keep a "dialer session" active when we're in the foreground.
+        // (This is needed to play DTMF tones.)
+        mDialer.startDialerSession();
+
+        // Restore various other state from the InCallUiState object:
+
+        // Update the onscreen dialpad state to match the InCallUiState.
+        if (inCallUiState.showDialpad) {
+            openDialpadInternal(false);  // no "opening" animation
+        } else {
+            closeDialpadInternal(false);  // no "closing" animation
+        }
+
+        // Reset the dialpad context
+        // TODO: Dialpad digits should be set here as well (once they are saved)
+        mDialer.setDialpadContext(inCallUiState.dialpadContextText);
+
+        // If there's a "Respond via SMS" popup still around since the
+        // last time we were the foreground activity, make sure it's not
+        // still active!
+        // (The popup should *never* be visible initially when we first
+        // come to the foreground; it only ever comes up in response to
+        // the user selecting the "SMS" option from the incoming call
+        // widget.)
+        mRespondViaSmsManager.dismissPopup();  // safe even if already dismissed
+
+        // Display an error / diagnostic indication if necessary.
+        //
+        // When the InCallScreen comes to the foreground, we normally we
+        // display the in-call UI in whatever state is appropriate based on
+        // the state of the telephony framework (e.g. an outgoing call in
+        // DIALING state, an incoming call, etc.)
+        //
+        // But if the InCallUiState has a "pending call status code" set,
+        // that means we need to display some kind of status or error
+        // indication to the user instead of the regular in-call UI.  (The
+        // most common example of this is when there's some kind of
+        // failure while initiating an outgoing call; see
+        // CallController.placeCall().)
+        //
+        boolean handledStartupError = false;
+        if (inCallUiState.hasPendingCallStatusCode()) {
+            if (DBG) log("- onResume: need to show status indication!");
+            showStatusIndication(inCallUiState.getPendingCallStatusCode());
+
+            // Set handledStartupError to ensure that we won't bail out below.
+            // (We need to stay here in the InCallScreen so that the user
+            // is able to see the error dialog!)
+            handledStartupError = true;
+        }
+
+        // Set the volume control handler while we are in the foreground.
+        final boolean bluetoothConnected = isBluetoothAudioConnected();
+
+        if (bluetoothConnected) {
+            setVolumeControlStream(AudioManager.STREAM_BLUETOOTH_SCO);
+        } else {
+            setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
+        }
+
+        takeKeyEvents(true);
+
+        // If an OTASP call is in progress, use the special OTASP-specific UI.
+        boolean inOtaCall = false;
+        if (TelephonyCapabilities.supportsOtasp(mPhone)) {
+            inOtaCall = checkOtaspStateOnResume();
+        }
+        if (!inOtaCall) {
+            // Always start off in NORMAL mode
+            setInCallScreenMode(InCallScreenMode.NORMAL);
+        }
+
+        // Before checking the state of the CallManager, clean up any
+        // connections in the DISCONNECTED state.
+        // (The DISCONNECTED state is used only to drive the "call ended"
+        // UI; it's totally useless when *entering* the InCallScreen.)
+        mCM.clearDisconnected();
+
+        // Update the onscreen UI to reflect the current telephony state.
+        SyncWithPhoneStateStatus status = syncWithPhoneState();
+
+        // Note there's no need to call updateScreen() here;
+        // syncWithPhoneState() already did that if necessary.
+
+        if (status != SyncWithPhoneStateStatus.SUCCESS) {
+            if (DBG) log("- onResume: syncWithPhoneState failed! status = " + status);
+            // Couldn't update the UI, presumably because the phone is totally
+            // idle.
+
+            // Even though the phone is idle, though, we do still need to
+            // stay here on the InCallScreen if we're displaying an
+            // error dialog (see "showStatusIndication()" above).
+
+            if (handledStartupError) {
+                // Stay here for now.  We'll eventually leave the
+                // InCallScreen when the user presses the dialog's OK
+                // button (see bailOutAfterErrorDialog()), or when the
+                // progress indicator goes away.
+                Log.i(LOG_TAG, "  ==> syncWithPhoneState failed, but staying here anyway.");
+            } else {
+                // The phone is idle, and we did NOT handle a
+                // startup error during this pass thru onResume.
+                //
+                // This basically means that we're being resumed because of
+                // some action *other* than a new intent.  (For example,
+                // the user pressing POWER to wake up the device, causing
+                // the InCallScreen to come back to the foreground.)
+                //
+                // In this scenario we do NOT want to stay here on the
+                // InCallScreen: we're not showing any useful info to the
+                // user (like a dialog), and the in-call UI itself is
+                // useless if there's no active call.  So bail out.
+
+                Log.i(LOG_TAG, "  ==> syncWithPhoneState failed; bailing out!");
+                dismissAllDialogs();
+
+                // Force the InCallScreen to truly finish(), rather than just
+                // moving it to the back of the activity stack (which is what
+                // our finish() method usually does.)
+                // This is necessary to avoid an obscure scenario where the
+                // InCallScreen can get stuck in an inconsistent state, somehow
+                // causing a *subsequent* outgoing call to fail (bug 4172599).
+                endInCallScreenSession(true /* force a real finish() call */);
+                return;
+            }
+        } else if (TelephonyCapabilities.supportsOtasp(mPhone)) {
+            if (inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL ||
+                    inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED) {
+                if (mCallCard != null) mCallCard.setVisibility(View.GONE);
+                updateScreen();
+                return;
+            }
+        }
+
+        // InCallScreen is now active.
+        EventLog.writeEvent(EventLogTags.PHONE_UI_ENTER);
+
+        // Update the poke lock and wake lock when we move to the foreground.
+        // This will be no-op when prox sensor is effective.
+        mApp.updateWakeState();
+
+        // Restore the mute state if the last mute state change was NOT
+        // done by the user.
+        if (mApp.getRestoreMuteOnInCallResume()) {
+            // Mute state is based on the foreground call
+            PhoneUtils.restoreMuteState();
+            mApp.setRestoreMuteOnInCallResume(false);
+        }
+
+        Profiler.profileViewCreate(getWindow(), InCallScreen.class.getName());
+
+        // If there's a pending MMI code, we'll show a dialog here.
+        //
+        // Note: previously we had shown the dialog when MMI_INITIATE event's coming
+        // from telephony layer, while right now we don't because the event comes
+        // too early (before in-call screen is prepared).
+        // Now we instead check pending MMI code and show the dialog here.
+        //
+        // This *may* cause some problem, e.g. when the user really quickly starts
+        // MMI sequence and calls an actual phone number before the MMI request
+        // being completed, which is rather rare.
+        //
+        // TODO: streamline this logic and have a UX in a better manner.
+        // Right now syncWithPhoneState() above will return SUCCESS based on
+        // mPhone.getPendingMmiCodes().isEmpty(), while we check it again here.
+        // Also we show pre-populated in-call UI under the dialog, which looks
+        // not great. (issue 5210375, 5545506)
+        // After cleaning them, remove commented-out MMI handling code elsewhere.
+        if (!mPhone.getPendingMmiCodes().isEmpty()) {
+            if (mMmiStartedDialog == null) {
+                MmiCode mmiCode = mPhone.getPendingMmiCodes().get(0);
+                Message message = Message.obtain(mHandler, PhoneGlobals.MMI_CANCEL);
+                mMmiStartedDialog = PhoneUtils.displayMMIInitiate(this, mmiCode,
+                        message, mMmiStartedDialog);
+                // mInCallScreen needs to receive MMI_COMPLETE/MMI_CANCEL event from telephony,
+                // which will dismiss the entire screen.
+            }
+        }
+
+        // This means the screen is shown even though there's no connection, which only happens
+        // when the phone call has hung up while the screen is turned off at that moment.
+        // We want to show "disconnected" state with photos with appropriate elapsed time for
+        // the finished phone call.
+        if (mApp.inCallUiState.showAlreadyDisconnectedState) {
+            // if (DBG) {
+            log("onResume(): detected \"show already disconnected state\" situation."
+                    + " set up DELAYED_CLEANUP_AFTER_DISCONNECT message with "
+                    + CALL_ENDED_LONG_DELAY + " msec delay.");
+            //}
+            mHandler.removeMessages(DELAYED_CLEANUP_AFTER_DISCONNECT);
+            mHandler.sendEmptyMessageDelayed(DELAYED_CLEANUP_AFTER_DISCONNECT,
+                    CALL_ENDED_LONG_DELAY);
+        }
+
+        if (VDBG) log("onResume() done.");
+    }
+
+    // onPause is guaranteed to be called when the InCallScreen goes
+    // in the background.
+    @Override
+    protected void onPause() {
+        if (DBG) log("onPause()...");
+        super.onPause();
+
+        if (mPowerManager.isScreenOn()) {
+            // Set to false when the screen went background *not* by screen turned off. Probably
+            // the user bailed out of the in-call screen (by pressing BACK, HOME, etc.)
+            mIsForegroundActivityForProximity = false;
+        }
+        mIsForegroundActivity = false;
+
+        // Force a clear of the provider info frame. Since the
+        // frame is removed using a timed message, it is
+        // possible we missed it if the prev call was interrupted.
+        mApp.inCallUiState.providerInfoVisible = false;
+
+        // "show-already-disconnected-state" should be effective just during the first wake-up.
+        // We should never allow it to stay true after that.
+        mApp.inCallUiState.showAlreadyDisconnectedState = false;
+
+        // A safety measure to disable proximity sensor in case call failed
+        // and the telephony state did not change.
+        mApp.setBeginningCall(false);
+
+        // Make sure the "Manage conference" chronometer is stopped when
+        // we move away from the foreground.
+        mManageConferenceUtils.stopConferenceTime();
+
+        // as a catch-all, make sure that any dtmf tones are stopped
+        // when the UI is no longer in the foreground.
+        mDialer.onDialerKeyUp(null);
+
+        // Release any "dialer session" resources, now that we're no
+        // longer in the foreground.
+        mDialer.stopDialerSession();
+
+        // If the device is put to sleep as the phone call is ending,
+        // we may see cases where the DELAYED_CLEANUP_AFTER_DISCONNECT
+        // event gets handled AFTER the device goes to sleep and wakes
+        // up again.
+
+        // This is because it is possible for a sleep command
+        // (executed with the End Call key) to come during the 2
+        // seconds that the "Call Ended" screen is up.  Sleep then
+        // pauses the device (including the cleanup event) and
+        // resumes the event when it wakes up.
+
+        // To fix this, we introduce a bit of code that pushes the UI
+        // to the background if we pause and see a request to
+        // DELAYED_CLEANUP_AFTER_DISCONNECT.
+
+        // Note: We can try to finish directly, by:
+        //  1. Removing the DELAYED_CLEANUP_AFTER_DISCONNECT messages
+        //  2. Calling delayedCleanupAfterDisconnect directly
+
+        // However, doing so can cause problems between the phone
+        // app and the keyguard - the keyguard is trying to sleep at
+        // the same time that the phone state is changing.  This can
+        // end up causing the sleep request to be ignored.
+        if (mHandler.hasMessages(DELAYED_CLEANUP_AFTER_DISCONNECT)
+                && mCM.getState() != PhoneConstants.State.RINGING) {
+            if (DBG) log("DELAYED_CLEANUP_AFTER_DISCONNECT detected, moving UI to background.");
+            endInCallScreenSession();
+        }
+
+        EventLog.writeEvent(EventLogTags.PHONE_UI_EXIT);
+
+        // Dismiss any dialogs we may have brought up, just to be 100%
+        // sure they won't still be around when we get back here.
+        dismissAllDialogs();
+
+        updateExpandedViewState();
+
+        // ...and the in-call notification too:
+        mApp.notificationMgr.updateInCallNotification();
+        // ...and *always* reset the system bar back to its normal state
+        // when leaving the in-call UI.
+        // (While we're the foreground activity, we disable navigation in
+        // some call states; see InCallTouchUi.updateState().)
+        mApp.notificationMgr.statusBarHelper.enableSystemBarNavigation(true);
+
+        // Unregister for broadcast intents.  (These affect the visible UI
+        // of the InCallScreen, so we only care about them while we're in the
+        // foreground.)
+        unregisterReceiver(mReceiver);
+
+        // Make sure we revert the poke lock and wake lock when we move to
+        // the background.
+        mApp.updateWakeState();
+
+        // clear the dismiss keyguard flag so we are back to the default state
+        // when we next resume
+        updateKeyguardPolicy(false);
+
+        // See also PhoneApp#updatePhoneState(), which takes care of all the other release() calls.
+        if (mApp.getUpdateLock().isHeld() && mApp.getPhoneState() == PhoneConstants.State.IDLE) {
+            if (DBG) {
+                log("Release UpdateLock on onPause() because there's no active phone call.");
+            }
+            mApp.getUpdateLock().release();
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        if (DBG) log("onStop()...");
+        super.onStop();
+
+        stopTimer();
+
+        PhoneConstants.State state = mCM.getState();
+        if (DBG) log("onStop: state = " + state);
+
+        if (state == PhoneConstants.State.IDLE) {
+            if (mRespondViaSmsManager.isShowingPopup()) {
+                // This means that the user has been opening the "Respond via SMS" dialog even
+                // after the incoming call hanging up, and the screen finally went background.
+                // In that case we just close the dialog and exit the whole in-call screen.
+                mRespondViaSmsManager.dismissPopup();
+            }
+
+            // when OTA Activation, OTA Success/Failure dialog or OTA SPC
+            // failure dialog is running, do not destroy inCallScreen. Because call
+            // is already ended and dialog will not get redrawn on slider event.
+            if ((mApp.cdmaOtaProvisionData != null) && (mApp.cdmaOtaScreenState != null)
+                    && ((mApp.cdmaOtaScreenState.otaScreenState !=
+                            CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION)
+                        && (mApp.cdmaOtaScreenState.otaScreenState !=
+                            CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG)
+                        && (!mApp.cdmaOtaProvisionData.inOtaSpcState))) {
+                // we don't want the call screen to remain in the activity history
+                // if there are not active or ringing calls.
+                if (DBG) log("- onStop: calling finish() to clear activity history...");
+                moveTaskToBack(true);
+                if (mApp.otaUtils != null) {
+                    mApp.otaUtils.cleanOtaScreen(true);
+                }
+            }
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        Log.i(LOG_TAG, "onDestroy()...  this = " + this);
+        super.onDestroy();
+
+        // Set the magic flag that tells us NOT to handle any handler
+        // messages that come in asynchronously after we get destroyed.
+        mIsDestroyed = true;
+
+        mApp.setInCallScreenInstance(null);
+
+        // Clear out the InCallScreen references in various helper objects
+        // (to let them know we've been destroyed).
+        if (mCallCard != null) {
+            mCallCard.setInCallScreenInstance(null);
+        }
+        if (mInCallTouchUi != null) {
+            mInCallTouchUi.setInCallScreenInstance(null);
+        }
+        mRespondViaSmsManager.setInCallScreenInstance(null);
+
+        mDialer.clearInCallScreenReference();
+        mDialer = null;
+
+        unregisterForPhoneStates();
+        // No need to change wake state here; that happens in onPause() when we
+        // are moving out of the foreground.
+
+        if (mBluetoothHeadset != null) {
+            mBluetoothAdapter.closeProfileProxy(BluetoothProfile.HEADSET, mBluetoothHeadset);
+            mBluetoothHeadset = null;
+        }
+
+        // Dismiss all dialogs, to be absolutely sure we won't leak any of
+        // them while changing orientation.
+        dismissAllDialogs();
+
+        // If there's an OtaUtils instance around, clear out its
+        // references to our internal widgets.
+        if (mApp.otaUtils != null) {
+            mApp.otaUtils.clearUiWidgets();
+        }
+    }
+
+    /**
+     * Dismisses the in-call screen.
+     *
+     * We never *really* finish() the InCallScreen, since we don't want to
+     * get destroyed and then have to be re-created from scratch for the
+     * next call.  Instead, we just move ourselves to the back of the
+     * activity stack.
+     *
+     * This also means that we'll no longer be reachable via the BACK
+     * button (since moveTaskToBack() puts us behind the Home app, but the
+     * home app doesn't allow the BACK key to move you any farther down in
+     * the history stack.)
+     *
+     * (Since the Phone app itself is never killed, this basically means
+     * that we'll keep a single InCallScreen instance around for the
+     * entire uptime of the device.  This noticeably improves the UI
+     * responsiveness for incoming calls.)
+     */
+    @Override
+    public void finish() {
+        if (DBG) log("finish()...");
+        moveTaskToBack(true);
+    }
+
+    /**
+     * End the current in call screen session.
+     *
+     * This must be called when an InCallScreen session has
+     * complete so that the next invocation via an onResume will
+     * not be in an old state.
+     */
+    public void endInCallScreenSession() {
+        if (DBG) log("endInCallScreenSession()... phone state = " + mCM.getState());
+        endInCallScreenSession(false);
+    }
+
+    /**
+     * Internal version of endInCallScreenSession().
+     *
+     * @param forceFinish If true, force the InCallScreen to
+     *        truly finish() rather than just calling moveTaskToBack().
+     *        @see finish()
+     */
+    private void endInCallScreenSession(boolean forceFinish) {
+        if (DBG) {
+            log("endInCallScreenSession(" + forceFinish + ")...  phone state = " + mCM.getState());
+        }
+        if (forceFinish) {
+            Log.i(LOG_TAG, "endInCallScreenSession(): FORCING a call to super.finish()!");
+            super.finish();  // Call super.finish() rather than our own finish() method,
+                             // which actually just calls moveTaskToBack().
+        } else {
+            moveTaskToBack(true);
+        }
+        setInCallScreenMode(InCallScreenMode.UNDEFINED);
+
+        // Call update screen so that the in-call screen goes back to a normal state.
+        // This avoids bugs where a previous state will filcker the next time phone is
+        // opened.
+        updateScreen();
+
+        if (mCallCard != null) {
+            mCallCard.clear();
+        }
+    }
+
+    /**
+     * True when this Activity is in foreground (between onResume() and onPause()).
+     */
+    /* package */ boolean isForegroundActivity() {
+        return mIsForegroundActivity;
+    }
+
+    /**
+     * Returns true when the Activity is in foreground (between onResume() and onPause()),
+     * or, is in background due to user's bailing out of the screen, not by screen turning off.
+     *
+     * @see #isForegroundActivity()
+     */
+    /* package */ boolean isForegroundActivityForProximity() {
+        return mIsForegroundActivityForProximity;
+    }
+
+    /* package */ void updateKeyguardPolicy(boolean dismissKeyguard) {
+        if (dismissKeyguard) {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        } else {
+            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        }
+    }
+
+    private void registerForPhoneStates() {
+        if (!mRegisteredForPhoneStates) {
+            mCM.registerForPreciseCallStateChanged(mHandler, PHONE_STATE_CHANGED, null);
+            mCM.registerForDisconnect(mHandler, PHONE_DISCONNECT, null);
+            // TODO: sort out MMI code (probably we should remove this method entirely).
+            // See also MMI handling code in onResume()
+            // mCM.registerForMmiInitiate(mHandler, PhoneApp.MMI_INITIATE, null);
+
+            // register for the MMI complete message.  Upon completion,
+            // PhoneUtils will bring up a system dialog instead of the
+            // message display class in PhoneUtils.displayMMIComplete().
+            // We'll listen for that message too, so that we can finish
+            // the activity at the same time.
+            mCM.registerForMmiComplete(mHandler, PhoneGlobals.MMI_COMPLETE, null);
+            mCM.registerForCallWaiting(mHandler, PHONE_CDMA_CALL_WAITING, null);
+            mCM.registerForPostDialCharacter(mHandler, POST_ON_DIAL_CHARS, null);
+            mCM.registerForSuppServiceFailed(mHandler, SUPP_SERVICE_FAILED, null);
+            mCM.registerForIncomingRing(mHandler, PHONE_INCOMING_RING, null);
+            mCM.registerForNewRingingConnection(mHandler, PHONE_NEW_RINGING_CONNECTION, null);
+            mRegisteredForPhoneStates = true;
+        }
+    }
+
+    private void unregisterForPhoneStates() {
+        mCM.unregisterForPreciseCallStateChanged(mHandler);
+        mCM.unregisterForDisconnect(mHandler);
+        mCM.unregisterForMmiInitiate(mHandler);
+        mCM.unregisterForMmiComplete(mHandler);
+        mCM.unregisterForCallWaiting(mHandler);
+        mCM.unregisterForPostDialCharacter(mHandler);
+        mCM.unregisterForSuppServiceFailed(mHandler);
+        mCM.unregisterForIncomingRing(mHandler);
+        mCM.unregisterForNewRingingConnection(mHandler);
+        mRegisteredForPhoneStates = false;
+    }
+
+    /* package */ void updateAfterRadioTechnologyChange() {
+        if (DBG) Log.d(LOG_TAG, "updateAfterRadioTechnologyChange()...");
+
+        // Reset the call screen since the calls cannot be transferred
+        // across radio technologies.
+        resetInCallScreenMode();
+
+        // Unregister for all events from the old obsolete phone
+        unregisterForPhoneStates();
+
+        // (Re)register for all events relevant to the new active phone
+        registerForPhoneStates();
+
+        // And finally, refresh the onscreen UI.  (Note that it's safe
+        // to call requestUpdateScreen() even if the radio change ended up
+        // causing us to exit the InCallScreen.)
+        requestUpdateScreen();
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        log("onNewIntent: intent = " + intent + ", phone state = " + mCM.getState());
+
+        // We're being re-launched with a new Intent.  Since it's possible for a
+        // single InCallScreen instance to persist indefinitely (even if we
+        // finish() ourselves), this sequence can potentially happen any time
+        // the InCallScreen needs to be displayed.
+
+        // Stash away the new intent so that we can get it in the future
+        // by calling getIntent().  (Otherwise getIntent() will return the
+        // original Intent from when we first got created!)
+        setIntent(intent);
+
+        // Activities are always paused before receiving a new intent, so
+        // we can count on our onResume() method being called next.
+
+        // Just like in onCreate(), handle the intent.
+        internalResolveIntent(intent);
+    }
+
+    private void internalResolveIntent(Intent intent) {
+        if (intent == null || intent.getAction() == null) {
+            return;
+        }
+        String action = intent.getAction();
+        if (DBG) log("internalResolveIntent: action=" + action);
+
+        // In gingerbread and earlier releases, the InCallScreen used to
+        // directly handle certain intent actions that could initiate phone
+        // calls, namely ACTION_CALL and ACTION_CALL_EMERGENCY, and also
+        // OtaUtils.ACTION_PERFORM_CDMA_PROVISIONING.
+        //
+        // But it doesn't make sense to tie those actions to the InCallScreen
+        // (or especially to the *activity lifecycle* of the InCallScreen).
+        // Instead, the InCallScreen should only be concerned with running the
+        // onscreen UI while in a call.  So we've now offloaded the call-control
+        // functionality to a new module called CallController, and OTASP calls
+        // are now launched from the OtaUtils startInteractiveOtasp() or
+        // startNonInteractiveOtasp() methods.
+        //
+        // So now, the InCallScreen is only ever launched using the ACTION_MAIN
+        // action, and (upon launch) performs no functionality other than
+        // displaying the UI in a state that matches the current telephony
+        // state.
+
+        if (action.equals(intent.ACTION_MAIN)) {
+            // This action is the normal way to bring up the in-call UI.
+            //
+            // Most of the interesting work of updating the onscreen UI (to
+            // match the current telephony state) happens in the
+            // syncWithPhoneState() => updateScreen() sequence that happens in
+            // onResume().
+            //
+            // But we do check here for one extra that can come along with the
+            // ACTION_MAIN intent:
+
+            if (intent.hasExtra(SHOW_DIALPAD_EXTRA)) {
+                // SHOW_DIALPAD_EXTRA can be used here to specify whether the DTMF
+                // dialpad should be initially visible.  If the extra isn't
+                // present at all, we just leave the dialpad in its previous state.
+
+                boolean showDialpad = intent.getBooleanExtra(SHOW_DIALPAD_EXTRA, false);
+                if (VDBG) log("- internalResolveIntent: SHOW_DIALPAD_EXTRA: " + showDialpad);
+
+                // If SHOW_DIALPAD_EXTRA is specified, that overrides whatever
+                // the previous state of inCallUiState.showDialpad was.
+                mApp.inCallUiState.showDialpad = showDialpad;
+
+                final boolean hasActiveCall = mCM.hasActiveFgCall();
+                final boolean hasHoldingCall = mCM.hasActiveBgCall();
+
+                // There's only one line in use, AND it's on hold, at which we're sure the user
+                // wants to use the dialpad toward the exact line, so un-hold the holding line.
+                if (showDialpad && !hasActiveCall && hasHoldingCall) {
+                    PhoneUtils.switchHoldingAndActive(mCM.getFirstActiveBgCall());
+                }
+            }
+            // ...and in onResume() we'll update the onscreen dialpad state to
+            // match the InCallUiState.
+
+            return;
+        }
+
+        if (action.equals(OtaUtils.ACTION_DISPLAY_ACTIVATION_SCREEN)) {
+            // Bring up the in-call UI in the OTASP-specific "activate" state;
+            // see OtaUtils.startInteractiveOtasp().  Note that at this point
+            // the OTASP call has not been started yet; we won't actually make
+            // the call until the user presses the "Activate" button.
+
+            if (!TelephonyCapabilities.supportsOtasp(mPhone)) {
+                throw new IllegalStateException(
+                    "Received ACTION_DISPLAY_ACTIVATION_SCREEN intent on non-OTASP-capable device: "
+                    + intent);
+            }
+
+            setInCallScreenMode(InCallScreenMode.OTA_NORMAL);
+            if ((mApp.cdmaOtaProvisionData != null)
+                && (!mApp.cdmaOtaProvisionData.isOtaCallIntentProcessed)) {
+                mApp.cdmaOtaProvisionData.isOtaCallIntentProcessed = true;
+                mApp.cdmaOtaScreenState.otaScreenState =
+                        CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION;
+            }
+            return;
+        }
+
+        // Various intent actions that should no longer come here directly:
+        if (action.equals(OtaUtils.ACTION_PERFORM_CDMA_PROVISIONING)) {
+            // This intent is now handled by the InCallScreenShowActivation
+            // activity, which translates it into a call to
+            // OtaUtils.startInteractiveOtasp().
+            throw new IllegalStateException(
+                "Unexpected ACTION_PERFORM_CDMA_PROVISIONING received by InCallScreen: "
+                + intent);
+        } else if (action.equals(Intent.ACTION_CALL)
+                   || action.equals(Intent.ACTION_CALL_EMERGENCY)) {
+            // ACTION_CALL* intents go to the OutgoingCallBroadcaster, which now
+            // translates them into CallController.placeCall() calls rather than
+            // launching the InCallScreen directly.
+            throw new IllegalStateException("Unexpected CALL action received by InCallScreen: "
+                                            + intent);
+        } else if (action.equals(ACTION_UNDEFINED)) {
+            // This action is only used for internal bookkeeping; we should
+            // never actually get launched with it.
+            Log.wtf(LOG_TAG, "internalResolveIntent: got launched with ACTION_UNDEFINED");
+            return;
+        } else {
+            Log.wtf(LOG_TAG, "internalResolveIntent: unexpected intent action: " + action);
+            // But continue the best we can (basically treating this case
+            // like ACTION_MAIN...)
+            return;
+        }
+    }
+
+    private void stopTimer() {
+        if (mCallCard != null) mCallCard.stopTimer();
+    }
+
+    private void initInCallScreen() {
+        if (VDBG) log("initInCallScreen()...");
+
+        // Have the WindowManager filter out touch events that are "too fat".
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES);
+
+        // Initialize the CallCard.
+        mCallCard = (CallCard) findViewById(R.id.callCard);
+        if (VDBG) log("  - mCallCard = " + mCallCard);
+        mCallCard.setInCallScreenInstance(this);
+
+        // Initialize the onscreen UI elements.
+        initInCallTouchUi();
+
+        // Helper class to keep track of enabledness/state of UI controls
+        mInCallControlState = new InCallControlState(this, mCM);
+
+        // Helper class to run the "Manage conference" UI
+        mManageConferenceUtils = new ManageConferenceUtils(this, mCM);
+
+        // The DTMF Dialpad.
+        ViewStub stub = (ViewStub) findViewById(R.id.dtmf_twelve_key_dialer_stub);
+        mDialer = new DTMFTwelveKeyDialer(this, stub);
+        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
+    }
+
+    /**
+     * Returns true if the phone is "in use", meaning that at least one line
+     * is active (ie. off hook or ringing or dialing).  Conversely, a return
+     * value of false means there's currently no phone activity at all.
+     */
+    private boolean phoneIsInUse() {
+        return mCM.getState() != PhoneConstants.State.IDLE;
+    }
+
+    private boolean handleDialerKeyDown(int keyCode, KeyEvent event) {
+        if (VDBG) log("handleDialerKeyDown: keyCode " + keyCode + ", event " + event + "...");
+
+        // As soon as the user starts typing valid dialable keys on the
+        // keyboard (presumably to type DTMF tones) we start passing the
+        // key events to the DTMFDialer's onDialerKeyDown.  We do so
+        // only if the okToDialDTMFTones() conditions pass.
+        if (okToDialDTMFTones()) {
+            return mDialer.onDialerKeyDown(event);
+
+            // TODO: If the dialpad isn't currently visible, maybe
+            // consider automatically bringing it up right now?
+            // (Just to make sure the user sees the digits widget...)
+            // But this probably isn't too critical since it's awkward to
+            // use the hard keyboard while in-call in the first place,
+            // especially now that the in-call UI is portrait-only...
+        }
+
+        return false;
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (DBG) log("onBackPressed()...");
+
+        // To consume this BACK press, the code here should just do
+        // something and return.  Otherwise, call super.onBackPressed() to
+        // get the default implementation (which simply finishes the
+        // current activity.)
+
+        if (mCM.hasActiveRingingCall()) {
+            // The Back key, just like the Home key, is always disabled
+            // while an incoming call is ringing.  (The user *must* either
+            // answer or reject the call before leaving the incoming-call
+            // screen.)
+            if (DBG) log("BACK key while ringing: ignored");
+
+            // And consume this event; *don't* call super.onBackPressed().
+            return;
+        }
+
+        // BACK is also used to exit out of any "special modes" of the
+        // in-call UI:
+
+        if (mDialer.isOpened()) {
+            closeDialpadInternal(true);  // do the "closing" animation
+            return;
+        }
+
+        if (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.MANAGE_CONFERENCE) {
+            // Hide the Manage Conference panel, return to NORMAL mode.
+            setInCallScreenMode(InCallScreenMode.NORMAL);
+            requestUpdateScreen();
+            return;
+        }
+
+        // Nothing special to do.  Fall back to the default behavior.
+        super.onBackPressed();
+    }
+
+    /**
+     * Handles the green CALL key while in-call.
+     * @return true if we consumed the event.
+     */
+    private boolean handleCallKey() {
+        // The green CALL button means either "Answer", "Unhold", or
+        // "Swap calls", or can be a no-op, depending on the current state
+        // of the Phone.
+
+        final boolean hasRingingCall = mCM.hasActiveRingingCall();
+        final boolean hasActiveCall = mCM.hasActiveFgCall();
+        final boolean hasHoldingCall = mCM.hasActiveBgCall();
+
+        int phoneType = mPhone.getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            // The green CALL button means either "Answer", "Swap calls/On Hold", or
+            // "Add to 3WC", depending on the current state of the Phone.
+
+            CdmaPhoneCallState.PhoneCallState currCallState =
+                mApp.cdmaPhoneCallState.getCurrentCallState();
+            if (hasRingingCall) {
+                //Scenario 1: Accepting the First Incoming and Call Waiting call
+                if (DBG) log("answerCall: First Incoming and Call Waiting scenario");
+                internalAnswerCall();  // Automatically holds the current active call,
+                                       // if there is one
+            } else if ((currCallState == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                    && (hasActiveCall)) {
+                //Scenario 2: Merging 3Way calls
+                if (DBG) log("answerCall: Merge 3-way call scenario");
+                // Merge calls
+                PhoneUtils.mergeCalls(mCM);
+            } else if (currCallState == CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+                //Scenario 3: Switching between two Call waiting calls or drop the latest
+                // connection if in a 3Way merge scenario
+                if (DBG) log("answerCall: Switch btwn 2 calls scenario");
+                internalSwapCalls();
+            }
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            if (hasRingingCall) {
+                // If an incoming call is ringing, the CALL button is actually
+                // handled by the PhoneWindowManager.  (We do this to make
+                // sure that we'll respond to the key even if the InCallScreen
+                // hasn't come to the foreground yet.)
+                //
+                // We'd only ever get here in the extremely rare case that the
+                // incoming call started ringing *after*
+                // PhoneWindowManager.interceptKeyTq() but before the event
+                // got here, or else if the PhoneWindowManager had some
+                // problem connecting to the ITelephony service.
+                Log.w(LOG_TAG, "handleCallKey: incoming call is ringing!"
+                      + " (PhoneWindowManager should have handled this key.)");
+                // But go ahead and handle the key as normal, since the
+                // PhoneWindowManager presumably did NOT handle it:
+
+                // There's an incoming ringing call: CALL means "Answer".
+                internalAnswerCall();
+            } else if (hasActiveCall && hasHoldingCall) {
+                // Two lines are in use: CALL means "Swap calls".
+                if (DBG) log("handleCallKey: both lines in use ==> swap calls.");
+                internalSwapCalls();
+            } else if (hasHoldingCall) {
+                // There's only one line in use, AND it's on hold.
+                // In this case CALL is a shortcut for "unhold".
+                if (DBG) log("handleCallKey: call on hold ==> unhold.");
+                PhoneUtils.switchHoldingAndActive(
+                    mCM.getFirstActiveBgCall());  // Really means "unhold" in this state
+            } else {
+                // The most common case: there's only one line in use, and
+                // it's an active call (i.e. it's not on hold.)
+                // In this case CALL is a no-op.
+                // (This used to be a shortcut for "add call", but that was a
+                // bad idea because "Add call" is so infrequently-used, and
+                // because the user experience is pretty confusing if you
+                // inadvertently trigger it.)
+                if (VDBG) log("handleCallKey: call in foregound ==> ignoring.");
+                // But note we still consume this key event; see below.
+            }
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+
+        // We *always* consume the CALL key, since the system-wide default
+        // action ("go to the in-call screen") is useless here.
+        return true;
+    }
+
+    boolean isKeyEventAcceptableDTMF (KeyEvent event) {
+        return (mDialer != null && mDialer.isKeyEventAcceptable(event));
+    }
+
+    /**
+     * Overriden to track relevant focus changes.
+     *
+     * If a key is down and some time later the focus changes, we may
+     * NOT recieve the keyup event; logically the keyup event has not
+     * occured in this window.  This issue is fixed by treating a focus
+     * changed event as an interruption to the keydown, making sure
+     * that any code that needs to be run in onKeyUp is ALSO run here.
+     */
+    @Override
+    public void onWindowFocusChanged(boolean hasFocus) {
+        // the dtmf tones should no longer be played
+        if (VDBG) log("onWindowFocusChanged(" + hasFocus + ")...");
+        if (!hasFocus && mDialer != null) {
+            if (VDBG) log("- onWindowFocusChanged: faking onDialerKeyUp()...");
+            mDialer.onDialerKeyUp(null);
+        }
+    }
+
+    @Override
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        // if (DBG) log("onKeyUp(keycode " + keyCode + ")...");
+
+        // push input to the dialer.
+        if ((mDialer != null) && (mDialer.onDialerKeyUp(event))){
+            return true;
+        } else if (keyCode == KeyEvent.KEYCODE_CALL) {
+            // Always consume CALL to be sure the PhoneWindow won't do anything with it
+            return true;
+        }
+        return super.onKeyUp(keyCode, event);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        // if (DBG) log("onKeyDown(keycode " + keyCode + ")...");
+
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_CALL:
+                boolean handled = handleCallKey();
+                if (!handled) {
+                    Log.w(LOG_TAG, "InCallScreen should always handle KEYCODE_CALL in onKeyDown");
+                }
+                // Always consume CALL to be sure the PhoneWindow won't do anything with it
+                return true;
+
+            // Note there's no KeyEvent.KEYCODE_ENDCALL case here.
+            // The standard system-wide handling of the ENDCALL key
+            // (see PhoneWindowManager's handling of KEYCODE_ENDCALL)
+            // already implements exactly what the UI spec wants,
+            // namely (1) "hang up" if there's a current active call,
+            // or (2) "don't answer" if there's a current ringing call.
+
+            case KeyEvent.KEYCODE_CAMERA:
+                // Disable the CAMERA button while in-call since it's too
+                // easy to press accidentally.
+                return true;
+
+            case KeyEvent.KEYCODE_VOLUME_UP:
+            case KeyEvent.KEYCODE_VOLUME_DOWN:
+            case KeyEvent.KEYCODE_VOLUME_MUTE:
+                if (mCM.getState() == PhoneConstants.State.RINGING) {
+                    // If an incoming call is ringing, the VOLUME buttons are
+                    // actually handled by the PhoneWindowManager.  (We do
+                    // this to make sure that we'll respond to them even if
+                    // the InCallScreen hasn't come to the foreground yet.)
+                    //
+                    // We'd only ever get here in the extremely rare case that the
+                    // incoming call started ringing *after*
+                    // PhoneWindowManager.interceptKeyTq() but before the event
+                    // got here, or else if the PhoneWindowManager had some
+                    // problem connecting to the ITelephony service.
+                    Log.w(LOG_TAG, "VOLUME key: incoming call is ringing!"
+                          + " (PhoneWindowManager should have handled this key.)");
+                    // But go ahead and handle the key as normal, since the
+                    // PhoneWindowManager presumably did NOT handle it:
+                    internalSilenceRinger();
+
+                    // As long as an incoming call is ringing, we always
+                    // consume the VOLUME keys.
+                    return true;
+                }
+                break;
+
+            case KeyEvent.KEYCODE_MUTE:
+                onMuteClick();
+                return true;
+
+            // Various testing/debugging features, enabled ONLY when VDBG == true.
+            case KeyEvent.KEYCODE_SLASH:
+                if (VDBG) {
+                    log("----------- InCallScreen View dump --------------");
+                    // Dump starting from the top-level view of the entire activity:
+                    Window w = this.getWindow();
+                    View decorView = w.getDecorView();
+                    decorView.debug();
+                    return true;
+                }
+                break;
+            case KeyEvent.KEYCODE_EQUALS:
+                if (VDBG) {
+                    log("----------- InCallScreen call state dump --------------");
+                    PhoneUtils.dumpCallState(mPhone);
+                    PhoneUtils.dumpCallManager();
+                    return true;
+                }
+                break;
+            case KeyEvent.KEYCODE_GRAVE:
+                if (VDBG) {
+                    // Placeholder for other misc temp testing
+                    log("------------ Temp testing -----------------");
+                    return true;
+                }
+                break;
+        }
+
+        if (event.getRepeatCount() == 0 && handleDialerKeyDown(keyCode, event)) {
+            return true;
+        }
+
+        return super.onKeyDown(keyCode, event);
+    }
+
+    /**
+     * Handle a failure notification for a supplementary service
+     * (i.e. conference, switch, separate, transfer, etc.).
+     */
+    void onSuppServiceFailed(AsyncResult r) {
+        Phone.SuppService service = (Phone.SuppService) r.result;
+        if (DBG) log("onSuppServiceFailed: " + service);
+
+        int errorMessageResId;
+        switch (service) {
+            case SWITCH:
+                // Attempt to switch foreground and background/incoming calls failed
+                // ("Failed to switch calls")
+                errorMessageResId = R.string.incall_error_supp_service_switch;
+                break;
+
+            case SEPARATE:
+                // Attempt to separate a call from a conference call
+                // failed ("Failed to separate out call")
+                errorMessageResId = R.string.incall_error_supp_service_separate;
+                break;
+
+            case TRANSFER:
+                // Attempt to connect foreground and background calls to
+                // each other (and hanging up user's line) failed ("Call
+                // transfer failed")
+                errorMessageResId = R.string.incall_error_supp_service_transfer;
+                break;
+
+            case CONFERENCE:
+                // Attempt to add a call to conference call failed
+                // ("Conference call failed")
+                errorMessageResId = R.string.incall_error_supp_service_conference;
+                break;
+
+            case REJECT:
+                // Attempt to reject an incoming call failed
+                // ("Call rejection failed")
+                errorMessageResId = R.string.incall_error_supp_service_reject;
+                break;
+
+            case HANGUP:
+                // Attempt to release a call failed ("Failed to release call(s)")
+                errorMessageResId = R.string.incall_error_supp_service_hangup;
+                break;
+
+            case UNKNOWN:
+            default:
+                // Attempt to use a service we don't recognize or support
+                // ("Unsupported service" or "Selected service failed")
+                errorMessageResId = R.string.incall_error_supp_service_unknown;
+                break;
+        }
+
+        // mSuppServiceFailureDialog is a generic dialog used for any
+        // supp service failure, and there's only ever have one
+        // instance at a time.  So just in case a previous dialog is
+        // still around, dismiss it.
+        if (mSuppServiceFailureDialog != null) {
+            if (DBG) log("- DISMISSING mSuppServiceFailureDialog.");
+            mSuppServiceFailureDialog.dismiss();  // It's safe to dismiss() a dialog
+                                                  // that's already dismissed.
+            mSuppServiceFailureDialog = null;
+        }
+
+        mSuppServiceFailureDialog = new AlertDialog.Builder(this)
+                .setMessage(errorMessageResId)
+                .setPositiveButton(R.string.ok, null)
+                .create();
+        mSuppServiceFailureDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+        mSuppServiceFailureDialog.show();
+    }
+
+    /**
+     * Something has changed in the phone's state.  Update the UI.
+     */
+    private void onPhoneStateChanged(AsyncResult r) {
+        PhoneConstants.State state = mCM.getState();
+        if (DBG) log("onPhoneStateChanged: current state = " + state);
+
+        // There's nothing to do here if we're not the foreground activity.
+        // (When we *do* eventually come to the foreground, we'll do a
+        // full update then.)
+        if (!mIsForegroundActivity) {
+            if (DBG) log("onPhoneStateChanged: Activity not in foreground! Bailing out...");
+            return;
+        }
+
+        updateExpandedViewState();
+
+        // Update the onscreen UI.
+        // We use requestUpdateScreen() here (which posts a handler message)
+        // instead of calling updateScreen() directly, which allows us to avoid
+        // unnecessary work if multiple onPhoneStateChanged() events come in all
+        // at the same time.
+
+        requestUpdateScreen();
+
+        // Make sure we update the poke lock and wake lock when certain
+        // phone state changes occur.
+        mApp.updateWakeState();
+    }
+
+    /**
+     * Updates the UI after a phone connection is disconnected, as follows:
+     *
+     * - If this was a missed or rejected incoming call, and no other
+     *   calls are active, dismiss the in-call UI immediately.  (The
+     *   CallNotifier will still create a "missed call" notification if
+     *   necessary.)
+     *
+     * - With any other disconnect cause, if the phone is now totally
+     *   idle, display the "Call ended" state for a couple of seconds.
+     *
+     * - Or, if the phone is still in use, stay on the in-call screen
+     *   (and update the UI to reflect the current state of the Phone.)
+     *
+     * @param r r.result contains the connection that just ended
+     */
+    private void onDisconnect(AsyncResult r) {
+        Connection c = (Connection) r.result;
+        Connection.DisconnectCause cause = c.getDisconnectCause();
+        if (DBG) log("onDisconnect: connection '" + c + "', cause = " + cause
+                + ", showing screen: " + mApp.isShowingCallScreen());
+
+        boolean currentlyIdle = !phoneIsInUse();
+        int autoretrySetting = AUTO_RETRY_OFF;
+        boolean phoneIsCdma = (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA);
+        if (phoneIsCdma) {
+            // Get the Auto-retry setting only if Phone State is IDLE,
+            // else let it stay as AUTO_RETRY_OFF
+            if (currentlyIdle) {
+                autoretrySetting = android.provider.Settings.Global.getInt(mPhone.getContext().
+                        getContentResolver(), android.provider.Settings.Global.CALL_AUTO_RETRY, 0);
+            }
+        }
+
+        // for OTA Call, only if in OTA NORMAL mode, handle OTA END scenario
+        if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+                && ((mApp.cdmaOtaProvisionData != null)
+                && (!mApp.cdmaOtaProvisionData.inOtaSpcState))) {
+            setInCallScreenMode(InCallScreenMode.OTA_ENDED);
+            updateScreen();
+            return;
+        } else if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)
+                   || ((mApp.cdmaOtaProvisionData != null)
+                       && mApp.cdmaOtaProvisionData.inOtaSpcState)) {
+           if (DBG) log("onDisconnect: OTA Call end already handled");
+           return;
+        }
+
+        // Any time a call disconnects, clear out the "history" of DTMF
+        // digits you typed (to make sure it doesn't persist from one call
+        // to the next.)
+        mDialer.clearDigits();
+
+        // Under certain call disconnected states, we want to alert the user
+        // with a dialog instead of going through the normal disconnect
+        // routine.
+        if (cause == Connection.DisconnectCause.CALL_BARRED) {
+            showGenericErrorDialog(R.string.callFailed_cb_enabled, false);
+            return;
+        } else if (cause == Connection.DisconnectCause.FDN_BLOCKED) {
+            showGenericErrorDialog(R.string.callFailed_fdn_only, false);
+            return;
+        } else if (cause == Connection.DisconnectCause.CS_RESTRICTED) {
+            showGenericErrorDialog(R.string.callFailed_dsac_restricted, false);
+            return;
+        } else if (cause == Connection.DisconnectCause.CS_RESTRICTED_EMERGENCY) {
+            showGenericErrorDialog(R.string.callFailed_dsac_restricted_emergency, false);
+            return;
+        } else if (cause == Connection.DisconnectCause.CS_RESTRICTED_NORMAL) {
+            showGenericErrorDialog(R.string.callFailed_dsac_restricted_normal, false);
+            return;
+        }
+
+        if (phoneIsCdma) {
+            Call.State callState = mApp.notifier.getPreviousCdmaCallState();
+            if ((callState == Call.State.ACTIVE)
+                    && (cause != Connection.DisconnectCause.INCOMING_MISSED)
+                    && (cause != Connection.DisconnectCause.NORMAL)
+                    && (cause != Connection.DisconnectCause.LOCAL)
+                    && (cause != Connection.DisconnectCause.INCOMING_REJECTED)) {
+                showCallLostDialog();
+            } else if ((callState == Call.State.DIALING || callState == Call.State.ALERTING)
+                        && (cause != Connection.DisconnectCause.INCOMING_MISSED)
+                        && (cause != Connection.DisconnectCause.NORMAL)
+                        && (cause != Connection.DisconnectCause.LOCAL)
+                        && (cause != Connection.DisconnectCause.INCOMING_REJECTED)) {
+
+                if (mApp.inCallUiState.needToShowCallLostDialog) {
+                    // Show the dialog now since the call that just failed was a retry.
+                    showCallLostDialog();
+                    mApp.inCallUiState.needToShowCallLostDialog = false;
+                } else {
+                    if (autoretrySetting == AUTO_RETRY_OFF) {
+                        // Show the dialog for failed call if Auto Retry is OFF in Settings.
+                        showCallLostDialog();
+                        mApp.inCallUiState.needToShowCallLostDialog = false;
+                    } else {
+                        // Set the needToShowCallLostDialog flag now, so we'll know to show
+                        // the dialog if *this* call fails.
+                        mApp.inCallUiState.needToShowCallLostDialog = true;
+                    }
+                }
+            }
+        }
+
+        // Explicitly clean up up any DISCONNECTED connections
+        // in a conference call.
+        // [Background: Even after a connection gets disconnected, its
+        // Connection object still stays around for a few seconds, in the
+        // DISCONNECTED state.  With regular calls, this state drives the
+        // "call ended" UI.  But when a single person disconnects from a
+        // conference call there's no "call ended" state at all; in that
+        // case we blow away any DISCONNECTED connections right now to make sure
+        // the UI updates instantly to reflect the current state.]
+        final Call call = c.getCall();
+        if (call != null) {
+            // We only care about situation of a single caller
+            // disconnecting from a conference call.  In that case, the
+            // call will have more than one Connection (including the one
+            // that just disconnected, which will be in the DISCONNECTED
+            // state) *and* at least one ACTIVE connection.  (If the Call
+            // has *no* ACTIVE connections, that means that the entire
+            // conference call just ended, so we *do* want to show the
+            // "Call ended" state.)
+            List<Connection> connections = call.getConnections();
+            if (connections != null && connections.size() > 1) {
+                for (Connection conn : connections) {
+                    if (conn.getState() == Call.State.ACTIVE) {
+                        // This call still has at least one ACTIVE connection!
+                        // So blow away any DISCONNECTED connections
+                        // (including, presumably, the one that just
+                        // disconnected from this conference call.)
+
+                        // We also force the wake state to refresh, just in
+                        // case the disconnected connections are removed
+                        // before the phone state change.
+                        if (VDBG) log("- Still-active conf call; clearing DISCONNECTED...");
+                        mApp.updateWakeState();
+                        mCM.clearDisconnected();  // This happens synchronously.
+                        break;
+                    }
+                }
+            }
+        }
+
+        // Note: see CallNotifier.onDisconnect() for some other behavior
+        // that might be triggered by a disconnect event, like playing the
+        // busy/congestion tone.
+
+        // Stash away some info about the call that just disconnected.
+        // (This might affect what happens after we exit the InCallScreen; see
+        // delayedCleanupAfterDisconnect().)
+        // TODO: rather than stashing this away now and then reading it in
+        // delayedCleanupAfterDisconnect(), it would be cleaner to just pass
+        // this as an argument to delayedCleanupAfterDisconnect() (if we call
+        // it directly) or else pass it as a Message argument when we post the
+        // DELAYED_CLEANUP_AFTER_DISCONNECT message.
+        mLastDisconnectCause = cause;
+
+        // We bail out immediately (and *don't* display the "call ended"
+        // state at all) if this was an incoming call.
+        boolean bailOutImmediately =
+                ((cause == Connection.DisconnectCause.INCOMING_MISSED)
+                 || (cause == Connection.DisconnectCause.INCOMING_REJECTED))
+                && currentlyIdle;
+
+        boolean showingQuickResponseDialog =
+                mRespondViaSmsManager != null && mRespondViaSmsManager.isShowingPopup();
+
+        // Note: we also do some special handling for the case when a call
+        // disconnects with cause==OUT_OF_SERVICE while making an
+        // emergency call from airplane mode.  That's handled by
+        // EmergencyCallHelper.onDisconnect().
+
+        if (bailOutImmediately && showingQuickResponseDialog) {
+            if (DBG) log("- onDisconnect: Respond-via-SMS dialog is still being displayed...");
+
+            // Do *not* exit the in-call UI yet!
+            // If the call was an incoming call that was missed *and* the user is using
+            // quick response screen, we keep showing the screen for a moment, assuming the
+            // user wants to reply the call anyway.
+            //
+            // For this case, we will exit the screen when:
+            // - the message is sent (RespondViaSmsManager)
+            // - the message is canceled (RespondViaSmsManager), or
+            // - when the whole in-call UI becomes background (onPause())
+        } else if (bailOutImmediately) {
+            if (DBG) log("- onDisconnect: bailOutImmediately...");
+
+            // Exit the in-call UI!
+            // (This is basically the same "delayed cleanup" we do below,
+            // just with zero delay.  Since the Phone is currently idle,
+            // this call is guaranteed to immediately finish this activity.)
+            delayedCleanupAfterDisconnect();
+        } else {
+            if (DBG) log("- onDisconnect: delayed bailout...");
+            // Stay on the in-call screen for now.  (Either the phone is
+            // still in use, or the phone is idle but we want to display
+            // the "call ended" state for a couple of seconds.)
+
+            // Switch to the special "Call ended" state when the phone is idle
+            // but there's still a call in the DISCONNECTED state:
+            if (currentlyIdle
+                && (mCM.hasDisconnectedFgCall() || mCM.hasDisconnectedBgCall())) {
+                if (DBG) log("- onDisconnect: switching to 'Call ended' state...");
+                setInCallScreenMode(InCallScreenMode.CALL_ENDED);
+            }
+
+            // Force a UI update in case we need to display anything
+            // special based on this connection's DisconnectCause
+            // (see CallCard.getCallFailedString()).
+            updateScreen();
+
+            // Some other misc cleanup that we do if the call that just
+            // disconnected was the foreground call.
+            final boolean hasActiveCall = mCM.hasActiveFgCall();
+            if (!hasActiveCall) {
+                if (DBG) log("- onDisconnect: cleaning up after FG call disconnect...");
+
+                // Dismiss any dialogs which are only meaningful for an
+                // active call *and* which become moot if the call ends.
+                if (mWaitPromptDialog != null) {
+                    if (VDBG) log("- DISMISSING mWaitPromptDialog.");
+                    mWaitPromptDialog.dismiss();  // safe even if already dismissed
+                    mWaitPromptDialog = null;
+                }
+                if (mWildPromptDialog != null) {
+                    if (VDBG) log("- DISMISSING mWildPromptDialog.");
+                    mWildPromptDialog.dismiss();  // safe even if already dismissed
+                    mWildPromptDialog = null;
+                }
+                if (mPausePromptDialog != null) {
+                    if (DBG) log("- DISMISSING mPausePromptDialog.");
+                    mPausePromptDialog.dismiss();  // safe even if already dismissed
+                    mPausePromptDialog = null;
+                }
+            }
+
+            // Updating the screen wake state is done in onPhoneStateChanged().
+
+
+            // CDMA: We only clean up if the Phone state is IDLE as we might receive an
+            // onDisconnect for a Call Collision case (rare but possible).
+            // For Call collision cases i.e. when the user makes an out going call
+            // and at the same time receives an Incoming Call, the Incoming Call is given
+            // higher preference. At this time framework sends a disconnect for the Out going
+            // call connection hence we should *not* bring down the InCallScreen as the Phone
+            // State would be RINGING
+            if (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                if (!currentlyIdle) {
+                    // Clean up any connections in the DISCONNECTED state.
+                    // This is necessary cause in CallCollision the foreground call might have
+                    // connections in DISCONNECTED state which needs to be cleared.
+                    mCM.clearDisconnected();
+
+                    // The phone is still in use.  Stay here in this activity.
+                    // But we don't need to keep the screen on.
+                    if (DBG) log("onDisconnect: Call Collision case - staying on InCallScreen.");
+                    if (DBG) PhoneUtils.dumpCallState(mPhone);
+                    return;
+                }
+            }
+
+            // This is onDisconnect() request from the last phone call; no available call anymore.
+            //
+            // When the in-call UI is in background *because* the screen is turned off (unlike the
+            // other case where the other activity is being shown), we wake up the screen and
+            // show "DISCONNECTED" state once, with appropriate elapsed time. After showing that
+            // we *must* bail out of the screen again, showing screen lock if needed.
+            //
+            // See also comments for isForegroundActivityForProximity()
+            //
+            // TODO: Consider moving this to CallNotifier. This code assumes the InCallScreen
+            // never gets destroyed. For this exact case, it works (since InCallScreen won't be
+            // destroyed), while technically this isn't right; Activity may be destroyed when
+            // in background.
+            if (currentlyIdle && !isForegroundActivity() && isForegroundActivityForProximity()) {
+                log("Force waking up the screen to let users see \"disconnected\" state");
+                if (call != null) {
+                    mCallCard.updateElapsedTimeWidget(call);
+                }
+                // This variable will be kept true until the next InCallScreen#onPause(), which
+                // forcibly turns it off regardless of the situation (for avoiding unnecessary
+                // confusion around this special case).
+                mApp.inCallUiState.showAlreadyDisconnectedState = true;
+
+                // Finally request wake-up..
+                mApp.wakeUpScreen();
+
+                // InCallScreen#onResume() will set DELAYED_CLEANUP_AFTER_DISCONNECT message,
+                // so skip the following section.
+                return;
+            }
+
+            // Finally, arrange for delayedCleanupAfterDisconnect() to get
+            // called after a short interval (during which we display the
+            // "call ended" state.)  At that point, if the
+            // Phone is idle, we'll finish out of this activity.
+            final int callEndedDisplayDelay;
+            switch (cause) {
+                // When the local user hanged up the ongoing call, it is ok to dismiss the screen
+                // soon. In other cases, we show the "hung up" screen longer.
+                //
+                // - For expected reasons we will use CALL_ENDED_LONG_DELAY.
+                // -- when the peer hanged up the call
+                // -- when the local user rejects the incoming call during the other ongoing call
+                // (TODO: there may be other cases which should be in this category)
+                //
+                // - For other unexpected reasons, we will use CALL_ENDED_EXTRA_LONG_DELAY,
+                //   assuming the local user wants to confirm the disconnect reason.
+                case LOCAL:
+                    callEndedDisplayDelay = CALL_ENDED_SHORT_DELAY;
+                    break;
+                case NORMAL:
+                case INCOMING_REJECTED:
+                    callEndedDisplayDelay = CALL_ENDED_LONG_DELAY;
+                    break;
+                default:
+                    callEndedDisplayDelay = CALL_ENDED_EXTRA_LONG_DELAY;
+                    break;
+            }
+            mHandler.removeMessages(DELAYED_CLEANUP_AFTER_DISCONNECT);
+            mHandler.sendEmptyMessageDelayed(DELAYED_CLEANUP_AFTER_DISCONNECT,
+                    callEndedDisplayDelay);
+        }
+
+        // Remove 3way timer (only meaningful for CDMA)
+        // TODO: this call needs to happen in the CallController, not here.
+        // (It should probably be triggered by the CallNotifier's onDisconnect method.)
+        // mHandler.removeMessages(THREEWAY_CALLERINFO_DISPLAY_DONE);
+    }
+
+    /**
+     * Brings up the "MMI Started" dialog.
+     */
+    /* TODO: sort out MMI code (probably we should remove this method entirely). See also
+       MMI handling code in onResume()
+    private void onMMIInitiate(AsyncResult r) {
+        if (VDBG) log("onMMIInitiate()...  AsyncResult r = " + r);
+
+        // Watch out: don't do this if we're not the foreground activity,
+        // mainly since in the Dialog.show() might fail if we don't have a
+        // valid window token any more...
+        // (Note that this exact sequence can happen if you try to start
+        // an MMI code while the radio is off or out of service.)
+        if (!mIsForegroundActivity) {
+            if (VDBG) log("Activity not in foreground! Bailing out...");
+            return;
+        }
+
+        // Also, if any other dialog is up right now (presumably the
+        // generic error dialog displaying the "Starting MMI..."  message)
+        // take it down before bringing up the real "MMI Started" dialog
+        // in its place.
+        dismissAllDialogs();
+
+        MmiCode mmiCode = (MmiCode) r.result;
+        if (VDBG) log("  - MmiCode: " + mmiCode);
+
+        Message message = Message.obtain(mHandler, PhoneApp.MMI_CANCEL);
+        mMmiStartedDialog = PhoneUtils.displayMMIInitiate(this, mmiCode,
+                                                          message, mMmiStartedDialog);
+    }*/
+
+    /**
+     * Handles an MMI_CANCEL event, which is triggered by the button
+     * (labeled either "OK" or "Cancel") on the "MMI Started" dialog.
+     * @see PhoneUtils#cancelMmiCode(Phone)
+     */
+    private void onMMICancel() {
+        if (VDBG) log("onMMICancel()...");
+
+        // First of all, cancel the outstanding MMI code (if possible.)
+        PhoneUtils.cancelMmiCode(mPhone);
+
+        // Regardless of whether the current MMI code was cancelable, the
+        // PhoneApp will get an MMI_COMPLETE event very soon, which will
+        // take us to the MMI Complete dialog (see
+        // PhoneUtils.displayMMIComplete().)
+        //
+        // But until that event comes in, we *don't* want to stay here on
+        // the in-call screen, since we'll be visible in a
+        // partially-constructed state as soon as the "MMI Started" dialog
+        // gets dismissed.  So let's forcibly bail out right now.
+        if (DBG) log("onMMICancel: finishing InCallScreen...");
+        dismissAllDialogs();
+        endInCallScreenSession();
+    }
+
+    /**
+     * Handles an MMI_COMPLETE event, which is triggered by telephony,
+     * implying MMI
+     */
+    private void onMMIComplete(MmiCode mmiCode) {
+        // Check the code to see if the request is ready to
+        // finish, this includes any MMI state that is not
+        // PENDING.
+
+        // if phone is a CDMA phone display feature code completed message
+        int phoneType = mPhone.getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            PhoneUtils.displayMMIComplete(mPhone, mApp, mmiCode, null, null);
+        } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+            if (mmiCode.getState() != MmiCode.State.PENDING) {
+                if (DBG) log("Got MMI_COMPLETE, finishing InCallScreen...");
+                dismissAllDialogs();
+                endInCallScreenSession();
+            }
+        }
+    }
+
+    /**
+     * Handles the POST_ON_DIAL_CHARS message from the Phone
+     * (see our call to mPhone.setOnPostDialCharacter() above.)
+     *
+     * TODO: NEED TO TEST THIS SEQUENCE now that we no longer handle
+     * "dialable" key events here in the InCallScreen: we do directly to the
+     * Dialer UI instead.  Similarly, we may now need to go directly to the
+     * Dialer to handle POST_ON_DIAL_CHARS too.
+     */
+    private void handlePostOnDialChars(AsyncResult r, char ch) {
+        Connection c = (Connection) r.result;
+
+        if (c != null) {
+            Connection.PostDialState state =
+                    (Connection.PostDialState) r.userObj;
+
+            if (VDBG) log("handlePostOnDialChar: state = " +
+                    state + ", ch = " + ch);
+
+            switch (state) {
+                case STARTED:
+                    mDialer.stopLocalToneIfNeeded();
+                    if (mPauseInProgress) {
+                        /**
+                         * Note that on some devices, this will never happen,
+                         * because we will not ever enter the PAUSE state.
+                         */
+                        showPausePromptDialog(c, mPostDialStrAfterPause);
+                    }
+                    mPauseInProgress = false;
+                    mDialer.startLocalToneIfNeeded(ch);
+
+                    // TODO: is this needed, now that you can't actually
+                    // type DTMF chars or dial directly from here?
+                    // If so, we'd need to yank you out of the in-call screen
+                    // here too (and take you to the 12-key dialer in "in-call" mode.)
+                    // displayPostDialedChar(ch);
+                    break;
+
+                case WAIT:
+                    // wait shows a prompt.
+                    if (DBG) log("handlePostOnDialChars: show WAIT prompt...");
+                    mDialer.stopLocalToneIfNeeded();
+                    String postDialStr = c.getRemainingPostDialString();
+                    showWaitPromptDialog(c, postDialStr);
+                    break;
+
+                case WILD:
+                    if (DBG) log("handlePostOnDialChars: show WILD prompt");
+                    mDialer.stopLocalToneIfNeeded();
+                    showWildPromptDialog(c);
+                    break;
+
+                case COMPLETE:
+                    mDialer.stopLocalToneIfNeeded();
+                    break;
+
+                case PAUSE:
+                    // pauses for a brief period of time then continue dialing.
+                    mDialer.stopLocalToneIfNeeded();
+                    mPostDialStrAfterPause = c.getRemainingPostDialString();
+                    mPauseInProgress = true;
+                    break;
+
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Pop up an alert dialog with OK and Cancel buttons to allow user to
+     * Accept or Reject the WAIT inserted as part of the Dial string.
+     */
+    private void showWaitPromptDialog(final Connection c, String postDialStr) {
+        if (DBG) log("showWaitPromptDialogChoice: '" + postDialStr + "'...");
+
+        Resources r = getResources();
+        StringBuilder buf = new StringBuilder();
+        buf.append(r.getText(R.string.wait_prompt_str));
+        buf.append(postDialStr);
+
+        // if (DBG) log("- mWaitPromptDialog = " + mWaitPromptDialog);
+        if (mWaitPromptDialog != null) {
+            if (DBG) log("- DISMISSING mWaitPromptDialog.");
+            mWaitPromptDialog.dismiss();  // safe even if already dismissed
+            mWaitPromptDialog = null;
+        }
+
+        mWaitPromptDialog = new AlertDialog.Builder(this)
+                .setMessage(buf.toString())
+                .setPositiveButton(R.string.pause_prompt_yes,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                if (DBG) log("handle WAIT_PROMPT_CONFIRMED, proceed...");
+                                c.proceedAfterWaitChar();
+                            }
+                        })
+                .setNegativeButton(R.string.pause_prompt_no,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                if (DBG) log("handle POST_DIAL_CANCELED!");
+                                c.cancelPostDial();
+                            }
+                        })
+                .create();
+        mWaitPromptDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+
+        mWaitPromptDialog.show();
+    }
+
+    /**
+     * Pop up an alert dialog which waits for 2 seconds for each P (Pause) Character entered
+     * as part of the Dial String.
+     */
+    private void showPausePromptDialog(final Connection c, String postDialStrAfterPause) {
+        Resources r = getResources();
+        StringBuilder buf = new StringBuilder();
+        buf.append(r.getText(R.string.pause_prompt_str));
+        buf.append(postDialStrAfterPause);
+
+        if (mPausePromptDialog != null) {
+            if (DBG) log("- DISMISSING mPausePromptDialog.");
+            mPausePromptDialog.dismiss();  // safe even if already dismissed
+            mPausePromptDialog = null;
+        }
+
+        mPausePromptDialog = new AlertDialog.Builder(this)
+                .setMessage(buf.toString())
+                .create();
+        mPausePromptDialog.show();
+        // 2 second timer
+        Message msg = Message.obtain(mHandler, EVENT_PAUSE_DIALOG_COMPLETE);
+        mHandler.sendMessageDelayed(msg, PAUSE_PROMPT_DIALOG_TIMEOUT);
+    }
+
+    private View createWildPromptView() {
+        LinearLayout result = new LinearLayout(this);
+        result.setOrientation(LinearLayout.VERTICAL);
+        result.setPadding(5, 5, 5, 5);
+
+        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT,
+                        ViewGroup.LayoutParams.WRAP_CONTENT);
+
+        TextView promptMsg = new TextView(this);
+        promptMsg.setTextSize(14);
+        promptMsg.setTypeface(Typeface.DEFAULT_BOLD);
+        promptMsg.setText(getResources().getText(R.string.wild_prompt_str));
+
+        result.addView(promptMsg, lp);
+
+        mWildPromptText = new EditText(this);
+        mWildPromptText.setKeyListener(DialerKeyListener.getInstance());
+        mWildPromptText.setMovementMethod(null);
+        mWildPromptText.setTextSize(14);
+        mWildPromptText.setMaxLines(1);
+        mWildPromptText.setHorizontallyScrolling(true);
+        mWildPromptText.setBackgroundResource(android.R.drawable.editbox_background);
+
+        LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT,
+                        ViewGroup.LayoutParams.WRAP_CONTENT);
+        lp2.setMargins(0, 3, 0, 0);
+
+        result.addView(mWildPromptText, lp2);
+
+        return result;
+    }
+
+    private void showWildPromptDialog(final Connection c) {
+        View v = createWildPromptView();
+
+        if (mWildPromptDialog != null) {
+            if (VDBG) log("- DISMISSING mWildPromptDialog.");
+            mWildPromptDialog.dismiss();  // safe even if already dismissed
+            mWildPromptDialog = null;
+        }
+
+        mWildPromptDialog = new AlertDialog.Builder(this)
+                .setView(v)
+                .setPositiveButton(
+                        R.string.send_button,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                if (VDBG) log("handle WILD_PROMPT_CHAR_ENTERED, proceed...");
+                                String replacement = null;
+                                if (mWildPromptText != null) {
+                                    replacement = mWildPromptText.getText().toString();
+                                    mWildPromptText = null;
+                                }
+                                c.proceedAfterWildChar(replacement);
+                                mApp.pokeUserActivity();
+                            }
+                        })
+                .setOnCancelListener(
+                        new DialogInterface.OnCancelListener() {
+                            @Override
+                            public void onCancel(DialogInterface dialog) {
+                                if (VDBG) log("handle POST_DIAL_CANCELED!");
+                                c.cancelPostDial();
+                                mApp.pokeUserActivity();
+                            }
+                        })
+                .create();
+        mWildPromptDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+        mWildPromptDialog.show();
+
+        mWildPromptText.requestFocus();
+    }
+
+    /**
+     * Updates the state of the in-call UI based on the current state of
+     * the Phone.  This call has no effect if we're not currently the
+     * foreground activity.
+     *
+     * This method is only allowed to be called from the UI thread (since it
+     * manipulates our View hierarchy).  If you need to update the screen from
+     * some other thread, or if you just want to "post a request" for the screen
+     * to be updated (rather than doing it synchronously), call
+     * requestUpdateScreen() instead.
+     *
+     * Right now this method will update UI visibility immediately, with no animation.
+     * TODO: have animate flag here and use it anywhere possible.
+     */
+    private void updateScreen() {
+        if (DBG) log("updateScreen()...");
+        final InCallScreenMode inCallScreenMode = mApp.inCallUiState.inCallScreenMode;
+        if (VDBG) {
+            PhoneConstants.State state = mCM.getState();
+            log("  - phone state = " + state);
+            log("  - inCallScreenMode = " + inCallScreenMode);
+        }
+
+        // Don't update anything if we're not in the foreground (there's
+        // no point updating our UI widgets since we're not visible!)
+        // Also note this check also ensures we won't update while we're
+        // in the middle of pausing, which could cause a visible glitch in
+        // the "activity ending" transition.
+        if (!mIsForegroundActivity) {
+            if (DBG) log("- updateScreen: not the foreground Activity! Bailing out...");
+            return;
+        }
+
+        if (inCallScreenMode == InCallScreenMode.OTA_NORMAL) {
+            if (DBG) log("- updateScreen: OTA call state NORMAL (NOT updating in-call UI)...");
+            mCallCard.setVisibility(View.GONE);
+            if (mApp.otaUtils != null) {
+                mApp.otaUtils.otaShowProperScreen();
+            } else {
+                Log.w(LOG_TAG, "OtaUtils object is null, not showing any screen for that.");
+            }
+            return;  // Return without updating in-call UI.
+        } else if (inCallScreenMode == InCallScreenMode.OTA_ENDED) {
+            if (DBG) log("- updateScreen: OTA call ended state (NOT updating in-call UI)...");
+            mCallCard.setVisibility(View.GONE);
+            // Wake up the screen when we get notification, good or bad.
+            mApp.wakeUpScreen();
+            if (mApp.cdmaOtaScreenState.otaScreenState
+                    == CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION) {
+                if (DBG) log("- updateScreen: OTA_STATUS_ACTIVATION");
+                if (mApp.otaUtils != null) {
+                    if (DBG) log("- updateScreen: mApp.otaUtils is not null, "
+                                  + "call otaShowActivationScreen");
+                    mApp.otaUtils.otaShowActivateScreen();
+                }
+            } else {
+                if (DBG) log("- updateScreen: OTA Call end state for Dialogs");
+                if (mApp.otaUtils != null) {
+                    if (DBG) log("- updateScreen: Show OTA Success Failure dialog");
+                    mApp.otaUtils.otaShowSuccessFailure();
+                }
+            }
+            return;  // Return without updating in-call UI.
+        } else if (inCallScreenMode == InCallScreenMode.MANAGE_CONFERENCE) {
+            if (DBG) log("- updateScreen: manage conference mode (NOT updating in-call UI)...");
+            mCallCard.setVisibility(View.GONE);
+            updateManageConferencePanelIfNecessary();
+            return;  // Return without updating in-call UI.
+        } else if (inCallScreenMode == InCallScreenMode.CALL_ENDED) {
+            if (DBG) log("- updateScreen: call ended state...");
+            // Continue with the rest of updateScreen() as usual, since we do
+            // need to update the background (to the special "call ended" color)
+            // and the CallCard (to show the "Call ended" label.)
+        }
+
+        if (DBG) log("- updateScreen: updating the in-call UI...");
+        // Note we update the InCallTouchUi widget before the CallCard,
+        // since the CallCard adjusts its size based on how much vertical
+        // space the InCallTouchUi widget needs.
+        updateInCallTouchUi();
+        mCallCard.updateState(mCM);
+
+        // If an incoming call is ringing, make sure the dialpad is
+        // closed.  (We do this to make sure we're not covering up the
+        // "incoming call" UI.)
+        if (mCM.getState() == PhoneConstants.State.RINGING) {
+            if (mDialer.isOpened()) {
+              Log.i(LOG_TAG, "During RINGING state we force hiding dialpad.");
+              closeDialpadInternal(false);  // don't do the "closing" animation
+            }
+
+            // At this point, we are guranteed that the dialer is closed.
+            // This means that it is safe to clear out the "history" of DTMF digits
+            // you may have typed into the previous call (so you don't see the
+            // previous call's digits if you answer this call and then bring up the
+            // dialpad.)
+            //
+            // TODO: it would be more precise to do this when you *answer* the
+            // incoming call, rather than as soon as it starts ringing, but
+            // the InCallScreen doesn't keep enough state right now to notice
+            // that specific transition in onPhoneStateChanged().
+            // TODO: This clears out the dialpad context as well so when a second
+            // call comes in while a voicemail call is happening, the voicemail
+            // dialpad will no longer have the "Voice Mail" context. It's a small
+            // case so not terribly bad, but we need to maintain a better
+            // call-to-callstate mapping before we can fix this.
+            mDialer.clearDigits();
+        }
+
+
+        // Now that we're sure DTMF dialpad is in an appropriate state, reflect
+        // the dialpad state into CallCard
+        updateCallCardVisibilityPerDialerState(false);
+
+        updateProgressIndication();
+
+        // Forcibly take down all dialog if an incoming call is ringing.
+        if (mCM.hasActiveRingingCall()) {
+            dismissAllDialogs();
+        } else {
+            // Wait prompt dialog is not currently up.  But it *should* be
+            // up if the FG call has a connection in the WAIT state and
+            // the phone isn't ringing.
+            String postDialStr = null;
+            List<Connection> fgConnections = mCM.getFgCallConnections();
+            int phoneType = mCM.getFgPhone().getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                Connection fgLatestConnection = mCM.getFgCallLatestConnection();
+                if (mApp.cdmaPhoneCallState.getCurrentCallState() ==
+                        CdmaPhoneCallState.PhoneCallState.CONF_CALL) {
+                    for (Connection cn : fgConnections) {
+                        if ((cn != null) && (cn.getPostDialState() ==
+                                Connection.PostDialState.WAIT)) {
+                            cn.cancelPostDial();
+                        }
+                    }
+                } else if ((fgLatestConnection != null)
+                     && (fgLatestConnection.getPostDialState() == Connection.PostDialState.WAIT)) {
+                    if(DBG) log("show the Wait dialog for CDMA");
+                    postDialStr = fgLatestConnection.getRemainingPostDialString();
+                    showWaitPromptDialog(fgLatestConnection, postDialStr);
+                }
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                    || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                for (Connection cn : fgConnections) {
+                    if ((cn != null) && (cn.getPostDialState() == Connection.PostDialState.WAIT)) {
+                        postDialStr = cn.getRemainingPostDialString();
+                        showWaitPromptDialog(cn, postDialStr);
+                    }
+                }
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        }
+    }
+
+    /**
+     * (Re)synchronizes the onscreen UI with the current state of the
+     * telephony framework.
+     *
+     * @return SyncWithPhoneStateStatus.SUCCESS if we successfully updated the UI, or
+     *    SyncWithPhoneStateStatus.PHONE_NOT_IN_USE if there was no phone state to sync
+     *    with (ie. the phone was completely idle).  In the latter case, we
+     *    shouldn't even be in the in-call UI in the first place, and it's
+     *    the caller's responsibility to bail out of this activity by
+     *    calling endInCallScreenSession if appropriate.
+     *
+     * This method directly calls updateScreen() in the normal "phone is
+     * in use" case, so there's no need for the caller to do so.
+     */
+    private SyncWithPhoneStateStatus syncWithPhoneState() {
+        boolean updateSuccessful = false;
+        if (DBG) log("syncWithPhoneState()...");
+        if (DBG) PhoneUtils.dumpCallState(mPhone);
+        if (VDBG) dumpBluetoothState();
+
+        // Make sure the Phone is "in use".  (If not, we shouldn't be on
+        // this screen in the first place.)
+
+        // An active or just-ended OTA call counts as "in use".
+        if (TelephonyCapabilities.supportsOtasp(mCM.getFgPhone())
+                && ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+                    || (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED))) {
+            // Even when OTA Call ends, need to show OTA End UI,
+            // so return Success to allow UI update.
+            return SyncWithPhoneStateStatus.SUCCESS;
+        }
+
+        // If an MMI code is running that also counts as "in use".
+        //
+        // TODO: We currently only call getPendingMmiCodes() for GSM
+        //   phones.  (The code's been that way all along.)  But CDMAPhone
+        //   does in fact implement getPendingMmiCodes(), so should we
+        //   check that here regardless of the phone type?
+        boolean hasPendingMmiCodes =
+                (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM)
+                && !mPhone.getPendingMmiCodes().isEmpty();
+
+        // Finally, it's also OK to stay here on the InCallScreen if we
+        // need to display a progress indicator while something's
+        // happening in the background.
+        boolean showProgressIndication = mApp.inCallUiState.isProgressIndicationActive();
+
+        boolean showScreenEvenAfterDisconnect = mApp.inCallUiState.showAlreadyDisconnectedState;
+
+        if (mCM.hasActiveFgCall() || mCM.hasActiveBgCall() || mCM.hasActiveRingingCall()
+                || hasPendingMmiCodes || showProgressIndication || showScreenEvenAfterDisconnect) {
+            if (VDBG) log("syncWithPhoneState: it's ok to be here; update the screen...");
+            updateScreen();
+            return SyncWithPhoneStateStatus.SUCCESS;
+        }
+
+        Log.i(LOG_TAG, "syncWithPhoneState: phone is idle (shouldn't be here)");
+        return SyncWithPhoneStateStatus.PHONE_NOT_IN_USE;
+    }
+
+
+
+    private void handleMissingVoiceMailNumber() {
+        if (DBG) log("handleMissingVoiceMailNumber");
+
+        final Message msg = Message.obtain(mHandler);
+        msg.what = DONT_ADD_VOICEMAIL_NUMBER;
+
+        final Message msg2 = Message.obtain(mHandler);
+        msg2.what = ADD_VOICEMAIL_NUMBER;
+
+        mMissingVoicemailDialog = new AlertDialog.Builder(this)
+                .setTitle(R.string.no_vm_number)
+                .setMessage(R.string.no_vm_number_msg)
+                .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int which) {
+                            if (VDBG) log("Missing voicemail AlertDialog: POSITIVE click...");
+                            msg.sendToTarget();  // see dontAddVoiceMailNumber()
+                            mApp.pokeUserActivity();
+                        }})
+                .setNegativeButton(R.string.add_vm_number_str,
+                                   new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int which) {
+                            if (VDBG) log("Missing voicemail AlertDialog: NEGATIVE click...");
+                            msg2.sendToTarget();  // see addVoiceMailNumber()
+                            mApp.pokeUserActivity();
+                        }})
+                .setOnCancelListener(new OnCancelListener() {
+                        public void onCancel(DialogInterface dialog) {
+                            if (VDBG) log("Missing voicemail AlertDialog: CANCEL handler...");
+                            msg.sendToTarget();  // see dontAddVoiceMailNumber()
+                            mApp.pokeUserActivity();
+                        }})
+                .create();
+
+        // When the dialog is up, completely hide the in-call UI
+        // underneath (which is in a partially-constructed state).
+        mMissingVoicemailDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+        mMissingVoicemailDialog.show();
+    }
+
+    private void addVoiceMailNumberPanel() {
+        if (mMissingVoicemailDialog != null) {
+            mMissingVoicemailDialog.dismiss();
+            mMissingVoicemailDialog = null;
+        }
+        if (DBG) log("addVoiceMailNumberPanel: finishing InCallScreen...");
+        endInCallScreenSession();
+
+        if (DBG) log("show vm setting");
+
+        // navigate to the Voicemail setting in the Call Settings activity.
+        Intent intent = new Intent(CallFeaturesSetting.ACTION_ADD_VOICEMAIL);
+        intent.setClass(this, CallFeaturesSetting.class);
+        startActivity(intent);
+    }
+
+    private void dontAddVoiceMailNumber() {
+        if (mMissingVoicemailDialog != null) {
+            mMissingVoicemailDialog.dismiss();
+            mMissingVoicemailDialog = null;
+        }
+        if (DBG) log("dontAddVoiceMailNumber: finishing InCallScreen...");
+        endInCallScreenSession();
+    }
+
+    /**
+     * Do some delayed cleanup after a Phone call gets disconnected.
+     *
+     * This method gets called a couple of seconds after any DISCONNECT
+     * event from the Phone; it's triggered by the
+     * DELAYED_CLEANUP_AFTER_DISCONNECT message we send in onDisconnect().
+     *
+     * If the Phone is totally idle right now, that means we've already
+     * shown the "call ended" state for a couple of seconds, and it's now
+     * time to endInCallScreenSession this activity.
+     *
+     * If the Phone is *not* idle right now, that probably means that one
+     * call ended but the other line is still in use.  In that case, do
+     * nothing, and instead stay here on the InCallScreen.
+     */
+    private void delayedCleanupAfterDisconnect() {
+        if (VDBG) log("delayedCleanupAfterDisconnect()...  Phone state = " + mCM.getState());
+
+        // Clean up any connections in the DISCONNECTED state.
+        //
+        // [Background: Even after a connection gets disconnected, its
+        // Connection object still stays around, in the special
+        // DISCONNECTED state.  This is necessary because we we need the
+        // caller-id information from that Connection to properly draw the
+        // "Call ended" state of the CallCard.
+        //   But at this point we truly don't need that connection any
+        // more, so tell the Phone that it's now OK to to clean up any
+        // connections still in that state.]
+        mCM.clearDisconnected();
+
+        // There are two cases where we should *not* exit the InCallScreen:
+        //   (1) Phone is still in use
+        // or
+        //   (2) There's an active progress indication (i.e. the "Retrying..."
+        //       progress dialog) that we need to continue to display.
+
+        boolean stayHere = phoneIsInUse() || mApp.inCallUiState.isProgressIndicationActive();
+
+        if (stayHere) {
+            if (DBG) log("- delayedCleanupAfterDisconnect: staying on the InCallScreen...");
+        } else {
+            // Phone is idle!  We should exit the in-call UI now.
+            if (DBG) log("- delayedCleanupAfterDisconnect: phone is idle...");
+
+            // And (finally!) exit from the in-call screen
+            // (but not if we're already in the process of pausing...)
+            if (mIsForegroundActivity) {
+                if (DBG) log("- delayedCleanupAfterDisconnect: finishing InCallScreen...");
+
+                // In some cases we finish the call by taking the user to the
+                // Call Log.  Otherwise, we simply call endInCallScreenSession,
+                // which will take us back to wherever we came from.
+                //
+                // UI note: In eclair and earlier, we went to the Call Log
+                // after outgoing calls initiated on the device, but never for
+                // incoming calls.  Now we do it for incoming calls too, as
+                // long as the call was answered by the user.  (We always go
+                // back where you came from after a rejected or missed incoming
+                // call.)
+                //
+                // And in any case, *never* go to the call log if we're in
+                // emergency mode (i.e. if the screen is locked and a lock
+                // pattern or PIN/password is set), or if we somehow got here
+                // on a non-voice-capable device.
+
+                if (VDBG) log("- Post-call behavior:");
+                if (VDBG) log("  - mLastDisconnectCause = " + mLastDisconnectCause);
+                if (VDBG) log("  - isPhoneStateRestricted() = " + isPhoneStateRestricted());
+
+                // DisconnectCause values in the most common scenarios:
+                // - INCOMING_MISSED: incoming ringing call times out, or the
+                //                    other end hangs up while still ringing
+                // - INCOMING_REJECTED: user rejects the call while ringing
+                // - LOCAL: user hung up while a call was active (after
+                //          answering an incoming call, or after making an
+                //          outgoing call)
+                // - NORMAL: the other end hung up (after answering an incoming
+                //           call, or after making an outgoing call)
+
+                if ((mLastDisconnectCause != Connection.DisconnectCause.INCOMING_MISSED)
+                        && (mLastDisconnectCause != Connection.DisconnectCause.INCOMING_REJECTED)
+                        && !isPhoneStateRestricted()
+                        && PhoneGlobals.sVoiceCapable) {
+                    final Intent intent = mApp.createPhoneEndIntentUsingCallOrigin();
+                    ActivityOptions opts = ActivityOptions.makeCustomAnimation(this,
+                            R.anim.activity_close_enter, R.anim.activity_close_exit);
+                    if (VDBG) {
+                        log("- Show Call Log (or Dialtacts) after disconnect. Current intent: "
+                                + intent);
+                    }
+                    try {
+                        startActivity(intent, opts.toBundle());
+                    } catch (ActivityNotFoundException e) {
+                        // Don't crash if there's somehow no "Call log" at
+                        // all on this device.
+                        // (This should never happen, though, since we already
+                        // checked PhoneApp.sVoiceCapable above, and any
+                        // voice-capable device surely *should* have a call
+                        // log activity....)
+                        Log.w(LOG_TAG, "delayedCleanupAfterDisconnect: "
+                              + "transition to call log failed; intent = " + intent);
+                        // ...so just return back where we came from....
+                    }
+                    // Even if we did go to the call log, note that we still
+                    // call endInCallScreenSession (below) to make sure we don't
+                    // stay in the activity history.
+                }
+
+            }
+            endInCallScreenSession();
+
+            // Reset the call origin when the session ends and this in-call UI is being finished.
+            mApp.setLatestActiveCallOrigin(null);
+        }
+    }
+
+
+    /**
+     * View.OnClickListener implementation.
+     *
+     * This method handles clicks from UI elements that use the
+     * InCallScreen itself as their OnClickListener.
+     *
+     * Note: Currently this method is used only for a few special buttons:
+     * - the mButtonManageConferenceDone "Back to call" button
+     * - the "dim" effect for the secondary call photo in CallCard as the second "swap" button
+     * - other OTASP-specific buttons managed by OtaUtils.java.
+     *
+     * *Most* in-call controls are handled by the handleOnscreenButtonClick() method, via the
+     * InCallTouchUi widget.
+     */
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        if (VDBG) log("onClick(View " + view + ", id " + id + ")...");
+
+        switch (id) {
+            case R.id.manage_done:  // mButtonManageConferenceDone
+                if (VDBG) log("onClick: mButtonManageConferenceDone...");
+                // Hide the Manage Conference panel, return to NORMAL mode.
+                setInCallScreenMode(InCallScreenMode.NORMAL);
+                requestUpdateScreen();
+                break;
+
+            case R.id.dim_effect_for_secondary_photo:
+                if (mInCallControlState.canSwap) {
+                    internalSwapCalls();
+                }
+                break;
+
+            default:
+                // Presumably one of the OTASP-specific buttons managed by
+                // OtaUtils.java.
+                // (TODO: It would be cleaner for the OtaUtils instance itself to
+                // be the OnClickListener for its own buttons.)
+
+                if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL
+                     || mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)
+                    && mApp.otaUtils != null) {
+                    mApp.otaUtils.onClickHandler(id);
+                } else {
+                    // Uh oh: we *should* only receive clicks here from the
+                    // buttons managed by OtaUtils.java, but if we're not in one
+                    // of the special OTASP modes, those buttons shouldn't have
+                    // been visible in the first place.
+                    Log.w(LOG_TAG,
+                          "onClick: unexpected click from ID " + id + " (View = " + view + ")");
+                }
+                break;
+        }
+
+        EventLog.writeEvent(EventLogTags.PHONE_UI_BUTTON_CLICK,
+                (view instanceof TextView) ? ((TextView) view).getText() : "");
+
+        // Clicking any onscreen UI element counts as explicit "user activity".
+        mApp.pokeUserActivity();
+    }
+
+    private void onHoldClick() {
+        final boolean hasActiveCall = mCM.hasActiveFgCall();
+        final boolean hasHoldingCall = mCM.hasActiveBgCall();
+        log("onHoldClick: hasActiveCall = " + hasActiveCall
+            + ", hasHoldingCall = " + hasHoldingCall);
+        boolean newHoldState;
+        boolean holdButtonEnabled;
+        if (hasActiveCall && !hasHoldingCall) {
+            // There's only one line in use, and that line is active.
+            PhoneUtils.switchHoldingAndActive(
+                mCM.getFirstActiveBgCall());  // Really means "hold" in this state
+            newHoldState = true;
+            holdButtonEnabled = true;
+        } else if (!hasActiveCall && hasHoldingCall) {
+            // There's only one line in use, and that line is on hold.
+            PhoneUtils.switchHoldingAndActive(
+                mCM.getFirstActiveBgCall());  // Really means "unhold" in this state
+            newHoldState = false;
+            holdButtonEnabled = true;
+        } else {
+            // Either zero or 2 lines are in use; "hold/unhold" is meaningless.
+            newHoldState = false;
+            holdButtonEnabled = false;
+        }
+        // No need to forcibly update the onscreen UI; just wait for the
+        // onPhoneStateChanged() callback.  (This seems to be responsive
+        // enough.)
+
+        // Also, any time we hold or unhold, force the DTMF dialpad to close.
+        closeDialpadInternal(true);  // do the "closing" animation
+    }
+
+    /**
+     * Toggles in-call audio between speaker and the built-in earpiece (or
+     * wired headset.)
+     */
+    public void toggleSpeaker() {
+        // TODO: Turning on the speaker seems to enable the mic
+        //   whether or not the "mute" feature is active!
+        // Not sure if this is an feature of the telephony API
+        //   that I need to handle specially, or just a bug.
+        boolean newSpeakerState = !PhoneUtils.isSpeakerOn(this);
+        log("toggleSpeaker(): newSpeakerState = " + newSpeakerState);
+
+        if (newSpeakerState && isBluetoothAvailable() && isBluetoothAudioConnected()) {
+            disconnectBluetoothAudio();
+        }
+        PhoneUtils.turnOnSpeaker(this, newSpeakerState, true);
+
+        // And update the InCallTouchUi widget (since the "audio mode"
+        // button might need to change its appearance based on the new
+        // audio state.)
+        updateInCallTouchUi();
+    }
+
+    /*
+     * onMuteClick is called only when there is a foreground call
+     */
+    private void onMuteClick() {
+        boolean newMuteState = !PhoneUtils.getMute();
+        log("onMuteClick(): newMuteState = " + newMuteState);
+        PhoneUtils.setMute(newMuteState);
+    }
+
+    /**
+     * Toggles whether or not to route in-call audio to the bluetooth
+     * headset, or do nothing (but log a warning) if no bluetooth device
+     * is actually connected.
+     *
+     * TODO: this method is currently unused, but the "audio mode" UI
+     * design is still in flux so let's keep it around for now.
+     * (But if we ultimately end up *not* providing any way for the UI to
+     * simply "toggle bluetooth", we can get rid of this method.)
+     */
+    public void toggleBluetooth() {
+        if (VDBG) log("toggleBluetooth()...");
+
+        if (isBluetoothAvailable()) {
+            // Toggle the bluetooth audio connection state:
+            if (isBluetoothAudioConnected()) {
+                disconnectBluetoothAudio();
+            } else {
+                // Manually turn the speaker phone off, instead of allowing the
+                // Bluetooth audio routing to handle it, since there's other
+                // important state-updating that needs to happen in the
+                // PhoneUtils.turnOnSpeaker() method.
+                // (Similarly, whenever the user turns *on* the speaker, we
+                // manually disconnect the active bluetooth headset;
+                // see toggleSpeaker() and/or switchInCallAudio().)
+                if (PhoneUtils.isSpeakerOn(this)) {
+                    PhoneUtils.turnOnSpeaker(this, false, true);
+                }
+
+                connectBluetoothAudio();
+            }
+        } else {
+            // Bluetooth isn't available; the onscreen UI shouldn't have
+            // allowed this request in the first place!
+            Log.w(LOG_TAG, "toggleBluetooth(): bluetooth is unavailable");
+        }
+
+        // And update the InCallTouchUi widget (since the "audio mode"
+        // button might need to change its appearance based on the new
+        // audio state.)
+        updateInCallTouchUi();
+    }
+
+    /**
+     * Switches the current routing of in-call audio between speaker,
+     * bluetooth, and the built-in earpiece (or wired headset.)
+     *
+     * This method is used on devices that provide a single 3-way switch
+     * for audio routing.  For devices that provide separate toggles for
+     * Speaker and Bluetooth, see toggleBluetooth() and toggleSpeaker().
+     *
+     * TODO: UI design is still in flux.  If we end up totally
+     * eliminating the concept of Speaker and Bluetooth toggle buttons,
+     * we can get rid of toggleBluetooth() and toggleSpeaker().
+     */
+    public void switchInCallAudio(InCallAudioMode newMode) {
+        log("switchInCallAudio: new mode = " + newMode);
+        switch (newMode) {
+            case SPEAKER:
+                if (!PhoneUtils.isSpeakerOn(this)) {
+                    // Switch away from Bluetooth, if it was active.
+                    if (isBluetoothAvailable() && isBluetoothAudioConnected()) {
+                        disconnectBluetoothAudio();
+                    }
+                    PhoneUtils.turnOnSpeaker(this, true, true);
+                }
+                break;
+
+            case BLUETOOTH:
+                // If already connected to BT, there's nothing to do here.
+                if (isBluetoothAvailable() && !isBluetoothAudioConnected()) {
+                    // Manually turn the speaker phone off, instead of allowing the
+                    // Bluetooth audio routing to handle it, since there's other
+                    // important state-updating that needs to happen in the
+                    // PhoneUtils.turnOnSpeaker() method.
+                    // (Similarly, whenever the user turns *on* the speaker, we
+                    // manually disconnect the active bluetooth headset;
+                    // see toggleSpeaker() and/or switchInCallAudio().)
+                    if (PhoneUtils.isSpeakerOn(this)) {
+                        PhoneUtils.turnOnSpeaker(this, false, true);
+                    }
+                    connectBluetoothAudio();
+                }
+                break;
+
+            case EARPIECE:
+                // Switch to either the handset earpiece, or the wired headset (if connected.)
+                // (Do this by simply making sure both speaker and bluetooth are off.)
+                if (isBluetoothAvailable() && isBluetoothAudioConnected()) {
+                    disconnectBluetoothAudio();
+                }
+                if (PhoneUtils.isSpeakerOn(this)) {
+                    PhoneUtils.turnOnSpeaker(this, false, true);
+                }
+                break;
+
+            default:
+                Log.wtf(LOG_TAG, "switchInCallAudio: unexpected mode " + newMode);
+                break;
+        }
+
+        // And finally, update the InCallTouchUi widget (since the "audio
+        // mode" button might need to change its appearance based on the
+        // new audio state.)
+        updateInCallTouchUi();
+    }
+
+    /**
+     * Handle a click on the "Open/Close dialpad" button.
+     *
+     * @see DTMFTwelveKeyDialer#openDialer(boolean)
+     * @see DTMFTwelveKeyDialer#closeDialer(boolean)
+     */
+    private void onOpenCloseDialpad() {
+        if (VDBG) log("onOpenCloseDialpad()...");
+        if (mDialer.isOpened()) {
+            closeDialpadInternal(true);  // do the "closing" animation
+        } else {
+            openDialpadInternal(true);  // do the "opening" animation
+        }
+        mApp.updateProximitySensorMode(mCM.getState());
+    }
+
+    /** Internal wrapper around {@link DTMFTwelveKeyDialer#openDialer(boolean)} */
+    private void openDialpadInternal(boolean animate) {
+        mDialer.openDialer(animate);
+        // And update the InCallUiState (so that we'll restore the dialpad
+        // to the correct state if we get paused/resumed).
+        mApp.inCallUiState.showDialpad = true;
+    }
+
+    // Internal wrapper around DTMFTwelveKeyDialer.closeDialer()
+    private void closeDialpadInternal(boolean animate) {
+        mDialer.closeDialer(animate);
+        // And update the InCallUiState (so that we'll restore the dialpad
+        // to the correct state if we get paused/resumed).
+        mApp.inCallUiState.showDialpad = false;
+    }
+
+    /**
+     * Handles button clicks from the InCallTouchUi widget.
+     */
+    /* package */ void handleOnscreenButtonClick(int id) {
+        if (DBG) log("handleOnscreenButtonClick(id " + id + ")...");
+
+        switch (id) {
+            // Actions while an incoming call is ringing:
+            case R.id.incomingCallAnswer:
+                internalAnswerCall();
+                break;
+            case R.id.incomingCallReject:
+                hangupRingingCall();
+                break;
+            case R.id.incomingCallRespondViaSms:
+                internalRespondViaSms();
+                break;
+
+            // The other regular (single-tap) buttons used while in-call:
+            case R.id.holdButton:
+                onHoldClick();
+                break;
+            case R.id.swapButton:
+                internalSwapCalls();
+                break;
+            case R.id.endButton:
+                internalHangup();
+                break;
+            case R.id.dialpadButton:
+                onOpenCloseDialpad();
+                break;
+            case R.id.muteButton:
+                onMuteClick();
+                break;
+            case R.id.addButton:
+                PhoneUtils.startNewCall(mCM);  // Fires off an ACTION_DIAL intent
+                break;
+            case R.id.mergeButton:
+            case R.id.cdmaMergeButton:
+                PhoneUtils.mergeCalls(mCM);
+                break;
+            case R.id.manageConferenceButton:
+                // Show the Manage Conference panel.
+                setInCallScreenMode(InCallScreenMode.MANAGE_CONFERENCE);
+                requestUpdateScreen();
+                break;
+
+            default:
+                Log.w(LOG_TAG, "handleOnscreenButtonClick: unexpected ID " + id);
+                break;
+        }
+
+        // Clicking any onscreen UI element counts as explicit "user activity".
+        mApp.pokeUserActivity();
+
+        // Just in case the user clicked a "stateful" UI element (like one
+        // of the toggle buttons), we force the in-call buttons to update,
+        // to make sure the user sees the *new* current state.
+        //
+        // Note that some in-call buttons will *not* immediately change the
+        // state of the UI, namely those that send a request to the telephony
+        // layer (like "Hold" or "End call".)  For those buttons, the
+        // updateInCallTouchUi() call here won't have any visible effect.
+        // Instead, the UI will be updated eventually when the next
+        // onPhoneStateChanged() event comes in and triggers an updateScreen()
+        // call.
+        //
+        // TODO: updateInCallTouchUi() is overkill here; it would be
+        // more efficient to update *only* the affected button(s).
+        // (But this isn't a big deal since updateInCallTouchUi() is pretty
+        // cheap anyway...)
+        updateInCallTouchUi();
+    }
+
+    /**
+     * Display a status or error indication to the user according to the
+     * specified InCallUiState.CallStatusCode value.
+     */
+    private void showStatusIndication(CallStatusCode status) {
+        switch (status) {
+            case SUCCESS:
+                // The InCallScreen does not need to display any kind of error indication,
+                // so we shouldn't have gotten here in the first place.
+                Log.wtf(LOG_TAG, "showStatusIndication: nothing to display");
+                break;
+
+            case POWER_OFF:
+                // Radio is explictly powered off, presumably because the
+                // device is in airplane mode.
+                //
+                // TODO: For now this UI is ultra-simple: we simply display
+                // a message telling the user to turn off airplane mode.
+                // But it might be nicer for the dialog to offer the option
+                // to turn the radio on right there (and automatically retry
+                // the call once network registration is complete.)
+                showGenericErrorDialog(R.string.incall_error_power_off,
+                                       true /* isStartupError */);
+                break;
+
+            case EMERGENCY_ONLY:
+                // Only emergency numbers are allowed, but we tried to dial
+                // a non-emergency number.
+                // (This state is currently unused; see comments above.)
+                showGenericErrorDialog(R.string.incall_error_emergency_only,
+                                       true /* isStartupError */);
+                break;
+
+            case OUT_OF_SERVICE:
+                // No network connection.
+                showGenericErrorDialog(R.string.incall_error_out_of_service,
+                                       true /* isStartupError */);
+                break;
+
+            case NO_PHONE_NUMBER_SUPPLIED:
+                // The supplied Intent didn't contain a valid phone number.
+                // (This is rare and should only ever happen with broken
+                // 3rd-party apps.)  For now just show a generic error.
+                showGenericErrorDialog(R.string.incall_error_no_phone_number_supplied,
+                                       true /* isStartupError */);
+                break;
+
+            case DIALED_MMI:
+                // Our initial phone number was actually an MMI sequence.
+                // There's no real "error" here, but we do bring up the
+                // a Toast (as requested of the New UI paradigm).
+                //
+                // In-call MMIs do not trigger the normal MMI Initiate
+                // Notifications, so we should notify the user here.
+                // Otherwise, the code in PhoneUtils.java should handle
+                // user notifications in the form of Toasts or Dialogs.
+                if (mCM.getState() == PhoneConstants.State.OFFHOOK) {
+                    Toast.makeText(mApp, R.string.incall_status_dialed_mmi, Toast.LENGTH_SHORT)
+                            .show();
+                }
+                break;
+
+            case CALL_FAILED:
+                // We couldn't successfully place the call; there was some
+                // failure in the telephony layer.
+                // TODO: Need UI spec for this failure case; for now just
+                // show a generic error.
+                showGenericErrorDialog(R.string.incall_error_call_failed,
+                                       true /* isStartupError */);
+                break;
+
+            case VOICEMAIL_NUMBER_MISSING:
+                // We tried to call a voicemail: URI but the device has no
+                // voicemail number configured.
+                handleMissingVoiceMailNumber();
+                break;
+
+            case CDMA_CALL_LOST:
+                // This status indicates that InCallScreen should display the
+                // CDMA-specific "call lost" dialog.  (If an outgoing call fails,
+                // and the CDMA "auto-retry" feature is enabled, *and* the retried
+                // call fails too, we display this specific dialog.)
+                //
+                // TODO: currently unused; see InCallUiState.needToShowCallLostDialog
+                break;
+
+            case EXITED_ECM:
+                // This status indicates that InCallScreen needs to display a
+                // warning that we're exiting ECM (emergency callback mode).
+                showExitingECMDialog();
+                break;
+
+            default:
+                throw new IllegalStateException(
+                    "showStatusIndication: unexpected status code: " + status);
+        }
+
+        // TODO: still need to make sure that pressing OK or BACK from
+        // *any* of the dialogs we launch here ends up calling
+        // inCallUiState.clearPendingCallStatusCode()
+        //  *and*
+        // make sure the Dialog handles both OK *and* cancel by calling
+        // endInCallScreenSession.  (See showGenericErrorDialog() for an
+        // example.)
+        //
+        // (showGenericErrorDialog() currently does this correctly,
+        // but handleMissingVoiceMailNumber() probably needs to be fixed too.)
+        //
+        // Also need to make sure that bailing out of any of these dialogs by
+        // pressing Home clears out the pending status code too.  (If you do
+        // that, neither the dialog's clickListener *or* cancelListener seems
+        // to run...)
+    }
+
+    /**
+     * Utility function to bring up a generic "error" dialog, and then bail
+     * out of the in-call UI when the user hits OK (or the BACK button.)
+     */
+    private void showGenericErrorDialog(int resid, boolean isStartupError) {
+        CharSequence msg = getResources().getText(resid);
+        if (DBG) log("showGenericErrorDialog('" + msg + "')...");
+
+        // create the clicklistener and cancel listener as needed.
+        DialogInterface.OnClickListener clickListener;
+        OnCancelListener cancelListener;
+        if (isStartupError) {
+            clickListener = new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    bailOutAfterErrorDialog();
+                }};
+            cancelListener = new OnCancelListener() {
+                public void onCancel(DialogInterface dialog) {
+                    bailOutAfterErrorDialog();
+                }};
+        } else {
+            clickListener = new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    delayedCleanupAfterDisconnect();
+                }};
+            cancelListener = new OnCancelListener() {
+                public void onCancel(DialogInterface dialog) {
+                    delayedCleanupAfterDisconnect();
+                }};
+        }
+
+        // TODO: Consider adding a setTitle() call here (with some generic
+        // "failure" title?)
+        mGenericErrorDialog = new AlertDialog.Builder(this)
+                .setMessage(msg)
+                .setPositiveButton(R.string.ok, clickListener)
+                .setOnCancelListener(cancelListener)
+                .create();
+
+        // When the dialog is up, completely hide the in-call UI
+        // underneath (which is in a partially-constructed state).
+        mGenericErrorDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+        mGenericErrorDialog.show();
+    }
+
+    private void showCallLostDialog() {
+        if (DBG) log("showCallLostDialog()...");
+
+        // Don't need to show the dialog if InCallScreen isn't in the forgeround
+        if (!mIsForegroundActivity) {
+            if (DBG) log("showCallLostDialog: not the foreground Activity! Bailing out...");
+            return;
+        }
+
+        // Don't need to show the dialog again, if there is one already.
+        if (mCallLostDialog != null) {
+            if (DBG) log("showCallLostDialog: There is a mCallLostDialog already.");
+            return;
+        }
+
+        mCallLostDialog = new AlertDialog.Builder(this)
+                .setMessage(R.string.call_lost)
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .create();
+        mCallLostDialog.show();
+    }
+
+    /**
+     * Displays the "Exiting ECM" warning dialog.
+     *
+     * Background: If the phone is currently in ECM (Emergency callback
+     * mode) and we dial a non-emergency number, that automatically
+     * *cancels* ECM.  (That behavior comes from CdmaCallTracker.dial().)
+     * When that happens, we need to warn the user that they're no longer
+     * in ECM (bug 4207607.)
+     *
+     * So bring up a dialog explaining what's happening.  There's nothing
+     * for the user to do, by the way; we're simply providing an
+     * indication that they're exiting ECM.  We *could* use a Toast for
+     * this, but toasts are pretty easy to miss, so instead use a dialog
+     * with a single "OK" button.
+     *
+     * TODO: it's ugly that the code here has to make assumptions about
+     *   the behavior of the telephony layer (namely that dialing a
+     *   non-emergency number while in ECM causes us to exit ECM.)
+     *
+     *   Instead, this warning dialog should really be triggered by our
+     *   handler for the
+     *   TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED intent in
+     *   PhoneApp.java.  But that won't work until that intent also
+     *   includes a *reason* why we're exiting ECM, since we need to
+     *   display this dialog when exiting ECM because of an outgoing call,
+     *   but NOT if we're exiting ECM because the user manually turned it
+     *   off via the EmergencyCallbackModeExitDialog.
+     *
+     *   Or, it might be simpler to just have outgoing non-emergency calls
+     *   *not* cancel ECM.  That way the UI wouldn't have to do anything
+     *   special here.
+     */
+    private void showExitingECMDialog() {
+        Log.i(LOG_TAG, "showExitingECMDialog()...");
+
+        if (mExitingECMDialog != null) {
+            if (DBG) log("- DISMISSING mExitingECMDialog.");
+            mExitingECMDialog.dismiss();  // safe even if already dismissed
+            mExitingECMDialog = null;
+        }
+
+        // When the user dismisses the "Exiting ECM" dialog, we clear out
+        // the pending call status code field (since we're done with this
+        // dialog), but do *not* bail out of the InCallScreen.
+
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+        DialogInterface.OnClickListener clickListener = new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    inCallUiState.clearPendingCallStatusCode();
+                }};
+        OnCancelListener cancelListener = new OnCancelListener() {
+                public void onCancel(DialogInterface dialog) {
+                    inCallUiState.clearPendingCallStatusCode();
+                }};
+
+        // Ultra-simple AlertDialog with only an OK button:
+        mExitingECMDialog = new AlertDialog.Builder(this)
+                .setMessage(R.string.progress_dialog_exiting_ecm)
+                .setPositiveButton(R.string.ok, clickListener)
+                .setOnCancelListener(cancelListener)
+                .create();
+        mExitingECMDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+        mExitingECMDialog.show();
+    }
+
+    private void bailOutAfterErrorDialog() {
+        if (mGenericErrorDialog != null) {
+            if (DBG) log("bailOutAfterErrorDialog: DISMISSING mGenericErrorDialog.");
+            mGenericErrorDialog.dismiss();
+            mGenericErrorDialog = null;
+        }
+        if (DBG) log("bailOutAfterErrorDialog(): end InCallScreen session...");
+
+        // Now that the user has dismissed the error dialog (presumably by
+        // either hitting the OK button or pressing Back, we can now reset
+        // the pending call status code field.
+        //
+        // (Note that the pending call status is NOT cleared simply
+        // by the InCallScreen being paused or finished, since the resulting
+        // dialog is supposed to persist across orientation changes or if the
+        // screen turns off.)
+        //
+        // See the "Error / diagnostic indications" section of
+        // InCallUiState.java for more detailed info about the
+        // pending call status code field.
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+        inCallUiState.clearPendingCallStatusCode();
+
+        // Force the InCallScreen to truly finish(), rather than just
+        // moving it to the back of the activity stack (which is what
+        // our finish() method usually does.)
+        // This is necessary to avoid an obscure scenario where the
+        // InCallScreen can get stuck in an inconsistent state, somehow
+        // causing a *subsequent* outgoing call to fail (bug 4172599).
+        endInCallScreenSession(true /* force a real finish() call */);
+    }
+
+    /**
+     * Dismisses (and nulls out) all persistent Dialogs managed
+     * by the InCallScreen.  Useful if (a) we're about to bring up
+     * a dialog and want to pre-empt any currently visible dialogs,
+     * or (b) as a cleanup step when the Activity is going away.
+     */
+    private void dismissAllDialogs() {
+        if (DBG) log("dismissAllDialogs()...");
+
+        // Note it's safe to dismiss() a dialog that's already dismissed.
+        // (Even if the AlertDialog object(s) below are still around, it's
+        // possible that the actual dialog(s) may have already been
+        // dismissed by the user.)
+
+        if (mMissingVoicemailDialog != null) {
+            if (VDBG) log("- DISMISSING mMissingVoicemailDialog.");
+            mMissingVoicemailDialog.dismiss();
+            mMissingVoicemailDialog = null;
+        }
+        if (mMmiStartedDialog != null) {
+            if (VDBG) log("- DISMISSING mMmiStartedDialog.");
+            mMmiStartedDialog.dismiss();
+            mMmiStartedDialog = null;
+        }
+        if (mGenericErrorDialog != null) {
+            if (VDBG) log("- DISMISSING mGenericErrorDialog.");
+            mGenericErrorDialog.dismiss();
+            mGenericErrorDialog = null;
+        }
+        if (mSuppServiceFailureDialog != null) {
+            if (VDBG) log("- DISMISSING mSuppServiceFailureDialog.");
+            mSuppServiceFailureDialog.dismiss();
+            mSuppServiceFailureDialog = null;
+        }
+        if (mWaitPromptDialog != null) {
+            if (VDBG) log("- DISMISSING mWaitPromptDialog.");
+            mWaitPromptDialog.dismiss();
+            mWaitPromptDialog = null;
+        }
+        if (mWildPromptDialog != null) {
+            if (VDBG) log("- DISMISSING mWildPromptDialog.");
+            mWildPromptDialog.dismiss();
+            mWildPromptDialog = null;
+        }
+        if (mCallLostDialog != null) {
+            if (VDBG) log("- DISMISSING mCallLostDialog.");
+            mCallLostDialog.dismiss();
+            mCallLostDialog = null;
+        }
+        if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL
+                || mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)
+                && mApp.otaUtils != null) {
+            mApp.otaUtils.dismissAllOtaDialogs();
+        }
+        if (mPausePromptDialog != null) {
+            if (DBG) log("- DISMISSING mPausePromptDialog.");
+            mPausePromptDialog.dismiss();
+            mPausePromptDialog = null;
+        }
+        if (mExitingECMDialog != null) {
+            if (DBG) log("- DISMISSING mExitingECMDialog.");
+            mExitingECMDialog.dismiss();
+            mExitingECMDialog = null;
+        }
+    }
+
+    /**
+     * Updates the state of the onscreen "progress indication" used in
+     * some (relatively rare) scenarios where we need to wait for
+     * something to happen before enabling the in-call UI.
+     *
+     * If necessary, this method will cause a ProgressDialog (i.e. a
+     * spinning wait cursor) to be drawn *on top of* whatever the current
+     * state of the in-call UI is.
+     *
+     * @see InCallUiState.ProgressIndicationType
+     */
+    private void updateProgressIndication() {
+        // If an incoming call is ringing, that takes priority over any
+        // possible value of inCallUiState.progressIndication.
+        if (mCM.hasActiveRingingCall()) {
+            dismissProgressIndication();
+            return;
+        }
+
+        // Otherwise, put up a progress indication if indicated by the
+        // inCallUiState.progressIndication field.
+        final InCallUiState inCallUiState = mApp.inCallUiState;
+        switch (inCallUiState.getProgressIndication()) {
+            case NONE:
+                // No progress indication necessary, so make sure it's dismissed.
+                dismissProgressIndication();
+                break;
+
+            case TURNING_ON_RADIO:
+                showProgressIndication(
+                    R.string.emergency_enable_radio_dialog_title,
+                    R.string.emergency_enable_radio_dialog_message);
+                break;
+
+            case RETRYING:
+                showProgressIndication(
+                    R.string.emergency_enable_radio_dialog_title,
+                    R.string.emergency_enable_radio_dialog_retry);
+                break;
+
+            default:
+                Log.wtf(LOG_TAG, "updateProgressIndication: unexpected value: "
+                        + inCallUiState.getProgressIndication());
+                dismissProgressIndication();
+                break;
+        }
+    }
+
+    /**
+     * Show an onscreen "progress indication" with the specified title and message.
+     */
+    private void showProgressIndication(int titleResId, int messageResId) {
+        if (DBG) log("showProgressIndication(message " + messageResId + ")...");
+
+        // TODO: make this be a no-op if the progress indication is
+        // already visible with the exact same title and message.
+
+        dismissProgressIndication();  // Clean up any prior progress indication
+        mProgressDialog = new ProgressDialog(this);
+        mProgressDialog.setTitle(getText(titleResId));
+        mProgressDialog.setMessage(getText(messageResId));
+        mProgressDialog.setIndeterminate(true);
+        mProgressDialog.setCancelable(false);
+        mProgressDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
+        mProgressDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+        mProgressDialog.show();
+    }
+
+    /**
+     * Dismiss the onscreen "progress indication" (if present).
+     */
+    private void dismissProgressIndication() {
+        if (DBG) log("dismissProgressIndication()...");
+        if (mProgressDialog != null) {
+            mProgressDialog.dismiss();  // safe even if already dismissed
+            mProgressDialog = null;
+        }
+    }
+
+
+    //
+    // Helper functions for answering incoming calls.
+    //
+
+    /**
+     * Answer a ringing call.  This method does nothing if there's no
+     * ringing or waiting call.
+     */
+    private void internalAnswerCall() {
+        if (DBG) log("internalAnswerCall()...");
+        // if (DBG) PhoneUtils.dumpCallState(mPhone);
+
+        final boolean hasRingingCall = mCM.hasActiveRingingCall();
+
+        if (hasRingingCall) {
+            Phone phone = mCM.getRingingPhone();
+            Call ringing = mCM.getFirstActiveRingingCall();
+            int phoneType = phone.getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                if (DBG) log("internalAnswerCall: answering (CDMA)...");
+                if (mCM.hasActiveFgCall()
+                        && mCM.getFgPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_SIP) {
+                    // The incoming call is CDMA call and the ongoing
+                    // call is a SIP call. The CDMA network does not
+                    // support holding an active call, so there's no
+                    // way to swap between a CDMA call and a SIP call.
+                    // So for now, we just don't allow a CDMA call and
+                    // a SIP call to be active at the same time.We'll
+                    // "answer incoming, end ongoing" in this case.
+                    if (DBG) log("internalAnswerCall: answer "
+                            + "CDMA incoming and end SIP ongoing");
+                    PhoneUtils.answerAndEndActive(mCM, ringing);
+                } else {
+                    PhoneUtils.answerCall(ringing);
+                }
+            } else if (phoneType == PhoneConstants.PHONE_TYPE_SIP) {
+                if (DBG) log("internalAnswerCall: answering (SIP)...");
+                if (mCM.hasActiveFgCall()
+                        && mCM.getFgPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+                    // Similar to the PHONE_TYPE_CDMA handling.
+                    // The incoming call is SIP call and the ongoing
+                    // call is a CDMA call. The CDMA network does not
+                    // support holding an active call, so there's no
+                    // way to swap between a CDMA call and a SIP call.
+                    // So for now, we just don't allow a CDMA call and
+                    // a SIP call to be active at the same time.We'll
+                    // "answer incoming, end ongoing" in this case.
+                    if (DBG) log("internalAnswerCall: answer "
+                            + "SIP incoming and end CDMA ongoing");
+                    PhoneUtils.answerAndEndActive(mCM, ringing);
+                } else {
+                    PhoneUtils.answerCall(ringing);
+                }
+            } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                if (DBG) log("internalAnswerCall: answering (GSM)...");
+                // GSM: this is usually just a wrapper around
+                // PhoneUtils.answerCall(), *but* we also need to do
+                // something special for the "both lines in use" case.
+
+                final boolean hasActiveCall = mCM.hasActiveFgCall();
+                final boolean hasHoldingCall = mCM.hasActiveBgCall();
+
+                if (hasActiveCall && hasHoldingCall) {
+                    if (DBG) log("internalAnswerCall: answering (both lines in use!)...");
+                    // The relatively rare case where both lines are
+                    // already in use.  We "answer incoming, end ongoing"
+                    // in this case, according to the current UI spec.
+                    PhoneUtils.answerAndEndActive(mCM, ringing);
+
+                    // Alternatively, we could use
+                    // PhoneUtils.answerAndEndHolding(mPhone);
+                    // here to end the on-hold call instead.
+                } else {
+                    if (DBG) log("internalAnswerCall: answering...");
+                    PhoneUtils.answerCall(ringing);  // Automatically holds the current active call,
+                                                    // if there is one
+                }
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+
+            // Call origin is valid only with outgoing calls. Disable it on incoming calls.
+            mApp.setLatestActiveCallOrigin(null);
+        }
+    }
+
+    /**
+     * Hang up the ringing call (aka "Don't answer").
+     */
+    /* package */ void hangupRingingCall() {
+        if (DBG) log("hangupRingingCall()...");
+        if (VDBG) PhoneUtils.dumpCallManager();
+        // In the rare case when multiple calls are ringing, the UI policy
+        // it to always act on the first ringing call.
+        PhoneUtils.hangupRingingCall(mCM.getFirstActiveRingingCall());
+    }
+
+    /**
+     * Silence the ringer (if an incoming call is ringing.)
+     */
+    private void internalSilenceRinger() {
+        if (DBG) log("internalSilenceRinger()...");
+        final CallNotifier notifier = mApp.notifier;
+        if (notifier.isRinging()) {
+            // ringer is actually playing, so silence it.
+            notifier.silenceRinger();
+        }
+    }
+
+    /**
+     * Respond via SMS to the ringing call.
+     * @see RespondViaSmsManager
+     */
+    private void internalRespondViaSms() {
+        log("internalRespondViaSms()...");
+        if (VDBG) PhoneUtils.dumpCallManager();
+
+        // In the rare case when multiple calls are ringing, the UI policy
+        // it to always act on the first ringing call.
+        Call ringingCall = mCM.getFirstActiveRingingCall();
+
+        mRespondViaSmsManager.showRespondViaSmsPopup(ringingCall);
+
+        // Silence the ringer, since it would be distracting while you're trying
+        // to pick a response.  (Note that we'll restart the ringer if you bail
+        // out of the popup, though; see RespondViaSmsCancelListener.)
+        internalSilenceRinger();
+    }
+
+    /**
+     * Hang up the current active call.
+     */
+    private void internalHangup() {
+        PhoneConstants.State state = mCM.getState();
+        log("internalHangup()...  phone state = " + state);
+
+        // Regardless of the phone state, issue a hangup request.
+        // (If the phone is already idle, this call will presumably have no
+        // effect (but also see the note below.))
+        PhoneUtils.hangup(mCM);
+
+        // If the user just hung up the only active call, we'll eventually exit
+        // the in-call UI after the following sequence:
+        // - When the hangup() succeeds, we'll get a DISCONNECT event from
+        //   the telephony layer (see onDisconnect()).
+        // - We immediately switch to the "Call ended" state (see the "delayed
+        //   bailout" code path in onDisconnect()) and also post a delayed
+        //   DELAYED_CLEANUP_AFTER_DISCONNECT message.
+        // - When the DELAYED_CLEANUP_AFTER_DISCONNECT message comes in (see
+        //   delayedCleanupAfterDisconnect()) we do some final cleanup, and exit
+        //   this activity unless the phone is still in use (i.e. if there's
+        //   another call, or something else going on like an active MMI
+        //   sequence.)
+
+        if (state == PhoneConstants.State.IDLE) {
+            // The user asked us to hang up, but the phone was (already) idle!
+            Log.w(LOG_TAG, "internalHangup(): phone is already IDLE!");
+
+            // This is rare, but can happen in a few cases:
+            // (a) If the user quickly double-taps the "End" button.  In this case
+            //   we'll see that 2nd press event during the brief "Call ended"
+            //   state (where the phone is IDLE), or possibly even before the
+            //   radio has been able to respond to the initial hangup request.
+            // (b) More rarely, this can happen if the user presses "End" at the
+            //   exact moment that the call ends on its own (like because of the
+            //   other person hanging up.)
+            // (c) Finally, this could also happen if we somehow get stuck here on
+            //   the InCallScreen with the phone truly idle, perhaps due to a
+            //   bug where we somehow *didn't* exit when the phone became idle
+            //   in the first place.
+
+            // TODO: as a "safety valve" for case (c), consider immediately
+            // bailing out of the in-call UI right here.  (The user can always
+            // bail out by pressing Home, of course, but they'll probably try
+            // pressing End first.)
+            //
+            //    Log.i(LOG_TAG, "internalHangup(): phone is already IDLE!  Bailing out...");
+            //    endInCallScreenSession();
+        }
+    }
+
+    /**
+     * InCallScreen-specific wrapper around PhoneUtils.switchHoldingAndActive().
+     */
+    private void internalSwapCalls() {
+        if (DBG) log("internalSwapCalls()...");
+
+        // Any time we swap calls, force the DTMF dialpad to close.
+        // (We want the regular in-call UI to be visible right now, so the
+        // user can clearly see which call is now in the foreground.)
+        closeDialpadInternal(true);  // do the "closing" animation
+
+        // Also, clear out the "history" of DTMF digits you typed, to make
+        // sure you don't see digits from call #1 while call #2 is active.
+        // (Yes, this does mean that swapping calls twice will cause you
+        // to lose any previous digits from the current call; see the TODO
+        // comment on DTMFTwelvKeyDialer.clearDigits() for more info.)
+        mDialer.clearDigits();
+
+        // Swap the fg and bg calls.
+        // In the future we may provides some way for user to choose among
+        // multiple background calls, for now, always act on the first background calll.
+        PhoneUtils.switchHoldingAndActive(mCM.getFirstActiveBgCall());
+
+        // If we have a valid BluetoothPhoneService then since CDMA network or
+        // Telephony FW does not send us information on which caller got swapped
+        // we need to update the second call active state in BluetoothPhoneService internally
+        if (mCM.getBgPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            IBluetoothHeadsetPhone btPhone = mApp.getBluetoothPhoneService();
+            if (btPhone != null) {
+                try {
+                    btPhone.cdmaSwapSecondCallState();
+                } catch (RemoteException e) {
+                    Log.e(LOG_TAG, Log.getStackTraceString(new Throwable()));
+                }
+            }
+        }
+
+    }
+
+    /**
+     * Sets the current high-level "mode" of the in-call UI.
+     *
+     * NOTE: if newMode is CALL_ENDED, the caller is responsible for
+     * posting a delayed DELAYED_CLEANUP_AFTER_DISCONNECT message, to make
+     * sure the "call ended" state goes away after a couple of seconds.
+     *
+     * Note this method does NOT refresh of the onscreen UI; the caller is
+     * responsible for calling updateScreen() or requestUpdateScreen() if
+     * necessary.
+     */
+    private void setInCallScreenMode(InCallScreenMode newMode) {
+        if (DBG) log("setInCallScreenMode: " + newMode);
+        mApp.inCallUiState.inCallScreenMode = newMode;
+
+        switch (newMode) {
+            case MANAGE_CONFERENCE:
+                if (!PhoneUtils.isConferenceCall(mCM.getActiveFgCall())) {
+                    Log.w(LOG_TAG, "MANAGE_CONFERENCE: no active conference call!");
+                    // Hide the Manage Conference panel, return to NORMAL mode.
+                    setInCallScreenMode(InCallScreenMode.NORMAL);
+                    return;
+                }
+                List<Connection> connections = mCM.getFgCallConnections();
+                // There almost certainly will be > 1 connection,
+                // since isConferenceCall() just returned true.
+                if ((connections == null) || (connections.size() <= 1)) {
+                    Log.w(LOG_TAG,
+                          "MANAGE_CONFERENCE: Bogus TRUE from isConferenceCall(); connections = "
+                          + connections);
+                    // Hide the Manage Conference panel, return to NORMAL mode.
+                    setInCallScreenMode(InCallScreenMode.NORMAL);
+                    return;
+                }
+
+                // TODO: Don't do this here. The call to
+                // initManageConferencePanel() should instead happen
+                // automagically in ManageConferenceUtils the very first
+                // time you call updateManageConferencePanel() or
+                // setPanelVisible(true).
+                mManageConferenceUtils.initManageConferencePanel();  // if necessary
+
+                mManageConferenceUtils.updateManageConferencePanel(connections);
+
+                // The "Manage conference" UI takes up the full main frame,
+                // replacing the CallCard PopupWindow.
+                mManageConferenceUtils.setPanelVisible(true);
+
+                // Start the chronometer.
+                // TODO: Similarly, we shouldn't expose startConferenceTime()
+                // and stopConferenceTime(); the ManageConferenceUtils
+                // class ought to manage the conferenceTime widget itself
+                // based on setPanelVisible() calls.
+
+                // Note: there is active Fg call since we are in conference call
+                long callDuration =
+                        mCM.getActiveFgCall().getEarliestConnection().getDurationMillis();
+                mManageConferenceUtils.startConferenceTime(
+                        SystemClock.elapsedRealtime() - callDuration);
+
+                // No need to close the dialer here, since the Manage
+                // Conference UI will just cover it up anyway.
+
+                break;
+
+            case CALL_ENDED:
+            case NORMAL:
+                mManageConferenceUtils.setPanelVisible(false);
+                mManageConferenceUtils.stopConferenceTime();
+                break;
+
+            case OTA_NORMAL:
+                mApp.otaUtils.setCdmaOtaInCallScreenUiState(
+                        OtaUtils.CdmaOtaInCallScreenUiState.State.NORMAL);
+                break;
+
+            case OTA_ENDED:
+                mApp.otaUtils.setCdmaOtaInCallScreenUiState(
+                        OtaUtils.CdmaOtaInCallScreenUiState.State.ENDED);
+                break;
+
+            case UNDEFINED:
+                // Set our Activities intent to ACTION_UNDEFINED so
+                // that if we get resumed after we've completed a call
+                // the next call will not cause checkIsOtaCall to
+                // return true.
+                //
+                // TODO(OTASP): update these comments
+                //
+                // With the framework as of October 2009 the sequence below
+                // causes the framework to call onResume, onPause, onNewIntent,
+                // onResume. If we don't call setIntent below then when the
+                // first onResume calls checkIsOtaCall via checkOtaspStateOnResume it will
+                // return true and the Activity will be confused.
+                //
+                //  1) Power up Phone A
+                //  2) Place *22899 call and activate Phone A
+                //  3) Press the power key on Phone A to turn off the display
+                //  4) Call Phone A from Phone B answering Phone A
+                //  5) The screen will be blank (Should be normal InCallScreen)
+                //  6) Hang up the Phone B
+                //  7) Phone A displays the activation screen.
+                //
+                // Step 3 is the critical step to cause the onResume, onPause
+                // onNewIntent, onResume sequence. If step 3 is skipped the
+                // sequence will be onNewIntent, onResume and all will be well.
+                setIntent(new Intent(ACTION_UNDEFINED));
+
+                // Cleanup Ota Screen if necessary and set the panel
+                // to VISIBLE.
+                if (mCM.getState() != PhoneConstants.State.OFFHOOK) {
+                    if (mApp.otaUtils != null) {
+                        mApp.otaUtils.cleanOtaScreen(true);
+                    }
+                } else {
+                    log("WARNING: Setting mode to UNDEFINED but phone is OFFHOOK,"
+                            + " skip cleanOtaScreen.");
+                }
+                break;
+        }
+    }
+
+    /**
+     * @return true if the "Manage conference" UI is currently visible.
+     */
+    /* package */ boolean isManageConferenceMode() {
+        return (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.MANAGE_CONFERENCE);
+    }
+
+    /**
+     * Checks if the "Manage conference" UI needs to be updated.
+     * If the state of the current conference call has changed
+     * since our previous call to updateManageConferencePanel()),
+     * do a fresh update.  Also, if the current call is no longer a
+     * conference call at all, bail out of the "Manage conference" UI and
+     * return to InCallScreenMode.NORMAL mode.
+     */
+    private void updateManageConferencePanelIfNecessary() {
+        if (VDBG) log("updateManageConferencePanelIfNecessary: " + mCM.getActiveFgCall() + "...");
+
+        List<Connection> connections = mCM.getFgCallConnections();
+        if (connections == null) {
+            if (VDBG) log("==> no connections on foreground call!");
+            // Hide the Manage Conference panel, return to NORMAL mode.
+            setInCallScreenMode(InCallScreenMode.NORMAL);
+            SyncWithPhoneStateStatus status = syncWithPhoneState();
+            if (status != SyncWithPhoneStateStatus.SUCCESS) {
+                Log.w(LOG_TAG, "- syncWithPhoneState failed! status = " + status);
+                // We shouldn't even be in the in-call UI in the first
+                // place, so bail out:
+                if (DBG) log("updateManageConferencePanelIfNecessary: endInCallScreenSession... 1");
+                endInCallScreenSession();
+                return;
+            }
+            return;
+        }
+
+        int numConnections = connections.size();
+        if (numConnections <= 1) {
+            if (VDBG) log("==> foreground call no longer a conference!");
+            // Hide the Manage Conference panel, return to NORMAL mode.
+            setInCallScreenMode(InCallScreenMode.NORMAL);
+            SyncWithPhoneStateStatus status = syncWithPhoneState();
+            if (status != SyncWithPhoneStateStatus.SUCCESS) {
+                Log.w(LOG_TAG, "- syncWithPhoneState failed! status = " + status);
+                // We shouldn't even be in the in-call UI in the first
+                // place, so bail out:
+                if (DBG) log("updateManageConferencePanelIfNecessary: endInCallScreenSession... 2");
+                endInCallScreenSession();
+                return;
+            }
+            return;
+        }
+
+        // TODO: the test to see if numConnections has changed can go in
+        // updateManageConferencePanel(), rather than here.
+        if (numConnections != mManageConferenceUtils.getNumCallersInConference()) {
+            if (VDBG) log("==> Conference size has changed; need to rebuild UI!");
+            mManageConferenceUtils.updateManageConferencePanel(connections);
+        }
+    }
+
+    /**
+     * Updates {@link #mCallCard}'s visibility state per DTMF dialpad visibility. They
+     * cannot be shown simultaneously and thus we should reflect DTMF dialpad visibility into
+     * another.
+     *
+     * Note: During OTA calls or users' managing conference calls, we should *not* call this method
+     * but manually manage both visibility.
+     *
+     * @see #updateScreen()
+     */
+    private void updateCallCardVisibilityPerDialerState(boolean animate) {
+        // We need to hide the CallCard while the dialpad is visible.
+        if (isDialerOpened()) {
+            if (VDBG) {
+                log("- updateCallCardVisibilityPerDialerState(animate="
+                        + animate + "): dialpad open, hide mCallCard...");
+            }
+            if (animate) {
+                AnimationUtils.Fade.hide(mCallCard, View.GONE);
+            } else {
+                mCallCard.setVisibility(View.GONE);
+            }
+        } else {
+            // Dialpad is dismissed; bring back the CallCard if it's supposed to be visible.
+            if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.NORMAL)
+                || (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.CALL_ENDED)) {
+                if (VDBG) {
+                    log("- updateCallCardVisibilityPerDialerState(animate="
+                            + animate + "): dialpad dismissed, show mCallCard...");
+                }
+                if (animate) {
+                    AnimationUtils.Fade.show(mCallCard);
+                } else {
+                    mCallCard.setVisibility(View.VISIBLE);
+                }
+            }
+        }
+    }
+
+    /**
+     * @see DTMFTwelveKeyDialer#isOpened()
+     */
+    /* package */ boolean isDialerOpened() {
+        return (mDialer != null && mDialer.isOpened());
+    }
+
+    /**
+     * Called any time the DTMF dialpad is opened.
+     * @see DTMFTwelveKeyDialer#openDialer(boolean)
+     */
+    /* package */ void onDialerOpen(boolean animate) {
+        if (DBG) log("onDialerOpen()...");
+
+        // Update the in-call touch UI.
+        updateInCallTouchUi();
+
+        // Update CallCard UI, which depends on the dialpad.
+        updateCallCardVisibilityPerDialerState(animate);
+
+        // This counts as explicit "user activity".
+        mApp.pokeUserActivity();
+
+        //If on OTA Call, hide OTA Screen
+        // TODO: This may not be necessary, now that the dialpad is
+        // always visible in OTA mode.
+        if  ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL
+                || mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)
+                && mApp.otaUtils != null) {
+            mApp.otaUtils.hideOtaScreen();
+        }
+    }
+
+    /**
+     * Called any time the DTMF dialpad is closed.
+     * @see DTMFTwelveKeyDialer#closeDialer(boolean)
+     */
+    /* package */ void onDialerClose(boolean animate) {
+        if (DBG) log("onDialerClose()...");
+
+        // OTA-specific cleanup upon closing the dialpad.
+        if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+            || (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)
+            || ((mApp.cdmaOtaScreenState != null)
+                && (mApp.cdmaOtaScreenState.otaScreenState ==
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION))) {
+            if (mApp.otaUtils != null) {
+                mApp.otaUtils.otaShowProperScreen();
+            }
+        }
+
+        // Update the in-call touch UI.
+        updateInCallTouchUi();
+
+        // Update CallCard UI, which depends on the dialpad.
+        updateCallCardVisibilityPerDialerState(animate);
+
+        // This counts as explicit "user activity".
+        mApp.pokeUserActivity();
+    }
+
+    /**
+     * Determines when we can dial DTMF tones.
+     */
+    /* package */ boolean okToDialDTMFTones() {
+        final boolean hasRingingCall = mCM.hasActiveRingingCall();
+        final Call.State fgCallState = mCM.getActiveFgCallState();
+
+        // We're allowed to send DTMF tones when there's an ACTIVE
+        // foreground call, and not when an incoming call is ringing
+        // (since DTMF tones are useless in that state), or if the
+        // Manage Conference UI is visible (since the tab interferes
+        // with the "Back to call" button.)
+
+        // We can also dial while in ALERTING state because there are
+        // some connections that never update to an ACTIVE state (no
+        // indication from the network).
+        boolean canDial =
+            (fgCallState == Call.State.ACTIVE || fgCallState == Call.State.ALERTING)
+            && !hasRingingCall
+            && (mApp.inCallUiState.inCallScreenMode != InCallScreenMode.MANAGE_CONFERENCE);
+
+        if (VDBG) log ("[okToDialDTMFTones] foreground state: " + fgCallState +
+                ", ringing state: " + hasRingingCall +
+                ", call screen mode: " + mApp.inCallUiState.inCallScreenMode +
+                ", result: " + canDial);
+
+        return canDial;
+    }
+
+    /**
+     * @return true if the in-call DTMF dialpad should be available to the
+     *      user, given the current state of the phone and the in-call UI.
+     *      (This is used to control the enabledness of the "Show
+     *      dialpad" onscreen button; see InCallControlState.dialpadEnabled.)
+     */
+    /* package */ boolean okToShowDialpad() {
+        // Very similar to okToDialDTMFTones(), but allow DIALING here.
+        final Call.State fgCallState = mCM.getActiveFgCallState();
+        return okToDialDTMFTones() || (fgCallState == Call.State.DIALING);
+    }
+
+    /**
+     * Initializes the in-call touch UI on devices that need it.
+     */
+    private void initInCallTouchUi() {
+        if (DBG) log("initInCallTouchUi()...");
+        // TODO: we currently use the InCallTouchUi widget in at least
+        // some states on ALL platforms.  But if some devices ultimately
+        // end up not using *any* onscreen touch UI, we should make sure
+        // to not even inflate the InCallTouchUi widget on those devices.
+        mInCallTouchUi = (InCallTouchUi) findViewById(R.id.inCallTouchUi);
+        mInCallTouchUi.setInCallScreenInstance(this);
+
+        // RespondViaSmsManager implements the "Respond via SMS"
+        // feature that's triggered from the incoming call widget.
+        mRespondViaSmsManager = new RespondViaSmsManager();
+        mRespondViaSmsManager.setInCallScreenInstance(this);
+    }
+
+    /**
+     * Updates the state of the in-call touch UI.
+     */
+    private void updateInCallTouchUi() {
+        if (mInCallTouchUi != null) {
+            mInCallTouchUi.updateState(mCM);
+        }
+    }
+
+    /**
+     * @return the InCallTouchUi widget
+     */
+    /* package */ InCallTouchUi getInCallTouchUi() {
+        return mInCallTouchUi;
+    }
+
+    /**
+     * Posts a handler message telling the InCallScreen to refresh the
+     * onscreen in-call UI.
+     *
+     * This is just a wrapper around updateScreen(), for use by the
+     * rest of the phone app or from a thread other than the UI thread.
+     *
+     * updateScreen() is a no-op if the InCallScreen is not the foreground
+     * activity, so it's safe to call this whether or not the InCallScreen
+     * is currently visible.
+     */
+    /* package */ void requestUpdateScreen() {
+        if (DBG) log("requestUpdateScreen()...");
+        mHandler.removeMessages(REQUEST_UPDATE_SCREEN);
+        mHandler.sendEmptyMessage(REQUEST_UPDATE_SCREEN);
+    }
+
+    /**
+     * @return true if we're in restricted / emergency dialing only mode.
+     */
+    public boolean isPhoneStateRestricted() {
+        // TODO:  This needs to work IN TANDEM with the KeyGuardViewMediator Code.
+        // Right now, it looks like the mInputRestricted flag is INTERNAL to the
+        // KeyGuardViewMediator and SPECIFICALLY set to be FALSE while the emergency
+        // phone call is being made, to allow for input into the InCallScreen.
+        // Having the InCallScreen judge the state of the device from this flag
+        // becomes meaningless since it is always false for us.  The mediator should
+        // have an additional API to let this app know that it should be restricted.
+        int serviceState = mCM.getServiceState();
+        return ((serviceState == ServiceState.STATE_EMERGENCY_ONLY) ||
+                (serviceState == ServiceState.STATE_OUT_OF_SERVICE) ||
+                (mApp.getKeyguardManager().inKeyguardRestrictedInputMode()));
+    }
+
+
+    //
+    // Bluetooth helper methods.
+    //
+    // - BluetoothAdapter is the Bluetooth system service.  If
+    //   getDefaultAdapter() returns null
+    //   then the device is not BT capable.  Use BluetoothDevice.isEnabled()
+    //   to see if BT is enabled on the device.
+    //
+    // - BluetoothHeadset is the API for the control connection to a
+    //   Bluetooth Headset.  This lets you completely connect/disconnect a
+    //   headset (which we don't do from the Phone UI!) but also lets you
+    //   get the address of the currently active headset and see whether
+    //   it's currently connected.
+
+    /**
+     * @return true if the Bluetooth on/off switch in the UI should be
+     *         available to the user (i.e. if the device is BT-capable
+     *         and a headset is connected.)
+     */
+    /* package */ boolean isBluetoothAvailable() {
+        if (VDBG) log("isBluetoothAvailable()...");
+
+        // There's no need to ask the Bluetooth system service if BT is enabled:
+        //
+        //    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        //    if ((adapter == null) || !adapter.isEnabled()) {
+        //        if (DBG) log("  ==> FALSE (BT not enabled)");
+        //        return false;
+        //    }
+        //    if (DBG) log("  - BT enabled!  device name " + adapter.getName()
+        //                 + ", address " + adapter.getAddress());
+        //
+        // ...since we already have a BluetoothHeadset instance.  We can just
+        // call isConnected() on that, and assume it'll be false if BT isn't
+        // enabled at all.
+
+        // Check if there's a connected headset, using the BluetoothHeadset API.
+        boolean isConnected = false;
+        if (mBluetoothHeadset != null) {
+            List<BluetoothDevice> deviceList = mBluetoothHeadset.getConnectedDevices();
+
+            if (deviceList.size() > 0) {
+                BluetoothDevice device = deviceList.get(0);
+                isConnected = true;
+
+                if (VDBG) log("  - headset state = " +
+                              mBluetoothHeadset.getConnectionState(device));
+                if (VDBG) log("  - headset address: " + device);
+                if (VDBG) log("  - isConnected: " + isConnected);
+            }
+        }
+
+        if (VDBG) log("  ==> " + isConnected);
+        return isConnected;
+    }
+
+    /**
+     * @return true if a BT Headset is available, and its audio is currently connected.
+     */
+    /* package */ boolean isBluetoothAudioConnected() {
+        if (mBluetoothHeadset == null) {
+            if (VDBG) log("isBluetoothAudioConnected: ==> FALSE (null mBluetoothHeadset)");
+            return false;
+        }
+        List<BluetoothDevice> deviceList = mBluetoothHeadset.getConnectedDevices();
+
+        if (deviceList.isEmpty()) {
+            return false;
+        }
+        BluetoothDevice device = deviceList.get(0);
+        boolean isAudioOn = mBluetoothHeadset.isAudioConnected(device);
+        if (VDBG) log("isBluetoothAudioConnected: ==> isAudioOn = " + isAudioOn);
+        return isAudioOn;
+    }
+
+    /**
+     * Helper method used to control the onscreen "Bluetooth" indication;
+     * see InCallControlState.bluetoothIndicatorOn.
+     *
+     * @return true if a BT device is available and its audio is currently connected,
+     *              <b>or</b> if we issued a BluetoothHeadset.connectAudio()
+     *              call within the last 5 seconds (which presumably means
+     *              that the BT audio connection is currently being set
+     *              up, and will be connected soon.)
+     */
+    /* package */ boolean isBluetoothAudioConnectedOrPending() {
+        if (isBluetoothAudioConnected()) {
+            if (VDBG) log("isBluetoothAudioConnectedOrPending: ==> TRUE (really connected)");
+            return true;
+        }
+
+        // If we issued a connectAudio() call "recently enough", even
+        // if BT isn't actually connected yet, let's still pretend BT is
+        // on.  This makes the onscreen indication more responsive.
+        if (mBluetoothConnectionPending) {
+            long timeSinceRequest =
+                    SystemClock.elapsedRealtime() - mBluetoothConnectionRequestTime;
+            if (timeSinceRequest < 5000 /* 5 seconds */) {
+                if (VDBG) log("isBluetoothAudioConnectedOrPending: ==> TRUE (requested "
+                             + timeSinceRequest + " msec ago)");
+                return true;
+            } else {
+                if (VDBG) log("isBluetoothAudioConnectedOrPending: ==> FALSE (request too old: "
+                             + timeSinceRequest + " msec ago)");
+                mBluetoothConnectionPending = false;
+                return false;
+            }
+        }
+
+        if (VDBG) log("isBluetoothAudioConnectedOrPending: ==> FALSE");
+        return false;
+    }
+
+    /**
+     * Posts a message to our handler saying to update the onscreen UI
+     * based on a bluetooth headset state change.
+     */
+    /* package */ void requestUpdateBluetoothIndication() {
+        if (VDBG) log("requestUpdateBluetoothIndication()...");
+        // No need to look at the current state here; any UI elements that
+        // care about the bluetooth state (i.e. the CallCard) get
+        // the necessary state directly from PhoneApp.showBluetoothIndication().
+        mHandler.removeMessages(REQUEST_UPDATE_BLUETOOTH_INDICATION);
+        mHandler.sendEmptyMessage(REQUEST_UPDATE_BLUETOOTH_INDICATION);
+    }
+
+    private void dumpBluetoothState() {
+        log("============== dumpBluetoothState() =============");
+        log("= isBluetoothAvailable: " + isBluetoothAvailable());
+        log("= isBluetoothAudioConnected: " + isBluetoothAudioConnected());
+        log("= isBluetoothAudioConnectedOrPending: " + isBluetoothAudioConnectedOrPending());
+        log("= PhoneApp.showBluetoothIndication: "
+            + mApp.showBluetoothIndication());
+        log("=");
+        if (mBluetoothAdapter != null) {
+            if (mBluetoothHeadset != null) {
+                List<BluetoothDevice> deviceList = mBluetoothHeadset.getConnectedDevices();
+
+                if (deviceList.size() > 0) {
+                    BluetoothDevice device = deviceList.get(0);
+                    log("= BluetoothHeadset.getCurrentDevice: " + device);
+                    log("= BluetoothHeadset.State: "
+                        + mBluetoothHeadset.getConnectionState(device));
+                    log("= BluetoothHeadset audio connected: " +
+                        mBluetoothHeadset.isAudioConnected(device));
+                }
+            } else {
+                log("= mBluetoothHeadset is null");
+            }
+        } else {
+            log("= mBluetoothAdapter is null; device is not BT capable");
+        }
+    }
+
+    /* package */ void connectBluetoothAudio() {
+        if (VDBG) log("connectBluetoothAudio()...");
+        if (mBluetoothHeadset != null) {
+            // TODO(BT) check return
+            mBluetoothHeadset.connectAudio();
+        }
+
+        // Watch out: The bluetooth connection doesn't happen instantly;
+        // the connectAudio() call returns instantly but does its real
+        // work in another thread.  The mBluetoothConnectionPending flag
+        // is just a little trickery to ensure that the onscreen UI updates
+        // instantly. (See isBluetoothAudioConnectedOrPending() above.)
+        mBluetoothConnectionPending = true;
+        mBluetoothConnectionRequestTime = SystemClock.elapsedRealtime();
+    }
+
+    /* package */ void disconnectBluetoothAudio() {
+        if (VDBG) log("disconnectBluetoothAudio()...");
+        if (mBluetoothHeadset != null) {
+            mBluetoothHeadset.disconnectAudio();
+        }
+        mBluetoothConnectionPending = false;
+    }
+
+    /**
+     * Posts a handler message telling the InCallScreen to close
+     * the OTA failure notice after the specified delay.
+     * @see OtaUtils.otaShowProgramFailureNotice
+     */
+    /* package */ void requestCloseOtaFailureNotice(long timeout) {
+        if (DBG) log("requestCloseOtaFailureNotice() with timeout: " + timeout);
+        mHandler.sendEmptyMessageDelayed(REQUEST_CLOSE_OTA_FAILURE_NOTICE, timeout);
+
+        // TODO: we probably ought to call removeMessages() for this
+        // message code in either onPause or onResume, just to be 100%
+        // sure that the message we just posted has no way to affect a
+        // *different* call if the user quickly backs out and restarts.
+        // (This is also true for requestCloseSpcErrorNotice() below, and
+        // probably anywhere else we use mHandler.sendEmptyMessageDelayed().)
+    }
+
+    /**
+     * Posts a handler message telling the InCallScreen to close
+     * the SPC error notice after the specified delay.
+     * @see OtaUtils.otaShowSpcErrorNotice
+     */
+    /* package */ void requestCloseSpcErrorNotice(long timeout) {
+        if (DBG) log("requestCloseSpcErrorNotice() with timeout: " + timeout);
+        mHandler.sendEmptyMessageDelayed(REQUEST_CLOSE_SPC_ERROR_NOTICE, timeout);
+    }
+
+    public boolean isOtaCallInActiveState() {
+        if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+                || ((mApp.cdmaOtaScreenState != null)
+                    && (mApp.cdmaOtaScreenState.otaScreenState ==
+                        CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION))) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Handle OTA Call End scenario when display becomes dark during OTA Call
+     * and InCallScreen is in pause mode.  CallNotifier will listen for call
+     * end indication and call this api to handle OTA Call end scenario
+     */
+    public void handleOtaCallEnd() {
+        if (DBG) log("handleOtaCallEnd entering");
+        if (((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+                || ((mApp.cdmaOtaScreenState != null)
+                && (mApp.cdmaOtaScreenState.otaScreenState !=
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED)))
+                && ((mApp.cdmaOtaProvisionData != null)
+                && (!mApp.cdmaOtaProvisionData.inOtaSpcState))) {
+            if (DBG) log("handleOtaCallEnd - Set OTA Call End stater");
+            setInCallScreenMode(InCallScreenMode.OTA_ENDED);
+            updateScreen();
+        }
+    }
+
+    public boolean isOtaCallInEndState() {
+        return (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED);
+    }
+
+
+    /**
+     * Upon resuming the in-call UI, check to see if an OTASP call is in
+     * progress, and if so enable the special OTASP-specific UI.
+     *
+     * TODO: have a simple single flag in InCallUiState for this rather than
+     * needing to know about all those mApp.cdma*State objects.
+     *
+     * @return true if any OTASP-related UI is active
+     */
+    private boolean checkOtaspStateOnResume() {
+        // If there's no OtaUtils instance, that means we haven't even tried
+        // to start an OTASP call (yet), so there's definitely nothing to do here.
+        if (mApp.otaUtils == null) {
+            if (DBG) log("checkOtaspStateOnResume: no OtaUtils instance; nothing to do.");
+            return false;
+        }
+
+        if ((mApp.cdmaOtaScreenState == null) || (mApp.cdmaOtaProvisionData == null)) {
+            // Uh oh -- something wrong with our internal OTASP state.
+            // (Since this is an OTASP-capable device, these objects
+            // *should* have already been created by PhoneApp.onCreate().)
+            throw new IllegalStateException("checkOtaspStateOnResume: "
+                                            + "app.cdmaOta* objects(s) not initialized");
+        }
+
+        // The PhoneApp.cdmaOtaInCallScreenUiState instance is the
+        // authoritative source saying whether or not the in-call UI should
+        // show its OTASP-related UI.
+
+        OtaUtils.CdmaOtaInCallScreenUiState.State cdmaOtaInCallScreenState =
+                mApp.otaUtils.getCdmaOtaInCallScreenUiState();
+        // These states are:
+        // - UNDEFINED: no OTASP-related UI is visible
+        // - NORMAL: OTASP call in progress, so show in-progress OTASP UI
+        // - ENDED: OTASP call just ended, so show success/failure indication
+
+        boolean otaspUiActive =
+                (cdmaOtaInCallScreenState == OtaUtils.CdmaOtaInCallScreenUiState.State.NORMAL)
+                || (cdmaOtaInCallScreenState == OtaUtils.CdmaOtaInCallScreenUiState.State.ENDED);
+
+        if (otaspUiActive) {
+            // Make sure the OtaUtils instance knows about the InCallScreen's
+            // OTASP-related UI widgets.
+            //
+            // (This call has no effect if the UI widgets have already been set up.
+            // It only really matters  the very first time that the InCallScreen instance
+            // is onResume()d after starting an OTASP call.)
+            mApp.otaUtils.updateUiWidgets(this, mInCallTouchUi, mCallCard);
+
+            // Also update the InCallScreenMode based on the cdmaOtaInCallScreenState.
+
+            if (cdmaOtaInCallScreenState == OtaUtils.CdmaOtaInCallScreenUiState.State.NORMAL) {
+                if (DBG) log("checkOtaspStateOnResume - in OTA Normal mode");
+                setInCallScreenMode(InCallScreenMode.OTA_NORMAL);
+            } else if (cdmaOtaInCallScreenState ==
+                       OtaUtils.CdmaOtaInCallScreenUiState.State.ENDED) {
+                if (DBG) log("checkOtaspStateOnResume - in OTA END mode");
+                setInCallScreenMode(InCallScreenMode.OTA_ENDED);
+            }
+
+            // TODO(OTASP): we might also need to go into OTA_ENDED mode
+            // in one extra case:
+            //
+            // else if (mApp.cdmaOtaScreenState.otaScreenState ==
+            //            CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG) {
+            //     if (DBG) log("checkOtaspStateOnResume - set OTA END Mode");
+            //     setInCallScreenMode(InCallScreenMode.OTA_ENDED);
+            // }
+
+        } else {
+            // OTASP is not active; reset to regular in-call UI.
+
+            if (DBG) log("checkOtaspStateOnResume - Set OTA NORMAL Mode");
+            setInCallScreenMode(InCallScreenMode.OTA_NORMAL);
+
+            if (mApp.otaUtils != null) {
+                mApp.otaUtils.cleanOtaScreen(false);
+            }
+        }
+
+        // TODO(OTASP):
+        // The original check from checkIsOtaCall() when handling ACTION_MAIN was this:
+        //
+        //        [ . . . ]
+        //        else if (action.equals(intent.ACTION_MAIN)) {
+        //            if (DBG) log("checkIsOtaCall action ACTION_MAIN");
+        //            boolean isRingingCall = mCM.hasActiveRingingCall();
+        //            if (isRingingCall) {
+        //                if (DBG) log("checkIsOtaCall isRingingCall: " + isRingingCall);
+        //                return false;
+        //            } else if ((mApp.cdmaOtaInCallScreenUiState.state
+        //                            == CdmaOtaInCallScreenUiState.State.NORMAL)
+        //                    || (mApp.cdmaOtaInCallScreenUiState.state
+        //                            == CdmaOtaInCallScreenUiState.State.ENDED)) {
+        //                if (DBG) log("action ACTION_MAIN, OTA call already in progress");
+        //                isOtaCall = true;
+        //            } else {
+        //                if (mApp.cdmaOtaScreenState.otaScreenState !=
+        //                        CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED) {
+        //                    if (DBG) log("checkIsOtaCall action ACTION_MAIN, "
+        //                                 + "OTA call in progress with UNDEFINED");
+        //                    isOtaCall = true;
+        //                }
+        //            }
+        //        }
+        //
+        // Also, in internalResolveIntent() we used to do this:
+        //
+        //        if ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_NORMAL)
+        //                || (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.OTA_ENDED)) {
+        //            // If in OTA Call, update the OTA UI
+        //            updateScreen();
+        //            return;
+        //        }
+        //
+        // We still need more cleanup to simplify the mApp.cdma*State objects.
+
+        return otaspUiActive;
+    }
+
+    /**
+     * Updates and returns the InCallControlState instance.
+     */
+    public InCallControlState getUpdatedInCallControlState() {
+        if (VDBG) log("getUpdatedInCallControlState()...");
+        mInCallControlState.update();
+        return mInCallControlState;
+    }
+
+    public void resetInCallScreenMode() {
+        if (DBG) log("resetInCallScreenMode: setting mode to UNDEFINED...");
+        setInCallScreenMode(InCallScreenMode.UNDEFINED);
+    }
+
+    /**
+     * Updates the onscreen hint displayed while the user is dragging one
+     * of the handles of the RotarySelector widget used for incoming
+     * calls.
+     *
+     * @param hintTextResId resource ID of the hint text to display,
+     *        or 0 if no hint should be visible.
+     * @param hintColorResId resource ID for the color of the hint text
+     */
+    /* package */ void updateIncomingCallWidgetHint(int hintTextResId, int hintColorResId) {
+        if (VDBG) log("updateIncomingCallWidgetHint(" + hintTextResId + ")...");
+        if (mCallCard != null) {
+            mCallCard.setIncomingCallWidgetHint(hintTextResId, hintColorResId);
+            mCallCard.updateState(mCM);
+            // TODO: if hintTextResId == 0, consider NOT clearing the onscreen
+            // hint right away, but instead post a delayed handler message to
+            // keep it onscreen for an extra second or two.  (This might make
+            // the hint more helpful if the user quickly taps one of the
+            // handles without dragging at all...)
+            // (Or, maybe this should happen completely within the RotarySelector
+            // widget, since the widget itself probably wants to keep the colored
+            // arrow visible for some extra time also...)
+        }
+    }
+
+
+    /**
+     * Used when we need to update buttons outside InCallTouchUi's updateInCallControls() along
+     * with that method being called. CallCard may call this too because it doesn't have
+     * enough information to update buttons inside itself (more specifically, the class cannot
+     * obtain mInCallControllState without some side effect. See also
+     * {@link #getUpdatedInCallControlState()}. We probably don't want a method like
+     * getRawCallControlState() which returns raw intance with no side effect just for this
+     * corner case scenario)
+     *
+     * TODO: need better design for buttons outside InCallTouchUi.
+     */
+    /* package */ void updateButtonStateOutsideInCallTouchUi() {
+        if (mCallCard != null) {
+            mCallCard.setSecondaryCallClickable(mInCallControlState.canSwap);
+        }
+    }
+
+    @Override
+    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        super.dispatchPopulateAccessibilityEvent(event);
+        mCallCard.dispatchPopulateAccessibilityEvent(event);
+        return true;
+    }
+
+    /**
+     * Manually handle configuration changes.
+     *
+     * Originally android:configChanges was set to "orientation|keyboardHidden|uiMode"
+     * in order "to make sure the system doesn't destroy and re-create us due to the
+     * above config changes". However it is currently set to "keyboardHidden" since
+     * the system needs to handle rotation when inserted into a compatible cardock.
+     * Even without explicitly handling orientation and uiMode, the app still runs
+     * and does not drop the call when rotated.
+     *
+     */
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (DBG) log("onConfigurationChanged: newConfig = " + newConfig);
+
+        // Note: At the time this function is called, our Resources object
+        // will have already been updated to return resource values matching
+        // the new configuration.
+
+        // Watch out: we *can* still get destroyed and recreated if a
+        // configuration change occurs that is *not* listed in the
+        // android:configChanges attribute.  TODO: Any others we need to list?
+
+        super.onConfigurationChanged(newConfig);
+
+        // Nothing else to do here, since (currently) the InCallScreen looks
+        // exactly the same regardless of configuration.
+        // (Specifically, we'll never be in landscape mode because we set
+        // android:screenOrientation="portrait" in our manifest, and we don't
+        // change our UI at all based on newConfig.keyboardHidden or
+        // newConfig.uiMode.)
+
+        // TODO: we do eventually want to handle at least some config changes, such as:
+        boolean isKeyboardOpen = (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO);
+        if (DBG) log("  - isKeyboardOpen = " + isKeyboardOpen);
+        boolean isLandscape = (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE);
+        if (DBG) log("  - isLandscape = " + isLandscape);
+        if (DBG) log("  - uiMode = " + newConfig.uiMode);
+        // See bug 2089513.
+    }
+
+    /**
+     * Handles an incoming RING event from the telephony layer.
+     */
+    private void onIncomingRing() {
+        if (DBG) log("onIncomingRing()...");
+        // IFF we're visible, forward this event to the InCallTouchUi
+        // instance (which uses this event to drive the animation of the
+        // incoming-call UI.)
+        if (mIsForegroundActivity && (mInCallTouchUi != null)) {
+            mInCallTouchUi.onIncomingRing();
+        }
+    }
+
+    /**
+     * Handles a "new ringing connection" event from the telephony layer.
+     *
+     * This event comes in right at the start of the incoming-call sequence,
+     * exactly once per incoming call.
+     *
+     * Watch out: this won't be called if InCallScreen isn't ready yet,
+     * which typically happens for the first incoming phone call (even before
+     * the possible first outgoing call).
+     */
+    private void onNewRingingConnection() {
+        if (DBG) log("onNewRingingConnection()...");
+
+        // We use this event to reset any incoming-call-related UI elements
+        // that might have been left in an inconsistent state after a prior
+        // incoming call.
+        // (Note we do this whether or not we're the foreground activity,
+        // since this event comes in *before* we actually get launched to
+        // display the incoming-call UI.)
+
+        // If there's a "Respond via SMS" popup still around since the
+        // last time we were the foreground activity, make sure it's not
+        // still active(!) since that would interfere with *this* incoming
+        // call.
+        // (Note that we also do this same check in onResume().  But we
+        // need it here too, to make sure the popup gets reset in the case
+        // where a call-waiting call comes in while the InCallScreen is
+        // already in the foreground.)
+        mRespondViaSmsManager.dismissPopup();  // safe even if already dismissed
+    }
+
+    /**
+     * Enables or disables the status bar "window shade" based on the current situation.
+     */
+    private void updateExpandedViewState() {
+        if (mIsForegroundActivity) {
+            if (mApp.proximitySensorModeEnabled()) {
+                // We should not enable notification's expanded view on RINGING state.
+                mApp.notificationMgr.statusBarHelper.enableExpandedView(
+                        mCM.getState() != PhoneConstants.State.RINGING);
+            } else {
+                // If proximity sensor is unavailable on the device, disable it to avoid false
+                // touches toward notifications.
+                mApp.notificationMgr.statusBarHelper.enableExpandedView(false);
+            }
+        } else {
+            mApp.notificationMgr.statusBarHelper.enableExpandedView(true);
+        }
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    /**
+     * Requests to remove provider info frame after having
+     * {@link #PROVIDER_INFO_TIMEOUT}) msec delay.
+     */
+    /* package */ void requestRemoveProviderInfoWithDelay() {
+        // Remove any zombie messages and then send a message to
+        // self to remove the provider info after some time.
+        mHandler.removeMessages(EVENT_HIDE_PROVIDER_INFO);
+        Message msg = Message.obtain(mHandler, EVENT_HIDE_PROVIDER_INFO);
+        mHandler.sendMessageDelayed(msg, PROVIDER_INFO_TIMEOUT);
+        if (DBG) {
+            log("Requested to remove provider info after " + PROVIDER_INFO_TIMEOUT + " msec.");
+        }
+    }
+
+    /**
+     * Indicates whether or not the QuickResponseDialog is currently showing in the call screen
+     */
+    public boolean isQuickResponseDialogShowing() {
+        return mRespondViaSmsManager != null && mRespondViaSmsManager.isShowingPopup();
+    }
+}
diff --git a/src/com/android/phone/InCallScreenShowActivation.java b/src/com/android/phone/InCallScreenShowActivation.java
new file mode 100644
index 0000000..221b915
--- /dev/null
+++ b/src/com/android/phone/InCallScreenShowActivation.java
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+/**
+ * Invisible activity that handles the com.android.phone.PERFORM_CDMA_PROVISIONING intent.
+ * This activity is protected by the android.permission.PERFORM_CDMA_PROVISIONING permission.
+ *
+ * We handle the PERFORM_CDMA_PROVISIONING action by launching an OTASP
+ * call via one of the OtaUtils helper methods: startInteractiveOtasp() on
+ * regular phones, or startNonInteractiveOtasp() on data-only devices.
+ *
+ * TODO: The class name InCallScreenShowActivation is misleading, since
+ * this activity is totally unrelated to the InCallScreen (which
+ * implements the in-call UI.)  Let's eventually rename this to something
+ * like CdmaProvisioningLauncher or CdmaProvisioningHandler...
+ */
+public class InCallScreenShowActivation extends Activity {
+    private static final String LOG_TAG = "InCallScreenShowActivation";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        Intent intent = getIntent();
+        if (DBG) Log.d(LOG_TAG, "onCreate: intent = " + intent);
+        Bundle extras = intent.getExtras();
+        if (DBG && (extras != null)) {
+            Log.d(LOG_TAG, "      - has extras: size = " + extras.size()); // forces an unparcel()
+            Log.d(LOG_TAG, "      - extras = " + extras);
+        }
+
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        Phone phone = app.getPhone();
+        if (!TelephonyCapabilities.supportsOtasp(phone)) {
+            Log.w(LOG_TAG, "CDMA Provisioning not supported on this device");
+            setResult(RESULT_CANCELED);
+            finish();
+            return;
+        }
+
+        if (intent.getAction().equals(OtaUtils.ACTION_PERFORM_CDMA_PROVISIONING)) {
+
+            // On voice-capable devices, we perform CDMA provisioning in
+            // "interactive" mode by directly launching the InCallScreen.
+            boolean interactiveMode = PhoneGlobals.sVoiceCapable;
+            Log.d(LOG_TAG, "ACTION_PERFORM_CDMA_PROVISIONING (interactiveMode = "
+                  + interactiveMode + ")...");
+
+            // Testing: this intent extra allows test apps manually
+            // enable/disable "interactive mode", regardless of whether
+            // the current device is voice-capable.  This is allowed only
+            // in userdebug or eng builds.
+            if (intent.hasExtra(OtaUtils.EXTRA_OVERRIDE_INTERACTIVE_MODE)
+                    && (SystemProperties.getInt("ro.debuggable", 0) == 1)) {
+                interactiveMode =
+                        intent.getBooleanExtra(OtaUtils.EXTRA_OVERRIDE_INTERACTIVE_MODE, false);
+                Log.d(LOG_TAG, "===> MANUALLY OVERRIDING interactiveMode to " + interactiveMode);
+            }
+
+            // We allow the caller to pass a PendingIntent (as the
+            // EXTRA_NONINTERACTIVE_OTASP_RESULT_PENDING_INTENT extra)
+            // which we'll later use to notify them when the OTASP call
+            // fails or succeeds.
+            //
+            // Stash that away here, and we'll fire it off later in
+            // OtaUtils.sendOtaspResult().
+            app.cdmaOtaScreenState.otaspResultCodePendingIntent =
+                        (PendingIntent) intent.getParcelableExtra(
+                                OtaUtils.EXTRA_OTASP_RESULT_CODE_PENDING_INTENT);
+
+            if (interactiveMode) {
+                // On voice-capable devices, launch an OTASP call and arrange
+                // for the in-call UI to come up.  (The InCallScreen will
+                // notice that an OTASP call is active, and display the
+                // special OTASP UI instead of the usual in-call controls.)
+
+                if (DBG) Log.d(LOG_TAG, "==> Starting interactive CDMA provisioning...");
+                OtaUtils.startInteractiveOtasp(this);
+
+                // The result we set here is actually irrelevant, since the
+                // InCallScreen's "interactive" OTASP sequence never actually
+                // finish()es; it ends by directly launching the Home
+                // activity.  So our caller won't actually ever get an
+                // onActivityResult() call in this case.
+                setResult(OtaUtils.RESULT_INTERACTIVE_OTASP_STARTED);
+            } else {
+                // On data-only devices, manually launch the OTASP call
+                // *without* displaying any UI.  (Our caller, presumably
+                // SetupWizardActivity, is responsible for displaying some
+                // sort of progress UI.)
+
+                if (DBG) Log.d(LOG_TAG, "==> Starting non-interactive CDMA provisioning...");
+                int callStatus = OtaUtils.startNonInteractiveOtasp(this);
+
+                if (callStatus == PhoneUtils.CALL_STATUS_DIALED) {
+                    if (DBG) Log.d(LOG_TAG, "  ==> successful result from startNonInteractiveOtasp(): "
+                          + callStatus);
+                    setResult(OtaUtils.RESULT_NONINTERACTIVE_OTASP_STARTED);
+                } else {
+                    Log.w(LOG_TAG, "Failure code from startNonInteractiveOtasp(): " + callStatus);
+                    setResult(OtaUtils.RESULT_NONINTERACTIVE_OTASP_FAILED);
+                }
+            }
+        } else {
+            Log.e(LOG_TAG, "Unexpected intent action: " + intent);
+            setResult(RESULT_CANCELED);
+        }
+
+        finish();
+    }
+}
diff --git a/src/com/android/phone/InCallTouchUi.java b/src/com/android/phone/InCallTouchUi.java
new file mode 100644
index 0000000..a68d066
--- /dev/null
+++ b/src/com/android/phone/InCallTouchUi.java
@@ -0,0 +1,1382 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.content.Context;
+import android.graphics.drawable.LayerDrawable;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewPropertyAnimator;
+import android.view.ViewStub;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.Animation.AnimationListener;
+import android.widget.CompoundButton;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.PopupMenu;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.widget.multiwaveview.GlowPadView;
+import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener;
+import com.android.phone.InCallUiState.InCallScreenMode;
+
+/**
+ * In-call onscreen touch UI elements, used on some platforms.
+ *
+ * This widget is a fullscreen overlay, drawn on top of the
+ * non-touch-sensitive parts of the in-call UI (i.e. the call card).
+ */
+public class InCallTouchUi extends FrameLayout
+        implements View.OnClickListener, View.OnLongClickListener, OnTriggerListener,
+        PopupMenu.OnMenuItemClickListener, PopupMenu.OnDismissListener {
+    private static final String LOG_TAG = "InCallTouchUi";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    // Incoming call widget targets
+    private static final int ANSWER_CALL_ID = 0;  // drag right
+    private static final int SEND_SMS_ID = 1;  // drag up
+    private static final int DECLINE_CALL_ID = 2;  // drag left
+
+    /**
+     * Reference to the InCallScreen activity that owns us.  This may be
+     * null if we haven't been initialized yet *or* after the InCallScreen
+     * activity has been destroyed.
+     */
+    private InCallScreen mInCallScreen;
+
+    // Phone app instance
+    private PhoneGlobals mApp;
+
+    // UI containers / elements
+    private GlowPadView mIncomingCallWidget;  // UI used for an incoming call
+    private boolean mIncomingCallWidgetIsFadingOut;
+    private boolean mIncomingCallWidgetShouldBeReset = true;
+
+    /** UI elements while on a regular call (bottom buttons, DTMF dialpad) */
+    private View mInCallControls;
+    private boolean mShowInCallControlsDuringHidingAnimation;
+
+    //
+    private ImageButton mAddButton;
+    private ImageButton mMergeButton;
+    private ImageButton mEndButton;
+    private CompoundButton mDialpadButton;
+    private CompoundButton mMuteButton;
+    private CompoundButton mAudioButton;
+    private CompoundButton mHoldButton;
+    private ImageButton mSwapButton;
+    private View mHoldSwapSpacer;
+    private View mVideoSpacer;
+    private ImageButton mVideoButton;
+
+    // "Extra button row"
+    private ViewStub mExtraButtonRow;
+    private ViewGroup mCdmaMergeButton;
+    private ViewGroup mManageConferenceButton;
+    private ImageButton mManageConferenceButtonImage;
+
+    // "Audio mode" PopupMenu
+    private PopupMenu mAudioModePopup;
+    private boolean mAudioModePopupVisible = false;
+
+    // Time of the most recent "answer" or "reject" action (see updateState())
+    private long mLastIncomingCallActionTime;  // in SystemClock.uptimeMillis() time base
+
+    // Parameters for the GlowPadView "ping" animation; see triggerPing().
+    private static final boolean ENABLE_PING_ON_RING_EVENTS = false;
+    private static final boolean ENABLE_PING_AUTO_REPEAT = true;
+    private static final long PING_AUTO_REPEAT_DELAY_MSEC = 1200;
+
+    private static final int INCOMING_CALL_WIDGET_PING = 101;
+    private Handler mHandler = new Handler() {
+            @Override
+            public void handleMessage(Message msg) {
+                // If the InCallScreen activity isn't around any more,
+                // there's no point doing anything here.
+                if (mInCallScreen == null) return;
+
+                switch (msg.what) {
+                    case INCOMING_CALL_WIDGET_PING:
+                        if (DBG) log("INCOMING_CALL_WIDGET_PING...");
+                        triggerPing();
+                        break;
+                    default:
+                        Log.wtf(LOG_TAG, "mHandler: unexpected message: " + msg);
+                        break;
+                }
+            }
+        };
+
+    public InCallTouchUi(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        if (DBG) log("InCallTouchUi constructor...");
+        if (DBG) log("- this = " + this);
+        if (DBG) log("- context " + context + ", attrs " + attrs);
+        mApp = PhoneGlobals.getInstance();
+    }
+
+    void setInCallScreenInstance(InCallScreen inCallScreen) {
+        mInCallScreen = inCallScreen;
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        if (DBG) log("InCallTouchUi onFinishInflate(this = " + this + ")...");
+
+        // Look up the various UI elements.
+
+        // "Drag-to-answer" widget for incoming calls.
+        mIncomingCallWidget = (GlowPadView) findViewById(R.id.incomingCallWidget);
+        mIncomingCallWidget.setOnTriggerListener(this);
+
+        // Container for the UI elements shown while on a regular call.
+        mInCallControls = findViewById(R.id.inCallControls);
+
+        // Regular (single-tap) buttons, where we listen for click events:
+        // Main cluster of buttons:
+        mAddButton = (ImageButton) mInCallControls.findViewById(R.id.addButton);
+        mAddButton.setOnClickListener(this);
+        mAddButton.setOnLongClickListener(this);
+        mMergeButton = (ImageButton) mInCallControls.findViewById(R.id.mergeButton);
+        mMergeButton.setOnClickListener(this);
+        mMergeButton.setOnLongClickListener(this);
+        mEndButton = (ImageButton) mInCallControls.findViewById(R.id.endButton);
+        mEndButton.setOnClickListener(this);
+        mDialpadButton = (CompoundButton) mInCallControls.findViewById(R.id.dialpadButton);
+        mDialpadButton.setOnClickListener(this);
+        mDialpadButton.setOnLongClickListener(this);
+        mMuteButton = (CompoundButton) mInCallControls.findViewById(R.id.muteButton);
+        mMuteButton.setOnClickListener(this);
+        mMuteButton.setOnLongClickListener(this);
+        mAudioButton = (CompoundButton) mInCallControls.findViewById(R.id.audioButton);
+        mAudioButton.setOnClickListener(this);
+        mAudioButton.setOnLongClickListener(this);
+        mHoldButton = (CompoundButton) mInCallControls.findViewById(R.id.holdButton);
+        mHoldButton.setOnClickListener(this);
+        mHoldButton.setOnLongClickListener(this);
+        mSwapButton = (ImageButton) mInCallControls.findViewById(R.id.swapButton);
+        mSwapButton.setOnClickListener(this);
+        mSwapButton.setOnLongClickListener(this);
+        mHoldSwapSpacer = mInCallControls.findViewById(R.id.holdSwapSpacer);
+        mVideoButton = (ImageButton) mInCallControls.findViewById(R.id.videoCallButton);
+        mVideoButton.setOnClickListener(this);
+        mVideoButton.setOnLongClickListener(this);
+        mVideoSpacer = mInCallControls.findViewById(R.id.videoCallSpacer);
+
+        // TODO: Back when these buttons had text labels, we changed
+        // the label of mSwapButton for CDMA as follows:
+        //
+        //      if (PhoneApp.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+        //          // In CDMA we use a generalized text - "Manage call", as behavior on selecting
+        //          // this option depends entirely on what the current call state is.
+        //          mSwapButtonLabel.setText(R.string.onscreenManageCallsText);
+        //      } else {
+        //          mSwapButtonLabel.setText(R.string.onscreenSwapCallsText);
+        //      }
+        //
+        // If this is still needed, consider having a special icon for this
+        // button in CDMA.
+
+        // Buttons shown on the "extra button row", only visible in certain (rare) states.
+        mExtraButtonRow = (ViewStub) mInCallControls.findViewById(R.id.extraButtonRow);
+
+        // If in PORTRAIT, add a custom OnTouchListener to shrink the "hit target".
+        if (!PhoneUtils.isLandscape(this.getContext())) {
+            mEndButton.setOnTouchListener(new SmallerHitTargetTouchListener());
+        }
+
+    }
+
+    /**
+     * Updates the visibility and/or state of our UI elements, based on
+     * the current state of the phone.
+     *
+     * TODO: This function should be relying on a state defined by InCallScreen,
+     * and not generic call states. The incoming call screen handles more states
+     * than Call.State or PhoneConstant.State know about.
+     */
+    /* package */ void updateState(CallManager cm) {
+        if (mInCallScreen == null) {
+            log("- updateState: mInCallScreen has been destroyed; bailing out...");
+            return;
+        }
+
+        PhoneConstants.State state = cm.getState();  // IDLE, RINGING, or OFFHOOK
+        if (DBG) log("updateState: current state = " + state);
+
+        boolean showIncomingCallControls = false;
+        boolean showInCallControls = false;
+
+        final Call ringingCall = cm.getFirstActiveRingingCall();
+        final Call.State fgCallState = cm.getActiveFgCallState();
+
+        // If the FG call is dialing/alerting, we should display for that call
+        // and ignore the ringing call. This case happens when the telephony
+        // layer rejects the ringing call while the FG call is dialing/alerting,
+        // but the incoming call *does* briefly exist in the DISCONNECTING or
+        // DISCONNECTED state.
+        if ((ringingCall.getState() != Call.State.IDLE) && !fgCallState.isDialing()) {
+            // A phone call is ringing *or* call waiting.
+
+            // Watch out: even if the phone state is RINGING, it's
+            // possible for the ringing call to be in the DISCONNECTING
+            // state.  (This typically happens immediately after the user
+            // rejects an incoming call, and in that case we *don't* show
+            // the incoming call controls.)
+            if (ringingCall.getState().isAlive()) {
+                if (DBG) log("- updateState: RINGING!  Showing incoming call controls...");
+                showIncomingCallControls = true;
+            }
+
+            // Ugly hack to cover up slow response from the radio:
+            // if we get an updateState() call immediately after answering/rejecting a call
+            // (via onTrigger()), *don't* show the incoming call
+            // UI even if the phone is still in the RINGING state.
+            // This covers up a slow response from the radio for some actions.
+            // To detect that situation, we are using "500 msec" heuristics.
+            //
+            // Watch out: we should *not* rely on this behavior when "instant text response" action
+            // has been chosen. See also onTrigger() for why.
+            long now = SystemClock.uptimeMillis();
+            if (now < mLastIncomingCallActionTime + 500) {
+                log("updateState: Too soon after last action; not drawing!");
+                showIncomingCallControls = false;
+            }
+
+            // b/6765896
+            // If the glowview triggers two hits of the respond-via-sms gadget in
+            // quick succession, it can cause the incoming call widget to show and hide
+            // twice in a row.  However, the second hide doesn't get triggered because
+            // we are already attemping to hide.  This causes an additional glowview to
+            // stay up above all other screens.
+            // In reality, we shouldn't even be showing incoming-call UI while we are
+            // showing the respond-via-sms popup, so we check for that here.
+            //
+            // TODO: In the future, this entire state machine
+            // should be reworked.  Respond-via-sms was stapled onto the current
+            // design (and so were other states) and should be made a first-class
+            // citizen in a new state machine.
+            if (mInCallScreen.isQuickResponseDialogShowing()) {
+                log("updateState: quickResponse visible. Cancel showing incoming call controls.");
+                showIncomingCallControls = false;
+            }
+        } else {
+            // Ok, show the regular in-call touch UI (with some exceptions):
+            if (okToShowInCallControls()) {
+                showInCallControls = true;
+            } else {
+                if (DBG) log("- updateState: NOT OK to show touch UI; disabling...");
+            }
+        }
+
+        // In usual cases we don't allow showing both incoming call controls and in-call controls.
+        //
+        // There's one exception: if this call is during fading-out animation for the incoming
+        // call controls, we need to show both for smoother transition.
+        if (showIncomingCallControls && showInCallControls) {
+            throw new IllegalStateException(
+                "'Incoming' and 'in-call' touch controls visible at the same time!");
+        }
+        if (mShowInCallControlsDuringHidingAnimation) {
+            if (DBG) {
+                log("- updateState: FORCE showing in-call controls during incoming call widget"
+                        + " being hidden with animation");
+            }
+            showInCallControls = true;
+        }
+
+        // Update visibility and state of the incoming call controls or
+        // the normal in-call controls.
+
+        if (showInCallControls) {
+            if (DBG) log("- updateState: showing in-call controls...");
+            updateInCallControls(cm);
+            mInCallControls.setVisibility(View.VISIBLE);
+        } else {
+            if (DBG) log("- updateState: HIDING in-call controls...");
+            mInCallControls.setVisibility(View.GONE);
+        }
+
+        if (showIncomingCallControls) {
+            if (DBG) log("- updateState: showing incoming call widget...");
+            showIncomingCallWidget(ringingCall);
+
+            // On devices with a system bar (soft buttons at the bottom of
+            // the screen), disable navigation while the incoming-call UI
+            // is up.
+            // This prevents false touches (e.g. on the "Recents" button)
+            // from interfering with the incoming call UI, like if you
+            // accidentally touch the system bar while pulling the phone
+            // out of your pocket.
+            mApp.notificationMgr.statusBarHelper.enableSystemBarNavigation(false);
+        } else {
+            if (DBG) log("- updateState: HIDING incoming call widget...");
+            hideIncomingCallWidget();
+
+            // The system bar is allowed to work normally in regular
+            // in-call states.
+            mApp.notificationMgr.statusBarHelper.enableSystemBarNavigation(true);
+        }
+
+        // Dismiss the "Audio mode" PopupMenu if necessary.
+        //
+        // The "Audio mode" popup is only relevant in call states that support
+        // in-call audio, namely when the phone is OFFHOOK (not RINGING), *and*
+        // the foreground call is either ALERTING (where you can hear the other
+        // end ringing) or ACTIVE (when the call is actually connected.)  In any
+        // state *other* than these, the popup should not be visible.
+
+        if ((state == PhoneConstants.State.OFFHOOK)
+            && (fgCallState == Call.State.ALERTING || fgCallState == Call.State.ACTIVE)) {
+            // The audio mode popup is allowed to be visible in this state.
+            // So if it's up, leave it alone.
+        } else {
+            // The Audio mode popup isn't relevant in this state, so make sure
+            // it's not visible.
+            dismissAudioModePopup();  // safe even if not active
+        }
+    }
+
+    private boolean okToShowInCallControls() {
+        // Note that this method is concerned only with the internal state
+        // of the InCallScreen.  (The InCallTouchUi widget has separate
+        // logic to make sure it's OK to display the touch UI given the
+        // current telephony state, and that it's allowed on the current
+        // device in the first place.)
+
+        // The touch UI is available in the following InCallScreenModes:
+        // - NORMAL (obviously)
+        // - CALL_ENDED (which is intended to look mostly the same as
+        //               a normal in-call state, even though the in-call
+        //               buttons are mostly disabled)
+        // and is hidden in any of the other modes, like MANAGE_CONFERENCE
+        // or one of the OTA modes (which use totally different UIs.)
+
+        return ((mApp.inCallUiState.inCallScreenMode == InCallScreenMode.NORMAL)
+                || (mApp.inCallUiState.inCallScreenMode == InCallScreenMode.CALL_ENDED));
+    }
+
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        if (DBG) log("onClick(View " + view + ", id " + id + ")...");
+
+        switch (id) {
+            case R.id.addButton:
+            case R.id.mergeButton:
+            case R.id.endButton:
+            case R.id.dialpadButton:
+            case R.id.muteButton:
+            case R.id.holdButton:
+            case R.id.swapButton:
+            case R.id.cdmaMergeButton:
+            case R.id.manageConferenceButton:
+            case R.id.videoCallButton:
+                // Clicks on the regular onscreen buttons get forwarded
+                // straight to the InCallScreen.
+                mInCallScreen.handleOnscreenButtonClick(id);
+                break;
+
+            case R.id.audioButton:
+                handleAudioButtonClick();
+                break;
+
+            default:
+                Log.w(LOG_TAG, "onClick: unexpected click: View " + view + ", id " + id);
+                break;
+        }
+    }
+
+    @Override
+    public boolean onLongClick(View view) {
+        final int id = view.getId();
+        if (DBG) log("onLongClick(View " + view + ", id " + id + ")...");
+
+        switch (id) {
+            case R.id.addButton:
+            case R.id.mergeButton:
+            case R.id.dialpadButton:
+            case R.id.muteButton:
+            case R.id.holdButton:
+            case R.id.swapButton:
+            case R.id.audioButton:
+            case R.id.videoCallButton: {
+                final CharSequence description = view.getContentDescription();
+                if (!TextUtils.isEmpty(description)) {
+                    // Show description as ActionBar's menu buttons do.
+                    // See also ActionMenuItemView#onLongClick() for the original implementation.
+                    final Toast cheatSheet =
+                            Toast.makeText(view.getContext(), description, Toast.LENGTH_SHORT);
+                    cheatSheet.setGravity(
+                            Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, view.getHeight());
+                    cheatSheet.show();
+                }
+                return true;
+            }
+            default:
+                Log.w(LOG_TAG, "onLongClick() with unexpected View " + view + ". Ignoring it.");
+                break;
+        }
+        return false;
+    }
+
+    /**
+     * Updates the enabledness and "checked" state of the buttons on the
+     * "inCallControls" panel, based on the current telephony state.
+     */
+    private void updateInCallControls(CallManager cm) {
+        int phoneType = cm.getActiveFgCall().getPhone().getPhoneType();
+
+        // Note we do NOT need to worry here about cases where the entire
+        // in-call touch UI is disabled, like during an OTA call or if the
+        // dtmf dialpad is up.  (That's handled by updateState(), which
+        // calls okToShowInCallControls().)
+        //
+        // If we get here, it *is* OK to show the in-call touch UI, so we
+        // now need to update the enabledness and/or "checked" state of
+        // each individual button.
+        //
+
+        // The InCallControlState object tells us the enabledness and/or
+        // state of the various onscreen buttons:
+        InCallControlState inCallControlState = mInCallScreen.getUpdatedInCallControlState();
+
+        if (DBG) {
+            log("updateInCallControls()...");
+            inCallControlState.dumpState();
+        }
+
+        // "Add" / "Merge":
+        // These two buttons occupy the same space onscreen, so at any
+        // given point exactly one of them must be VISIBLE and the other
+        // must be GONE.
+        if (inCallControlState.canAddCall) {
+            mAddButton.setVisibility(View.VISIBLE);
+            mAddButton.setEnabled(true);
+            mMergeButton.setVisibility(View.GONE);
+        } else if (inCallControlState.canMerge) {
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                // In CDMA "Add" option is always given to the user and the
+                // "Merge" option is provided as a button on the top left corner of the screen,
+                // we always set the mMergeButton to GONE
+                mMergeButton.setVisibility(View.GONE);
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                    || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                mMergeButton.setVisibility(View.VISIBLE);
+                mMergeButton.setEnabled(true);
+                mAddButton.setVisibility(View.GONE);
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        } else {
+            // Neither "Add" nor "Merge" is available.  (This happens in
+            // some transient states, like while dialing an outgoing call,
+            // and in other rare cases like if you have both lines in use
+            // *and* there are already 5 people on the conference call.)
+            // Since the common case here is "while dialing", we show the
+            // "Add" button in a disabled state so that there won't be any
+            // jarring change in the UI when the call finally connects.
+            mAddButton.setVisibility(View.VISIBLE);
+            mAddButton.setEnabled(false);
+            mMergeButton.setVisibility(View.GONE);
+        }
+        if (inCallControlState.canAddCall && inCallControlState.canMerge) {
+            if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                    || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                // Uh oh, the InCallControlState thinks that "Add" *and* "Merge"
+                // should both be available right now.  This *should* never
+                // happen with GSM, but if it's possible on any
+                // future devices we may need to re-layout Add and Merge so
+                // they can both be visible at the same time...
+                Log.w(LOG_TAG, "updateInCallControls: Add *and* Merge enabled," +
+                        " but can't show both!");
+            } else if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                // In CDMA "Add" option is always given to the user and the hence
+                // in this case both "Add" and "Merge" options would be available to user
+                if (DBG) log("updateInCallControls: CDMA: Add and Merge both enabled");
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        }
+
+        // "End call"
+        mEndButton.setEnabled(inCallControlState.canEndCall);
+
+        // "Dialpad": Enabled only when it's OK to use the dialpad in the
+        // first place.
+        mDialpadButton.setEnabled(inCallControlState.dialpadEnabled);
+        mDialpadButton.setChecked(inCallControlState.dialpadVisible);
+
+        // "Mute"
+        mMuteButton.setEnabled(inCallControlState.canMute);
+        mMuteButton.setChecked(inCallControlState.muteIndicatorOn);
+
+        // "Audio"
+        updateAudioButton(inCallControlState);
+
+        // "Hold" / "Swap":
+        // These two buttons occupy the same space onscreen, so at any
+        // given point exactly one of them must be VISIBLE and the other
+        // must be GONE.
+        if (inCallControlState.canHold) {
+            mHoldButton.setVisibility(View.VISIBLE);
+            mHoldButton.setEnabled(true);
+            mHoldButton.setChecked(inCallControlState.onHold);
+            mSwapButton.setVisibility(View.GONE);
+            mHoldSwapSpacer.setVisibility(View.VISIBLE);
+        } else if (inCallControlState.canSwap) {
+            mSwapButton.setVisibility(View.VISIBLE);
+            mSwapButton.setEnabled(true);
+            mHoldButton.setVisibility(View.GONE);
+            mHoldSwapSpacer.setVisibility(View.VISIBLE);
+        } else {
+            // Neither "Hold" nor "Swap" is available.  This can happen for two
+            // reasons:
+            //   (1) this is a transient state on a device that *can*
+            //       normally hold or swap, or
+            //   (2) this device just doesn't have the concept of hold/swap.
+            //
+            // In case (1), show the "Hold" button in a disabled state.  In case
+            // (2), remove the button entirely.  (This means that the button row
+            // will only have 4 buttons on some devices.)
+
+            if (inCallControlState.supportsHold) {
+                mHoldButton.setVisibility(View.VISIBLE);
+                mHoldButton.setEnabled(false);
+                mHoldButton.setChecked(false);
+                mSwapButton.setVisibility(View.GONE);
+                mHoldSwapSpacer.setVisibility(View.VISIBLE);
+            } else {
+                mHoldButton.setVisibility(View.GONE);
+                mSwapButton.setVisibility(View.GONE);
+                mHoldSwapSpacer.setVisibility(View.GONE);
+            }
+        }
+        mInCallScreen.updateButtonStateOutsideInCallTouchUi();
+        if (inCallControlState.canSwap && inCallControlState.canHold) {
+            // Uh oh, the InCallControlState thinks that Swap *and* Hold
+            // should both be available.  This *should* never happen with
+            // either GSM or CDMA, but if it's possible on any future
+            // devices we may need to re-layout Hold and Swap so they can
+            // both be visible at the same time...
+            Log.w(LOG_TAG, "updateInCallControls: Hold *and* Swap enabled, but can't show both!");
+        }
+
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            if (inCallControlState.canSwap && inCallControlState.canMerge) {
+                // Uh oh, the InCallControlState thinks that Swap *and* Merge
+                // should both be available.  This *should* never happen with
+                // CDMA, but if it's possible on any future
+                // devices we may need to re-layout Merge and Swap so they can
+                // both be visible at the same time...
+                Log.w(LOG_TAG, "updateInCallControls: Merge *and* Swap" +
+                        "enabled, but can't show both!");
+            }
+        }
+
+        // Finally, update the "extra button row": It's displayed above the
+        // "End" button, but only if necessary.  Also, it's never displayed
+        // while the dialpad is visible (since it would overlap.)
+        //
+        // The row contains two buttons:
+        //
+        // - "Manage conference" (used only on GSM devices)
+        // - "Merge" button (used only on CDMA devices)
+        //
+        // Note that mExtraButtonRow is ViewStub, which will be inflated for the first time when
+        // any of its buttons becomes visible.
+        final boolean showCdmaMerge =
+                (phoneType == PhoneConstants.PHONE_TYPE_CDMA) && inCallControlState.canMerge;
+        final boolean showExtraButtonRow =
+                showCdmaMerge || inCallControlState.manageConferenceVisible;
+        if (showExtraButtonRow && !inCallControlState.dialpadVisible) {
+            // This will require the ViewStub inflate itself.
+            mExtraButtonRow.setVisibility(View.VISIBLE);
+
+            // Need to set up mCdmaMergeButton and mManageConferenceButton if this is the first
+            // time they're visible.
+            if (mCdmaMergeButton == null) {
+                setupExtraButtons();
+            }
+            mCdmaMergeButton.setVisibility(showCdmaMerge ? View.VISIBLE : View.GONE);
+            if (inCallControlState.manageConferenceVisible) {
+                mManageConferenceButton.setVisibility(View.VISIBLE);
+                mManageConferenceButtonImage.setEnabled(inCallControlState.manageConferenceEnabled);
+            } else {
+                mManageConferenceButton.setVisibility(View.GONE);
+            }
+        } else {
+            mExtraButtonRow.setVisibility(View.GONE);
+        }
+
+        setupVideoCallButton();
+
+        if (DBG) {
+            log("At the end of updateInCallControls().");
+            dumpBottomButtonState();
+        }
+    }
+
+    /**
+     * Set up the video call button.  Checks the system for any video call providers before
+     * displaying the video chat button.
+     */
+    private void setupVideoCallButton() {
+        // TODO: Check system to see if there are video chat providers and if not, disable the
+        // button.
+    }
+
+
+    /**
+     * Set up the buttons that are part of the "extra button row"
+     */
+    private void setupExtraButtons() {
+        // The two "buttons" here (mCdmaMergeButton and mManageConferenceButton)
+        // are actually layouts containing an icon and a text label side-by-side.
+        mCdmaMergeButton = (ViewGroup) mInCallControls.findViewById(R.id.cdmaMergeButton);
+        if (mCdmaMergeButton == null) {
+            Log.wtf(LOG_TAG, "CDMA Merge button is null even after ViewStub being inflated.");
+            return;
+        }
+        mCdmaMergeButton.setOnClickListener(this);
+
+        mManageConferenceButton =
+                (ViewGroup) mInCallControls.findViewById(R.id.manageConferenceButton);
+        mManageConferenceButton.setOnClickListener(this);
+        mManageConferenceButtonImage =
+                (ImageButton) mInCallControls.findViewById(R.id.manageConferenceButtonImage);
+    }
+
+    private void dumpBottomButtonState() {
+        log(" - dialpad: " + getButtonState(mDialpadButton));
+        log(" - speaker: " + getButtonState(mAudioButton));
+        log(" - mute: " + getButtonState(mMuteButton));
+        log(" - hold: " + getButtonState(mHoldButton));
+        log(" - swap: " + getButtonState(mSwapButton));
+        log(" - add: " + getButtonState(mAddButton));
+        log(" - merge: " + getButtonState(mMergeButton));
+        log(" - cdmaMerge: " + getButtonState(mCdmaMergeButton));
+        log(" - swap: " + getButtonState(mSwapButton));
+        log(" - manageConferenceButton: " + getButtonState(mManageConferenceButton));
+    }
+
+    private static String getButtonState(View view) {
+        if (view == null) {
+            return "(null)";
+        }
+        StringBuilder builder = new StringBuilder();
+        builder.append("visibility: " + (view.getVisibility() == View.VISIBLE ? "VISIBLE"
+                : view.getVisibility() == View.INVISIBLE ? "INVISIBLE" : "GONE"));
+        if (view instanceof ImageButton) {
+            builder.append(", enabled: " + ((ImageButton) view).isEnabled());
+        } else if (view instanceof CompoundButton) {
+            builder.append(", enabled: " + ((CompoundButton) view).isEnabled());
+            builder.append(", checked: " + ((CompoundButton) view).isChecked());
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Updates the onscreen "Audio mode" button based on the current state.
+     *
+     * - If bluetooth is available, this button's function is to bring up the
+     *   "Audio mode" popup (which provides a 3-way choice between earpiece /
+     *   speaker / bluetooth).  So it should look like a regular action button,
+     *   but should also have the small "more_indicator" triangle that indicates
+     *   that a menu will pop up.
+     *
+     * - If speaker (but not bluetooth) is available, this button should look like
+     *   a regular toggle button (and indicate the current speaker state.)
+     *
+     * - If even speaker isn't available, disable the button entirely.
+     */
+    private void updateAudioButton(InCallControlState inCallControlState) {
+        if (DBG) log("updateAudioButton()...");
+
+        // The various layers of artwork for this button come from
+        // btn_compound_audio.xml.  Keep track of which layers we want to be
+        // visible:
+        //
+        // - This selector shows the blue bar below the button icon when
+        //   this button is a toggle *and* it's currently "checked".
+        boolean showToggleStateIndication = false;
+        //
+        // - This is visible if the popup menu is enabled:
+        boolean showMoreIndicator = false;
+        //
+        // - Foreground icons for the button.  Exactly one of these is enabled:
+        boolean showSpeakerOnIcon = false;
+        boolean showSpeakerOffIcon = false;
+        boolean showHandsetIcon = false;
+        boolean showBluetoothIcon = false;
+
+        if (inCallControlState.bluetoothEnabled) {
+            if (DBG) log("- updateAudioButton: 'popup menu action button' mode...");
+
+            mAudioButton.setEnabled(true);
+
+            // The audio button is NOT a toggle in this state.  (And its
+            // setChecked() state is irrelevant since we completely hide the
+            // btn_compound_background layer anyway.)
+
+            // Update desired layers:
+            showMoreIndicator = true;
+            if (inCallControlState.bluetoothIndicatorOn) {
+                showBluetoothIcon = true;
+            } else if (inCallControlState.speakerOn) {
+                showSpeakerOnIcon = true;
+            } else {
+                showHandsetIcon = true;
+                // TODO: if a wired headset is plugged in, that takes precedence
+                // over the handset earpiece.  If so, maybe we should show some
+                // sort of "wired headset" icon here instead of the "handset
+                // earpiece" icon.  (Still need an asset for that, though.)
+            }
+        } else if (inCallControlState.speakerEnabled) {
+            if (DBG) log("- updateAudioButton: 'speaker toggle' mode...");
+
+            mAudioButton.setEnabled(true);
+
+            // The audio button *is* a toggle in this state, and indicates the
+            // current state of the speakerphone.
+            mAudioButton.setChecked(inCallControlState.speakerOn);
+
+            // Update desired layers:
+            showToggleStateIndication = true;
+
+            showSpeakerOnIcon = inCallControlState.speakerOn;
+            showSpeakerOffIcon = !inCallControlState.speakerOn;
+        } else {
+            if (DBG) log("- updateAudioButton: disabled...");
+
+            // The audio button is a toggle in this state, but that's mostly
+            // irrelevant since it's always disabled and unchecked.
+            mAudioButton.setEnabled(false);
+            mAudioButton.setChecked(false);
+
+            // Update desired layers:
+            showToggleStateIndication = true;
+            showSpeakerOffIcon = true;
+        }
+
+        // Finally, update the drawable layers (see btn_compound_audio.xml).
+
+        // Constants used below with Drawable.setAlpha():
+        final int HIDDEN = 0;
+        final int VISIBLE = 255;
+
+        LayerDrawable layers = (LayerDrawable) mAudioButton.getBackground();
+        if (DBG) log("- 'layers' drawable: " + layers);
+
+        layers.findDrawableByLayerId(R.id.compoundBackgroundItem)
+                .setAlpha(showToggleStateIndication ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.moreIndicatorItem)
+                .setAlpha(showMoreIndicator ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.bluetoothItem)
+                .setAlpha(showBluetoothIcon ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.handsetItem)
+                .setAlpha(showHandsetIcon ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.speakerphoneOnItem)
+                .setAlpha(showSpeakerOnIcon ? VISIBLE : HIDDEN);
+
+        layers.findDrawableByLayerId(R.id.speakerphoneOffItem)
+                .setAlpha(showSpeakerOffIcon ? VISIBLE : HIDDEN);
+    }
+
+    /**
+     * Handles a click on the "Audio mode" button.
+     * - If bluetooth is available, bring up the "Audio mode" popup
+     *   (which provides a 3-way choice between earpiece / speaker / bluetooth).
+     * - If bluetooth is *not* available, just toggle between earpiece and
+     *   speaker, with no popup at all.
+     */
+    private void handleAudioButtonClick() {
+        InCallControlState inCallControlState = mInCallScreen.getUpdatedInCallControlState();
+        if (inCallControlState.bluetoothEnabled) {
+            if (DBG) log("- handleAudioButtonClick: 'popup menu' mode...");
+            showAudioModePopup();
+        } else {
+            if (DBG) log("- handleAudioButtonClick: 'speaker toggle' mode...");
+            mInCallScreen.toggleSpeaker();
+        }
+    }
+
+    /**
+     * Brings up the "Audio mode" popup.
+     */
+    private void showAudioModePopup() {
+        if (DBG) log("showAudioModePopup()...");
+
+        mAudioModePopup = new PopupMenu(mInCallScreen /* context */,
+                                        mAudioButton /* anchorView */);
+        mAudioModePopup.getMenuInflater().inflate(R.menu.incall_audio_mode_menu,
+                                                  mAudioModePopup.getMenu());
+        mAudioModePopup.setOnMenuItemClickListener(this);
+        mAudioModePopup.setOnDismissListener(this);
+
+        // Update the enabled/disabledness of menu items based on the
+        // current call state.
+        InCallControlState inCallControlState = mInCallScreen.getUpdatedInCallControlState();
+
+        Menu menu = mAudioModePopup.getMenu();
+
+        // TODO: Still need to have the "currently active" audio mode come
+        // up pre-selected (or focused?) with a blue highlight.  Still
+        // need exact visual design, and possibly framework support for this.
+        // See comments below for the exact logic.
+
+        MenuItem speakerItem = menu.findItem(R.id.audio_mode_speaker);
+        speakerItem.setEnabled(inCallControlState.speakerEnabled);
+        // TODO: Show speakerItem as initially "selected" if
+        // inCallControlState.speakerOn is true.
+
+        // We display *either* "earpiece" or "wired headset", never both,
+        // depending on whether a wired headset is physically plugged in.
+        MenuItem earpieceItem = menu.findItem(R.id.audio_mode_earpiece);
+        MenuItem wiredHeadsetItem = menu.findItem(R.id.audio_mode_wired_headset);
+        final boolean usingHeadset = mApp.isHeadsetPlugged();
+        earpieceItem.setVisible(!usingHeadset);
+        earpieceItem.setEnabled(!usingHeadset);
+        wiredHeadsetItem.setVisible(usingHeadset);
+        wiredHeadsetItem.setEnabled(usingHeadset);
+        // TODO: Show the above item (either earpieceItem or wiredHeadsetItem)
+        // as initially "selected" if inCallControlState.speakerOn and
+        // inCallControlState.bluetoothIndicatorOn are both false.
+
+        MenuItem bluetoothItem = menu.findItem(R.id.audio_mode_bluetooth);
+        bluetoothItem.setEnabled(inCallControlState.bluetoothEnabled);
+        // TODO: Show bluetoothItem as initially "selected" if
+        // inCallControlState.bluetoothIndicatorOn is true.
+
+        mAudioModePopup.show();
+
+        // Unfortunately we need to manually keep track of the popup menu's
+        // visiblity, since PopupMenu doesn't have an isShowing() method like
+        // Dialogs do.
+        mAudioModePopupVisible = true;
+    }
+
+    /**
+     * Dismisses the "Audio mode" popup if it's visible.
+     *
+     * This is safe to call even if the popup is already dismissed, or even if
+     * you never called showAudioModePopup() in the first place.
+     */
+    public void dismissAudioModePopup() {
+        if (mAudioModePopup != null) {
+            mAudioModePopup.dismiss();  // safe even if already dismissed
+            mAudioModePopup = null;
+            mAudioModePopupVisible = false;
+        }
+    }
+
+    /**
+     * Refreshes the "Audio mode" popup if it's visible.  This is useful
+     * (for example) when a wired headset is plugged or unplugged,
+     * since we need to switch back and forth between the "earpiece"
+     * and "wired headset" items.
+     *
+     * This is safe to call even if the popup is already dismissed, or even if
+     * you never called showAudioModePopup() in the first place.
+     */
+    public void refreshAudioModePopup() {
+        if (mAudioModePopup != null && mAudioModePopupVisible) {
+            // Dismiss the previous one
+            mAudioModePopup.dismiss();  // safe even if already dismissed
+            // And bring up a fresh PopupMenu
+            showAudioModePopup();
+        }
+    }
+
+    // PopupMenu.OnMenuItemClickListener implementation; see showAudioModePopup()
+    @Override
+    public boolean onMenuItemClick(MenuItem item) {
+        if (DBG) log("- onMenuItemClick: " + item);
+        if (DBG) log("  id: " + item.getItemId());
+        if (DBG) log("  title: '" + item.getTitle() + "'");
+
+        if (mInCallScreen == null) {
+            Log.w(LOG_TAG, "onMenuItemClick(" + item + "), but null mInCallScreen!");
+            return true;
+        }
+
+        switch (item.getItemId()) {
+            case R.id.audio_mode_speaker:
+                mInCallScreen.switchInCallAudio(InCallScreen.InCallAudioMode.SPEAKER);
+                break;
+            case R.id.audio_mode_earpiece:
+            case R.id.audio_mode_wired_headset:
+                // InCallAudioMode.EARPIECE means either the handset earpiece,
+                // or the wired headset (if connected.)
+                mInCallScreen.switchInCallAudio(InCallScreen.InCallAudioMode.EARPIECE);
+                break;
+            case R.id.audio_mode_bluetooth:
+                mInCallScreen.switchInCallAudio(InCallScreen.InCallAudioMode.BLUETOOTH);
+                break;
+            default:
+                Log.wtf(LOG_TAG,
+                        "onMenuItemClick:  unexpected View ID " + item.getItemId()
+                        + " (MenuItem = '" + item + "')");
+                break;
+        }
+        return true;
+    }
+
+    // PopupMenu.OnDismissListener implementation; see showAudioModePopup().
+    // This gets called when the PopupMenu gets dismissed for *any* reason, like
+    // the user tapping outside its bounds, or pressing Back, or selecting one
+    // of the menu items.
+    @Override
+    public void onDismiss(PopupMenu menu) {
+        if (DBG) log("- onDismiss: " + menu);
+        mAudioModePopupVisible = false;
+    }
+
+    /**
+     * @return the amount of vertical space (in pixels) that needs to be
+     * reserved for the button cluster at the bottom of the screen.
+     * (The CallCard uses this measurement to determine how big
+     * the main "contact photo" area can be.)
+     *
+     * NOTE that this returns the "canonical height" of the main in-call
+     * button cluster, which may not match the amount of vertical space
+     * actually used.  Specifically:
+     *
+     *   - If an incoming call is ringing, the button cluster isn't
+     *     visible at all.  (And the GlowPadView widget is actually
+     *     much taller than the button cluster.)
+     *
+     *   - If the InCallTouchUi widget's "extra button row" is visible
+     *     (in some rare phone states) the button cluster will actually
+     *     be slightly taller than the "canonical height".
+     *
+     * In either of these cases, we allow the bottom edge of the contact
+     * photo to be covered up by whatever UI is actually onscreen.
+     */
+    public int getTouchUiHeight() {
+        // Add up the vertical space consumed by the various rows of buttons.
+        int height = 0;
+
+        // - The main row of buttons:
+        height += (int) getResources().getDimension(R.dimen.in_call_button_height);
+
+        // - The End button:
+        height += (int) getResources().getDimension(R.dimen.in_call_end_button_height);
+
+        // - Note we *don't* consider the InCallTouchUi widget's "extra
+        //   button row" here.
+
+        //- And an extra bit of margin:
+        height += (int) getResources().getDimension(R.dimen.in_call_touch_ui_upper_margin);
+
+        return height;
+    }
+
+
+    //
+    // GlowPadView.OnTriggerListener implementation
+    //
+
+    @Override
+    public void onGrabbed(View v, int handle) {
+
+    }
+
+    @Override
+    public void onReleased(View v, int handle) {
+
+    }
+
+    /**
+     * Handles "Answer" and "Reject" actions for an incoming call.
+     * We get this callback from the incoming call widget
+     * when the user triggers an action.
+     */
+    @Override
+    public void onTrigger(View view, int whichHandle) {
+        if (DBG) log("onTrigger(whichHandle = " + whichHandle + ")...");
+
+        if (mInCallScreen == null) {
+            Log.wtf(LOG_TAG, "onTrigger(" + whichHandle
+                    + ") from incoming-call widget, but null mInCallScreen!");
+            return;
+        }
+
+        // The InCallScreen actually implements all of these actions.
+        // Each possible action from the incoming call widget corresponds
+        // to an R.id value; we pass those to the InCallScreen's "button
+        // click" handler (even though the UI elements aren't actually
+        // buttons; see InCallScreen.handleOnscreenButtonClick().)
+
+        mShowInCallControlsDuringHidingAnimation = false;
+        switch (whichHandle) {
+            case ANSWER_CALL_ID:
+                if (DBG) log("ANSWER_CALL_ID: answer!");
+                mInCallScreen.handleOnscreenButtonClick(R.id.incomingCallAnswer);
+                mShowInCallControlsDuringHidingAnimation = true;
+
+                // ...and also prevent it from reappearing right away.
+                // (This covers up a slow response from the radio for some
+                // actions; see updateState().)
+                mLastIncomingCallActionTime = SystemClock.uptimeMillis();
+                break;
+
+            case SEND_SMS_ID:
+                if (DBG) log("SEND_SMS_ID!");
+                mInCallScreen.handleOnscreenButtonClick(R.id.incomingCallRespondViaSms);
+
+                // Watch out: mLastIncomingCallActionTime should not be updated for this case.
+                //
+                // The variable is originally for avoiding a problem caused by delayed phone state
+                // update; RINGING state may remain just after answering/declining an incoming
+                // call, so we need to wait a bit (500ms) until we get the effective phone state.
+                // For this case, we shouldn't rely on that hack.
+                //
+                // When the user selects this case, there are two possibilities, neither of which
+                // should rely on the hack.
+                //
+                // 1. The first possibility is that, the device eventually sends one of canned
+                //    responses per the user's "send" request, and reject the call after sending it.
+                //    At that moment the code introducing the canned responses should handle the
+                //    case separately.
+                //
+                // 2. The second possibility is that, the device will show incoming call widget
+                //    again per the user's "cancel" request, where the incoming call will still
+                //    remain. At that moment the incoming call will keep its RINGING state.
+                //    The remaining phone state should never be ignored by the hack for
+                //    answering/declining calls because the RINGING state is legitimate. If we
+                //    use the hack for answer/decline cases, the user loses the incoming call
+                //    widget, until further screen update occurs afterward, which often results in
+                //    missed calls.
+                break;
+
+            case DECLINE_CALL_ID:
+                if (DBG) log("DECLINE_CALL_ID: reject!");
+                mInCallScreen.handleOnscreenButtonClick(R.id.incomingCallReject);
+
+                // Same as "answer" case.
+                mLastIncomingCallActionTime = SystemClock.uptimeMillis();
+                break;
+
+            default:
+                Log.wtf(LOG_TAG, "onDialTrigger: unexpected whichHandle value: " + whichHandle);
+                break;
+        }
+
+        // On any action by the user, hide the widget.
+        //
+        // If requested above (i.e. if mShowInCallControlsDuringHidingAnimation is set to true),
+        // in-call controls will start being shown too.
+        //
+        // TODO: The decision to hide this should be made by the controller
+        // (InCallScreen), and not this view.
+        hideIncomingCallWidget();
+
+        // Regardless of what action the user did, be sure to clear out
+        // the hint text we were displaying while the user was dragging.
+        mInCallScreen.updateIncomingCallWidgetHint(0, 0);
+    }
+
+    public void onFinishFinalAnimation() {
+        // Not used
+    }
+
+    /**
+     * Apply an animation to hide the incoming call widget.
+     */
+    private void hideIncomingCallWidget() {
+        if (DBG) log("hideIncomingCallWidget()...");
+        if (mIncomingCallWidget.getVisibility() != View.VISIBLE
+                || mIncomingCallWidgetIsFadingOut) {
+            if (DBG) log("Skipping hideIncomingCallWidget action");
+            // Widget is already hidden or in the process of being hidden
+            return;
+        }
+
+        // Hide the incoming call screen with a transition
+        mIncomingCallWidgetIsFadingOut = true;
+        ViewPropertyAnimator animator = mIncomingCallWidget.animate();
+        animator.cancel();
+        animator.setDuration(AnimationUtils.ANIMATION_DURATION);
+        animator.setListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+                if (mShowInCallControlsDuringHidingAnimation) {
+                    if (DBG) log("IncomingCallWidget's hiding animation started");
+                    updateInCallControls(mApp.mCM);
+                    mInCallControls.setVisibility(View.VISIBLE);
+                }
+            }
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                if (DBG) log("IncomingCallWidget's hiding animation ended");
+                mIncomingCallWidget.setAlpha(1);
+                mIncomingCallWidget.setVisibility(View.GONE);
+                mIncomingCallWidget.animate().setListener(null);
+                mShowInCallControlsDuringHidingAnimation = false;
+                mIncomingCallWidgetIsFadingOut = false;
+                mIncomingCallWidgetShouldBeReset = true;
+            }
+
+            @Override
+            public void onAnimationCancel(Animator animation) {
+                mIncomingCallWidget.animate().setListener(null);
+                mShowInCallControlsDuringHidingAnimation = false;
+                mIncomingCallWidgetIsFadingOut = false;
+                mIncomingCallWidgetShouldBeReset = true;
+
+                // Note: the code which reset this animation should be responsible for
+                // alpha and visibility.
+            }
+        });
+        animator.alpha(0f);
+    }
+
+    /**
+     * Shows the incoming call widget and cancels any animation that may be fading it out.
+     */
+    private void showIncomingCallWidget(Call ringingCall) {
+        if (DBG) log("showIncomingCallWidget()...");
+
+        // TODO: wouldn't be ok to suppress this whole request if the widget is already VISIBLE
+        //       and we don't need to reset it?
+        // log("showIncomingCallWidget(). widget visibility: " + mIncomingCallWidget.getVisibility());
+
+        ViewPropertyAnimator animator = mIncomingCallWidget.animate();
+        if (animator != null) {
+            animator.cancel();
+            // If animation is cancelled before it's running,
+            // onAnimationCancel will not be called and mIncomingCallWidgetIsFadingOut
+            // will be alway true. hideIncomingCallWidget() will not be excuted in this case.
+            mIncomingCallWidgetIsFadingOut = false;
+        }
+        mIncomingCallWidget.setAlpha(1.0f);
+
+        // Update the GlowPadView widget's targets based on the state of
+        // the ringing call.  (Specifically, we need to disable the
+        // "respond via SMS" option for certain types of calls, like SIP
+        // addresses or numbers with blocked caller-id.)
+        final boolean allowRespondViaSms =
+                RespondViaSmsManager.allowRespondViaSmsForCall(mInCallScreen, ringingCall);
+        final int targetResourceId = allowRespondViaSms
+                ? R.array.incoming_call_widget_3way_targets
+                : R.array.incoming_call_widget_2way_targets;
+        // The widget should be updated only when appropriate; if the previous choice can be reused
+        // for this incoming call, we'll just keep using it. Otherwise we'll see UI glitch
+        // everytime when this method is called during a single incoming call.
+        if (targetResourceId != mIncomingCallWidget.getTargetResourceId()) {
+            if (allowRespondViaSms) {
+                // The GlowPadView widget is allowed to have all 3 choices:
+                // Answer, Decline, and Respond via SMS.
+                mIncomingCallWidget.setTargetResources(targetResourceId);
+                mIncomingCallWidget.setTargetDescriptionsResourceId(
+                        R.array.incoming_call_widget_3way_target_descriptions);
+                mIncomingCallWidget.setDirectionDescriptionsResourceId(
+                        R.array.incoming_call_widget_3way_direction_descriptions);
+            } else {
+                // You only get two choices: Answer or Decline.
+                mIncomingCallWidget.setTargetResources(targetResourceId);
+                mIncomingCallWidget.setTargetDescriptionsResourceId(
+                        R.array.incoming_call_widget_2way_target_descriptions);
+                mIncomingCallWidget.setDirectionDescriptionsResourceId(
+                        R.array.incoming_call_widget_2way_direction_descriptions);
+            }
+
+            // This will be used right after this block.
+            mIncomingCallWidgetShouldBeReset = true;
+        }
+        if (mIncomingCallWidgetShouldBeReset) {
+            // Watch out: be sure to call reset() and setVisibility() *after*
+            // updating the target resources, since otherwise the GlowPadView
+            // widget will make the targets visible initially (even before you
+            // touch the widget.)
+            mIncomingCallWidget.reset(false);
+            mIncomingCallWidgetShouldBeReset = false;
+        }
+
+        // On an incoming call, if the layout is landscape, then align the "incoming call" text
+        // to the left, because the incomingCallWidget (black background with glowing ring)
+        // is aligned to the right and would cover the "incoming call" text.
+        // Note that callStateLabel is within CallCard, outside of the context of InCallTouchUi
+        if (PhoneUtils.isLandscape(this.getContext())) {
+            TextView callStateLabel = (TextView) mIncomingCallWidget
+                    .getRootView().findViewById(R.id.callStateLabel);
+            if (callStateLabel != null) callStateLabel.setGravity(Gravity.START);
+        }
+
+        mIncomingCallWidget.setVisibility(View.VISIBLE);
+
+        // Finally, manually trigger a "ping" animation.
+        //
+        // Normally, the ping animation is triggered by RING events from
+        // the telephony layer (see onIncomingRing().)  But that *doesn't*
+        // happen for the very first RING event of an incoming call, since
+        // the incoming-call UI hasn't been set up yet at that point!
+        //
+        // So trigger an explicit ping() here, to force the animation to
+        // run when the widget first appears.
+        //
+        mHandler.removeMessages(INCOMING_CALL_WIDGET_PING);
+        mHandler.sendEmptyMessageDelayed(
+                INCOMING_CALL_WIDGET_PING,
+                // Visual polish: add a small delay here, to make the
+                // GlowPadView widget visible for a brief moment
+                // *before* starting the ping animation.
+                // This value doesn't need to be very precise.
+                250 /* msec */);
+    }
+
+    /**
+     * Handles state changes of the incoming-call widget.
+     *
+     * In previous releases (where we used a SlidingTab widget) we would
+     * display an onscreen hint depending on which "handle" the user was
+     * dragging.  But we now use a GlowPadView widget, which has only
+     * one handle, so for now we don't display a hint at all (see the TODO
+     * comment below.)
+     */
+    @Override
+    public void onGrabbedStateChange(View v, int grabbedState) {
+        if (mInCallScreen != null) {
+            // Look up the hint based on which handle is currently grabbed.
+            // (Note we don't simply pass grabbedState thru to the InCallScreen,
+            // since *this* class is the only place that knows that the left
+            // handle means "Answer" and the right handle means "Decline".)
+            int hintTextResId, hintColorResId;
+            switch (grabbedState) {
+                case GlowPadView.OnTriggerListener.NO_HANDLE:
+                case GlowPadView.OnTriggerListener.CENTER_HANDLE:
+                    hintTextResId = 0;
+                    hintColorResId = 0;
+                    break;
+                default:
+                    Log.e(LOG_TAG, "onGrabbedStateChange: unexpected grabbedState: "
+                          + grabbedState);
+                    hintTextResId = 0;
+                    hintColorResId = 0;
+                    break;
+            }
+
+            // Tell the InCallScreen to update the CallCard and force the
+            // screen to redraw.
+            mInCallScreen.updateIncomingCallWidgetHint(hintTextResId, hintColorResId);
+        }
+    }
+
+    /**
+     * Handles an incoming RING event from the telephony layer.
+     */
+    public void onIncomingRing() {
+        if (ENABLE_PING_ON_RING_EVENTS) {
+            // Each RING from the telephony layer triggers a "ping" animation
+            // of the GlowPadView widget.  (The intent here is to make the
+            // pinging appear to be synchronized with the ringtone, although
+            // that only works for non-looping ringtones.)
+            triggerPing();
+        }
+    }
+
+    /**
+     * Runs a single "ping" animation of the GlowPadView widget,
+     * or do nothing if the GlowPadView widget is no longer visible.
+     *
+     * Also, if ENABLE_PING_AUTO_REPEAT is true, schedule the next ping as
+     * well (but again, only if the GlowPadView widget is still visible.)
+     */
+    public void triggerPing() {
+        if (DBG) log("triggerPing: mIncomingCallWidget = " + mIncomingCallWidget);
+
+        if (!mInCallScreen.isForegroundActivity()) {
+            // InCallScreen has been dismissed; no need to run a ping *or*
+            // schedule another one.
+            log("- triggerPing: InCallScreen no longer in foreground; ignoring...");
+            return;
+        }
+
+        if (mIncomingCallWidget == null) {
+            // This shouldn't happen; the GlowPadView widget should
+            // always be present in our layout file.
+            Log.w(LOG_TAG, "- triggerPing: null mIncomingCallWidget!");
+            return;
+        }
+
+        if (DBG) log("- triggerPing: mIncomingCallWidget visibility = "
+                     + mIncomingCallWidget.getVisibility());
+
+        if (mIncomingCallWidget.getVisibility() != View.VISIBLE) {
+            if (DBG) log("- triggerPing: mIncomingCallWidget no longer visible; ignoring...");
+            return;
+        }
+
+        // Ok, run a ping (and schedule the next one too, if desired...)
+
+        mIncomingCallWidget.ping();
+
+        if (ENABLE_PING_AUTO_REPEAT) {
+            // Schedule the next ping.  (ENABLE_PING_AUTO_REPEAT mode
+            // allows the ping animation to repeat much faster than in
+            // the ENABLE_PING_ON_RING_EVENTS case, since telephony RING
+            // events come fairly slowly (about 3 seconds apart.))
+
+            // No need to check here if the call is still ringing, by
+            // the way, since we hide mIncomingCallWidget as soon as the
+            // ringing stops, or if the user answers.  (And at that
+            // point, any future triggerPing() call will be a no-op.)
+
+            // TODO: Rather than having a separate timer here, maybe try
+            // having these pings synchronized with the vibrator (see
+            // VibratorThread in Ringer.java; we'd just need to get
+            // events routed from there to here, probably via the
+            // PhoneApp instance.)  (But watch out: make sure pings
+            // still work even if the Vibrate setting is turned off!)
+
+            mHandler.sendEmptyMessageDelayed(INCOMING_CALL_WIDGET_PING,
+                                             PING_AUTO_REPEAT_DELAY_MSEC);
+        }
+    }
+
+    // Debugging / testing code
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/InCallUiState.java b/src/com/android/phone/InCallUiState.java
new file mode 100644
index 0000000..3b700d7
--- /dev/null
+++ b/src/com/android/phone/InCallUiState.java
@@ -0,0 +1,453 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import com.android.phone.Constants.CallStatusCode;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
+
+/**
+ * Helper class to keep track of "persistent state" of the in-call UI.
+ *
+ * The onscreen appearance of the in-call UI mostly depends on the current
+ * Call/Connection state, which is owned by the telephony framework.  But
+ * there's some application-level "UI state" too, which lives here in the
+ * phone app.
+ *
+ * This application-level state information is *not* maintained by the
+ * InCallScreen, since it needs to persist throughout an entire phone call,
+ * not just a single resume/pause cycle of the InCallScreen.  So instead, that
+ * state is stored here, in a singleton instance of this class.
+ *
+ * The state kept here is a high-level abstraction of in-call UI state: we
+ * don't know about implementation details like specific widgets or strings or
+ * resources, but we do understand higher level concepts (for example "is the
+ * dialpad visible") and high-level modes (like InCallScreenMode) and error
+ * conditions (like CallStatusCode).
+ *
+ * @see InCallControlState for a separate collection of "UI state" that
+ * controls all the onscreen buttons of the in-call UI, based on the state of
+ * the telephony layer.
+ *
+ * The singleton instance of this class is owned by the PhoneApp instance.
+ */
+public class InCallUiState {
+    private static final String TAG = "InCallUiState";
+    private static final boolean DBG = false;
+
+    /** The singleton InCallUiState instance. */
+    private static InCallUiState sInstance;
+
+    private Context mContext;
+
+    /**
+     * Initialize the singleton InCallUiState instance.
+     *
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     * From then on, the InCallUiState instance is available via the
+     * PhoneApp's public "inCallUiState" field, which is why there's no
+     * getInstance() method here.
+     */
+    /* package */ static InCallUiState init(Context context) {
+        synchronized (InCallUiState.class) {
+            if (sInstance == null) {
+                sInstance = new InCallUiState(context);
+            } else {
+                Log.wtf(TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /**
+     * Private constructor (this is a singleton).
+     * @see init()
+     */
+    private InCallUiState(Context context) {
+        mContext = context;
+    }
+
+
+    //
+    // (1) High-level state of the whole in-call UI
+    //
+
+    /** High-level "modes" of the in-call UI. */
+    public enum InCallScreenMode {
+        /**
+         * Normal in-call UI elements visible.
+         */
+        NORMAL,
+        /**
+         * "Manage conference" UI is visible, totally replacing the
+         * normal in-call UI.
+         */
+        MANAGE_CONFERENCE,
+        /**
+         * Non-interactive UI state.  Call card is visible,
+         * displaying information about the call that just ended.
+         */
+        CALL_ENDED,
+        /**
+         * Normal OTA in-call UI elements visible.
+         */
+        OTA_NORMAL,
+        /**
+         * OTA call ended UI visible, replacing normal OTA in-call UI.
+         */
+        OTA_ENDED,
+        /**
+         * Default state when not on call
+         */
+        UNDEFINED
+    }
+
+    /** Current high-level "mode" of the in-call UI. */
+    InCallScreenMode inCallScreenMode = InCallScreenMode.UNDEFINED;
+
+
+    //
+    // (2) State of specific UI elements
+    //
+
+    /**
+     * Is the onscreen twelve-key dialpad visible?
+     */
+    boolean showDialpad;
+
+    /**
+     * The contents of the twelve-key dialpad's "digits" display, which is
+     * visible only when the dialpad itself is visible.
+     *
+     * (This is basically the "history" of DTMF digits you've typed so far
+     * in the current call.  It's cleared out any time a new call starts,
+     * to make sure the digits don't persist between two separate calls.)
+     */
+    String dialpadDigits;
+
+    /**
+     * The contact/dialed number information shown in the DTMF digits text
+     * when the user has not yet typed any digits.
+     *
+     * Currently only used for displaying "Voice Mail" since voicemail calls
+     * start directly in the dialpad view.
+     */
+    String dialpadContextText;
+
+    //
+    // (3) Error / diagnostic indications
+    //
+
+    // This section provides an abstract concept of an "error status
+    // indication" for some kind of exceptional condition that needs to be
+    // communicated to the user, in the context of the in-call UI.
+    //
+    // If mPendingCallStatusCode is any value other than SUCCESS, that
+    // indicates that the in-call UI needs to display a dialog to the user
+    // with the specified title and message text.
+    //
+    // When an error occurs outside of the InCallScreen itself (like
+    // during CallController.placeCall() for example), we inform the user
+    // by doing the following steps:
+    //
+    // (1) set the "pending call status code" to a value other than SUCCESS
+    //     (based on the specific error that happened)
+    // (2) force the InCallScreen to be launched (or relaunched)
+    // (3) InCallScreen.onResume() will notice that pending call status code
+    //     is set, and will actually bring up the desired dialog.
+    //
+    // Watch out: any time you set (or change!) the pending call status code
+    // field you must be sure to always (re)launch the InCallScreen.
+    //
+    // Finally, the InCallScreen itself is responsible for resetting the
+    // pending call status code, when the user dismisses the dialog (like by
+    // hitting the OK button or pressing Back).  The pending call status code
+    // field is NOT cleared simply by the InCallScreen being paused or
+    // finished, since the resulting dialog needs to persist across
+    // orientation changes or if the screen turns off.
+
+    // TODO: other features we might eventually need here:
+    //
+    //   - Some error status messages stay in force till reset,
+    //     others may automatically clear themselves after
+    //     a fixed delay
+    //
+    //   - Some error statuses may be visible as a dialog with an OK
+    //     button (like "call failed"), others may be an indefinite
+    //     progress dialog (like "turning on radio for emergency call").
+    //
+    //   - Eventually some error statuses may have extra actions (like a
+    //     "retry call" button that we might provide at the bottom of the
+    //     "call failed because you have no signal" dialog.)
+
+    /**
+     * The current pending "error status indication" that we need to
+     * display to the user.
+     *
+     * If this field is set to a value other than SUCCESS, this indicates to
+     * the InCallScreen that we need to show some kind of message to the user
+     * (usually an error dialog) based on the specified status code.
+     */
+    private CallStatusCode mPendingCallStatusCode = CallStatusCode.SUCCESS;
+
+    /**
+     * @return true if there's a pending "error status indication"
+     * that we need to display to the user.
+     */
+    public boolean hasPendingCallStatusCode() {
+        if (DBG) log("hasPendingCallStatusCode() ==> "
+                     + (mPendingCallStatusCode != CallStatusCode.SUCCESS));
+        return (mPendingCallStatusCode != CallStatusCode.SUCCESS);
+    }
+
+    /**
+     * @return the pending "error status indication" code
+     * that we need to display to the user.
+     */
+    public CallStatusCode getPendingCallStatusCode() {
+        if (DBG) log("getPendingCallStatusCode() ==> " + mPendingCallStatusCode);
+        return mPendingCallStatusCode;
+    }
+
+    /**
+     * Sets the pending "error status indication" code.
+     */
+    public void setPendingCallStatusCode(CallStatusCode status) {
+        if (DBG) log("setPendingCallStatusCode( " + status + " )...");
+        if (mPendingCallStatusCode != CallStatusCode.SUCCESS) {
+            // Uh oh: mPendingCallStatusCode is already set to some value
+            // other than SUCCESS (which indicates that there was some kind of
+            // failure), and now we're trying to indicate another (potentially
+            // different) failure.  But we can only indicate one failure at a
+            // time to the user, so the previous pending code is now going to
+            // be lost.
+            Log.w(TAG, "setPendingCallStatusCode: setting new code " + status
+                  + ", but a previous code " + mPendingCallStatusCode
+                  + " was already pending!");
+        }
+        mPendingCallStatusCode = status;
+    }
+
+    /**
+     * Clears out the pending "error status indication" code.
+     *
+     * This indicates that there's no longer any error or "exceptional
+     * condition" that needs to be displayed to the user.  (Typically, this
+     * method is called when the user dismisses the error dialog that came up
+     * because of a previous call status code.)
+     */
+    public void clearPendingCallStatusCode() {
+        if (DBG) log("clearPendingCallStatusCode()...");
+        mPendingCallStatusCode = CallStatusCode.SUCCESS;
+    }
+
+    /**
+     * Flag used to control the CDMA-specific "call lost" dialog.
+     *
+     * If true, that means that if the *next* outgoing call fails with an
+     * abnormal disconnection cause, we need to display the "call lost"
+     * dialog.  (Normally, in CDMA we handle some types of call failures
+     * by automatically retrying the call.  This flag is set to true when
+     * we're about to auto-retry, which means that if the *retry* also
+     * fails we'll give up and display an error.)
+     * See the logic in InCallScreen.onDisconnect() for the full story.
+     *
+     * TODO: the state machine that maintains the needToShowCallLostDialog
+     * flag in InCallScreen.onDisconnect() should really be moved into the
+     * CallController.  Then we can get rid of this extra flag, and
+     * instead simply use the CallStatusCode value CDMA_CALL_LOST to
+     * trigger the "call lost" dialog.
+     */
+    boolean needToShowCallLostDialog;
+
+
+    //
+    // Progress indications
+    //
+
+    /**
+     * Possible messages we might need to display along with
+     * an indefinite progress spinner.
+     */
+    public enum ProgressIndicationType {
+        /**
+         * No progress indication needs to be shown.
+         */
+        NONE,
+
+        /**
+         * Shown when making an emergency call from airplane mode;
+         * see CallController$EmergencyCallHelper.
+         */
+        TURNING_ON_RADIO,
+
+        /**
+         * Generic "retrying" state.  (Specifically, this is shown while
+         * retrying after an initial failure from the "emergency call from
+         * airplane mode" sequence.)
+         */
+         RETRYING
+    }
+
+    /**
+     * The current progress indication that should be shown
+     * to the user.  Any value other than NONE will cause the InCallScreen
+     * to bring up an indefinite progress spinner along with a message
+     * corresponding to the specified ProgressIndicationType.
+     */
+    private ProgressIndicationType progressIndication = ProgressIndicationType.NONE;
+
+    /** Sets the current progressIndication. */
+    public void setProgressIndication(ProgressIndicationType value) {
+        progressIndication = value;
+    }
+
+    /** Clears the current progressIndication. */
+    public void clearProgressIndication() {
+        progressIndication = ProgressIndicationType.NONE;
+    }
+
+    /**
+     * @return the current progress indication type, or ProgressIndicationType.NONE
+     * if no progress indication is currently active.
+     */
+    public ProgressIndicationType getProgressIndication() {
+        return progressIndication;
+    }
+
+    /** @return true if a progress indication is currently active. */
+    public boolean isProgressIndicationActive() {
+        return (progressIndication != ProgressIndicationType.NONE);
+    }
+
+
+    //
+    // (4) Optional info when a 3rd party "provider" is used.
+    //     @see InCallScreen#requestRemoveProviderInfoWithDelay()
+    //     @see CallCard#updateCallStateWidgets()
+    //
+
+    // TODO: maybe isolate all the provider-related stuff out to a
+    //       separate inner class?
+    boolean providerInfoVisible;
+    CharSequence providerLabel;
+    Drawable providerIcon;
+    Uri providerGatewayUri;
+    // The formatted address extracted from mProviderGatewayUri. User visible.
+    String providerAddress;
+
+    /**
+     * Set the fields related to the provider support
+     * based on the specified intent.
+     */
+    public void setProviderInfo(Intent intent) {
+        providerLabel = PhoneUtils.getProviderLabel(mContext, intent);
+        providerIcon = PhoneUtils.getProviderIcon(mContext, intent);
+        providerGatewayUri = PhoneUtils.getProviderGatewayUri(intent);
+        providerAddress = PhoneUtils.formatProviderUri(providerGatewayUri);
+        providerInfoVisible = true;
+
+        // ...but if any of the "required" fields are missing, completely
+        // disable the overlay.
+        if (TextUtils.isEmpty(providerLabel) || providerIcon == null ||
+            providerGatewayUri == null || TextUtils.isEmpty(providerAddress)) {
+            clearProviderInfo();
+        }
+    }
+
+    /**
+     * Clear all the fields related to the provider support.
+     */
+    public void clearProviderInfo() {
+        providerInfoVisible = false;
+        providerLabel = null;
+        providerIcon = null;
+        providerGatewayUri = null;
+        providerAddress = null;
+    }
+
+    /**
+     * "Call origin" of the most recent phone call.
+     *
+     * Watch out: right now this is only used to determine where the user should go after the phone
+     * call. See also {@link InCallScreen} for more detail. There is *no* specific specification
+     * about how this variable will be used.
+     *
+     * @see PhoneGlobals#setLatestActiveCallOrigin(String)
+     * @see PhoneGlobals#createPhoneEndIntentUsingCallOrigin()
+     *
+     * TODO: we should determine some public behavior for this variable.
+     */
+    String latestActiveCallOrigin;
+
+    /**
+     * Timestamp for "Call origin". This will be used to preserve when the call origin was set.
+     * {@link android.os.SystemClock#elapsedRealtime()} will be used.
+     */
+    long latestActiveCallOriginTimeStamp;
+
+    /**
+     * Flag forcing Phone app to show in-call UI even when there's no phone call and thus Phone
+     * is in IDLE state. This will be turned on only when:
+     *
+     * - the last phone call is hung up, and
+     * - the screen is being turned off in the middle of in-call UI (and thus when the screen being
+     *   turned on in-call UI is expected to be the next foreground activity)
+     *
+     * At that moment whole UI should show "previously disconnected phone call" for a moment and
+     * exit itself. {@link InCallScreen#onPause()} will turn this off and prevent possible weird
+     * cases which may happen with that exceptional case.
+     */
+    boolean showAlreadyDisconnectedState;
+
+    //
+    // Debugging
+    //
+
+    public void dumpState() {
+        log("dumpState():");
+        log("  - showDialpad: " + showDialpad);
+        log("    - dialpadContextText: " + dialpadContextText);
+        if (hasPendingCallStatusCode()) {
+            log("  - status indication is pending!");
+            log("    - pending call status code = " + mPendingCallStatusCode);
+        } else {
+            log("  - pending call status code: none");
+        }
+        log("  - progressIndication: " + progressIndication);
+        if (providerInfoVisible) {
+            log("  - provider info VISIBLE: "
+                  + providerLabel + " / "
+                  + providerIcon  + " / "
+                  + providerGatewayUri + " / "
+                  + providerAddress);
+        } else {
+            log("  - provider info: none");
+        }
+        log("  - latestActiveCallOrigin: " + latestActiveCallOrigin);
+    }
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/ManageConferenceUtils.java b/src/com/android/phone/ManageConferenceUtils.java
new file mode 100644
index 0000000..5821754
--- /dev/null
+++ b/src/com/android/phone/ManageConferenceUtils.java
@@ -0,0 +1,358 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.os.SystemProperties;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.widget.Button;
+import android.widget.Chronometer;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.CallerInfoAsyncQuery;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Connection;
+
+import java.util.List;
+
+
+/**
+ * Helper class to initialize and run the InCallScreen's "Manage conference" UI.
+ */
+public class ManageConferenceUtils {
+    private static final String LOG_TAG = "ManageConferenceUtils";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    /**
+     * CallerInfoAsyncQuery.OnQueryCompleteListener implementation.
+     *
+     * This object listens for results from the caller-id info queries we
+     * fire off in updateManageConferenceRow(), and updates the
+     * corresponding conference row.
+     */
+    private final class QueryCompleteListener
+            implements CallerInfoAsyncQuery.OnQueryCompleteListener {
+        private final int mConferencCallListIndex;
+
+        public QueryCompleteListener(int index) {
+            mConferencCallListIndex = index;
+        }
+
+        @Override
+        public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+            if (DBG) log("callerinfo query complete, updating UI." + ci);
+
+            Connection connection = (Connection) cookie;
+            int presentation = connection.getNumberPresentation();
+
+            // get the viewgroup (conference call list item) and make it visible
+            ViewGroup viewGroup = mConferenceCallList[mConferencCallListIndex];
+            viewGroup.setVisibility(View.VISIBLE);
+
+            // update the list item with this information.
+            displayCallerInfoForConferenceRow(ci, presentation,
+                    (TextView) viewGroup.findViewById(R.id.conferenceCallerName),
+                    (TextView) viewGroup.findViewById(R.id.conferenceCallerNumberType),
+                    (TextView) viewGroup.findViewById(R.id.conferenceCallerNumber));
+        }
+    }
+
+    private InCallScreen mInCallScreen;
+    private CallManager mCM;
+
+    // "Manage conference" UI elements and state
+    private ViewGroup mManageConferencePanel;
+    private View mButtonManageConferenceDone;
+    private ViewGroup[] mConferenceCallList;
+    private int mNumCallersInConference;
+    private Chronometer mConferenceTime;
+
+    // See CallTracker.MAX_CONNECTIONS_PER_CALL
+    private static final int MAX_CALLERS_IN_CONFERENCE = 5;
+
+    public ManageConferenceUtils(InCallScreen inCallScreen, CallManager cm) {
+        if (DBG) log("ManageConferenceUtils constructor...");
+        mInCallScreen = inCallScreen;
+        mCM = cm;
+    }
+
+    public void initManageConferencePanel() {
+        if (DBG) log("initManageConferencePanel()...");
+        if (mManageConferencePanel == null) {
+            if (DBG) log("initManageConferencePanel: first-time initialization!");
+
+            // Inflate the ViewStub, look up and initialize the UI elements.
+            ViewStub stub = (ViewStub) mInCallScreen.findViewById(R.id.manageConferencePanelStub);
+            stub.inflate();
+
+            mManageConferencePanel =
+                    (ViewGroup) mInCallScreen.findViewById(R.id.manageConferencePanel);
+            if (mManageConferencePanel == null) {
+                throw new IllegalStateException("Couldn't find manageConferencePanel!");
+            }
+
+            // set up the Conference Call chronometer
+            mConferenceTime =
+                    (Chronometer) mInCallScreen.findViewById(R.id.manageConferencePanelHeader);
+            mConferenceTime.setFormat(mInCallScreen.getString(R.string.caller_manage_header));
+
+            // Create list of conference call widgets
+            mConferenceCallList = new ViewGroup[MAX_CALLERS_IN_CONFERENCE];
+
+            final int[] viewGroupIdList = { R.id.caller0, R.id.caller1, R.id.caller2,
+                                            R.id.caller3, R.id.caller4 };
+            for (int i = 0; i < MAX_CALLERS_IN_CONFERENCE; i++) {
+                mConferenceCallList[i] =
+                        (ViewGroup) mInCallScreen.findViewById(viewGroupIdList[i]);
+            }
+
+            mButtonManageConferenceDone = mInCallScreen.findViewById(R.id.manage_done);
+            mButtonManageConferenceDone.setOnClickListener(mInCallScreen);
+        }
+    }
+
+    /**
+     * Shows or hides the manageConferencePanel.
+     */
+    public void setPanelVisible(boolean visible) {
+        if (mManageConferencePanel != null) {
+            mManageConferencePanel.setVisibility(visible ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    /**
+     * Starts the "conference time" chronometer.
+     */
+    public void startConferenceTime(long base) {
+        if (mConferenceTime != null) {
+            mConferenceTime.setBase(base);
+            mConferenceTime.start();
+        }
+    }
+
+    /**
+     * Stops the "conference time" chronometer.
+     */
+    public void stopConferenceTime() {
+        if (mConferenceTime != null) {
+            mConferenceTime.stop();
+        }
+    }
+
+    public int getNumCallersInConference() {
+        return mNumCallersInConference;
+    }
+
+    /**
+     * Updates the "Manage conference" UI based on the specified List of
+     * connections.
+     *
+     * @param connections the List of connections belonging to
+     *        the current foreground call; size must be greater than 1
+     *        (or it wouldn't be a conference call in the first place.)
+     */
+    public void updateManageConferencePanel(List<Connection> connections) {
+        mNumCallersInConference = connections.size();
+        if (DBG) log("updateManageConferencePanel()... num connections in conference = "
+                      + mNumCallersInConference);
+
+        // Can we give the user the option to separate out ("go private with") a single
+        // caller from this conference?
+        final boolean hasActiveCall = mCM.hasActiveFgCall();
+        final boolean hasHoldingCall = mCM.hasActiveBgCall();
+        boolean canSeparate = !(hasActiveCall && hasHoldingCall);
+
+        for (int i = 0; i < MAX_CALLERS_IN_CONFERENCE; i++) {
+            if (i < mNumCallersInConference) {
+                // Fill in the row in the UI for this caller.
+                Connection connection = (Connection) connections.get(i);
+                updateManageConferenceRow(i, connection, canSeparate);
+            } else {
+                // Blank out this row in the UI
+                updateManageConferenceRow(i, null, false);
+            }
+        }
+    }
+
+    /**
+     * Updates a single row of the "Manage conference" UI.  (One row in this
+     * UI represents a single caller in the conference.)
+     *
+     * @param i the row to update
+     * @param connection the Connection corresponding to this caller.
+     *        If null, that means this is an "empty slot" in the conference,
+     *        so hide this row in the UI.
+     * @param canSeparate if true, show a "Separate" (i.e. "Private") button
+     *        on this row in the UI.
+     */
+    public void updateManageConferenceRow(final int i,
+                                          final Connection connection,
+                                          boolean canSeparate) {
+        if (DBG) log("updateManageConferenceRow(" + i + ")...  connection = " + connection);
+
+        if (connection != null) {
+            // Activate this row of the Manage conference panel:
+            mConferenceCallList[i].setVisibility(View.VISIBLE);
+
+            // get the relevant children views
+            View endButton = mConferenceCallList[i].findViewById(R.id.conferenceCallerDisconnect);
+            View separateButton = mConferenceCallList[i].findViewById(
+                    R.id.conferenceCallerSeparate);
+            TextView nameTextView = (TextView) mConferenceCallList[i].findViewById(
+                    R.id.conferenceCallerName);
+            TextView numberTextView = (TextView) mConferenceCallList[i].findViewById(
+                    R.id.conferenceCallerNumber);
+            TextView numberTypeTextView = (TextView) mConferenceCallList[i].findViewById(
+                    R.id.conferenceCallerNumberType);
+
+            if (DBG) log("- button: " + endButton + ", nameTextView: " + nameTextView);
+
+            // Hook up this row's buttons.
+            View.OnClickListener endThisConnection = new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        endConferenceConnection(i, connection);
+                        PhoneGlobals.getInstance().pokeUserActivity();
+                    }
+                };
+            endButton.setOnClickListener(endThisConnection);
+            //
+            if (canSeparate) {
+                View.OnClickListener separateThisConnection = new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            separateConferenceConnection(i, connection);
+                            PhoneGlobals.getInstance().pokeUserActivity();
+                        }
+                    };
+                separateButton.setOnClickListener(separateThisConnection);
+                separateButton.setVisibility(View.VISIBLE);
+            } else {
+                separateButton.setVisibility(View.INVISIBLE);
+            }
+
+            // Name/number for this caller.
+            QueryCompleteListener listener = new QueryCompleteListener(i);
+            PhoneUtils.CallerInfoToken info =
+                    PhoneUtils.startGetCallerInfo(mInCallScreen,
+                            connection, listener, connection);
+            if (DBG) log("  - got info from startGetCallerInfo(): " + info);
+
+            // display the CallerInfo.
+            displayCallerInfoForConferenceRow(info.currentInfo, connection.getNumberPresentation(),
+                    nameTextView, numberTypeTextView, numberTextView);
+        } else {
+            // Disable this row of the Manage conference panel:
+            mConferenceCallList[i].setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * Helper function to fill out the Conference Call(er) information
+     * for each item in the "Manage Conference Call" list.
+     *
+     * @param presentation presentation specified by {@link Connection}.
+     */
+    public final void displayCallerInfoForConferenceRow(CallerInfo ci, int presentation,
+            TextView nameTextView, TextView numberTypeTextView, TextView numberTextView) {
+        // gather the correct name and number information.
+        String callerName = "";
+        String callerNumber = "";
+        String callerNumberType = "";
+        if (ci != null) {
+            callerName = ci.name;
+            if (TextUtils.isEmpty(callerName)) {
+                // Do similar fallback as CallCard does.
+                // See also CallCard#updateDisplayForPerson().
+                if (TextUtils.isEmpty(ci.phoneNumber)) {
+                    callerName = PhoneUtils.getPresentationString(mInCallScreen, presentation);
+                } else if (!TextUtils.isEmpty(ci.cnapName)) {
+                    // No name, but we do have a valid CNAP name, so use that.
+                    callerName = ci.cnapName;
+                } else {
+                    callerName = ci.phoneNumber;
+                }
+            } else {
+                callerNumber = ci.phoneNumber;
+                callerNumberType = ci.phoneLabel;
+            }
+        }
+
+        // set the caller name
+        nameTextView.setText(callerName);
+
+        // set the caller number in subscript, or make the field disappear.
+        if (TextUtils.isEmpty(callerNumber)) {
+            numberTextView.setVisibility(View.GONE);
+            numberTypeTextView.setVisibility(View.GONE);
+        } else {
+            numberTextView.setVisibility(View.VISIBLE);
+            numberTextView.setText(callerNumber);
+            numberTypeTextView.setVisibility(View.VISIBLE);
+            numberTypeTextView.setText(callerNumberType);
+        }
+    }
+
+    /**
+     * Ends the specified connection on a conference call.  This method is
+     * run (via a closure containing a row index and Connection) when the
+     * user clicks the "End" button on a specific row in the Manage
+     * conference UI.
+     */
+    public void endConferenceConnection(int i, Connection connection) {
+        if (DBG) log("===> ENDING conference connection " + i
+                      + ": Connection " + connection);
+        // The actual work of ending the connection:
+        PhoneUtils.hangup(connection);
+        // No need to manually update the "Manage conference" UI here;
+        // that'll happen automatically very soon (when we get the
+        // onDisconnect() callback triggered by this hangup() call.)
+    }
+
+    /**
+     * Separates out the specified connection on a conference call.  This
+     * method is run (via a closure containing a row index and Connection)
+     * when the user clicks the "Separate" (i.e. "Private") button on a
+     * specific row in the Manage conference UI.
+     */
+    public void separateConferenceConnection(int i, Connection connection) {
+        if (DBG) log("===> SEPARATING conference connection " + i
+                      + ": Connection " + connection);
+
+        PhoneUtils.separateCall(connection);
+
+        // Note that separateCall() automagically makes the
+        // newly-separated call into the foreground call (which is the
+        // desired UI), so there's no need to do any further
+        // call-switching here.
+        // There's also no need to manually update (or hide) the "Manage
+        // conference" UI; that'll happen on its own in a moment (when we
+        // get the phone state change event triggered by the call to
+        // separateCall().)
+    }
+
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
new file mode 100644
index 0000000..e4b4de6
--- /dev/null
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -0,0 +1,590 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
+
+import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MenuItem;
+
+/**
+ * "Mobile network settings" screen.  This preference screen lets you
+ * enable/disable mobile data, and control data roaming and other
+ * network-specific mobile data features.  It's used on non-voice-capable
+ * tablets as well as regular phone devices.
+ *
+ * Note that this PreferenceActivity is part of the phone app, even though
+ * you reach it from the "Wireless & Networks" section of the main
+ * Settings app.  It's not part of the "Call settings" hierarchy that's
+ * available from the Phone app (see CallFeaturesSetting for that.)
+ */
+public class MobileNetworkSettings extends PreferenceActivity
+        implements DialogInterface.OnClickListener,
+        DialogInterface.OnDismissListener, Preference.OnPreferenceChangeListener{
+
+    // debug data
+    private static final String LOG_TAG = "NetworkSettings";
+    private static final boolean DBG = false;
+    public static final int REQUEST_CODE_EXIT_ECM = 17;
+
+    //String keys for preference lookup
+    private static final String BUTTON_DATA_ENABLED_KEY = "button_data_enabled_key";
+    private static final String BUTTON_PREFERED_NETWORK_MODE = "preferred_network_mode_key";
+    private static final String BUTTON_ROAMING_KEY = "button_roaming_key";
+    private static final String BUTTON_CDMA_LTE_DATA_SERVICE_KEY = "cdma_lte_data_service_key";
+
+    static final int preferredNetworkMode = Phone.PREFERRED_NT_MODE;
+
+    //Information about logical "up" Activity
+    private static final String UP_ACTIVITY_PACKAGE = "com.android.settings";
+    private static final String UP_ACTIVITY_CLASS =
+            "com.android.settings.Settings$WirelessSettingsActivity";
+
+    //UI objects
+    private ListPreference mButtonPreferredNetworkMode;
+    private CheckBoxPreference mButtonDataRoam;
+    private CheckBoxPreference mButtonDataEnabled;
+    private Preference mLteDataServicePref;
+
+    private static final String iface = "rmnet0"; //TODO: this will go away
+
+    private Phone mPhone;
+    private MyHandler mHandler;
+    private boolean mOkClicked;
+
+    //GsmUmts options and Cdma options
+    GsmUmtsOptions mGsmUmtsOptions;
+    CdmaOptions mCdmaOptions;
+
+    private Preference mClickedPreference;
+
+
+    //This is a method implemented for DialogInterface.OnClickListener.
+    //  Used to dismiss the dialogs when they come up.
+    public void onClick(DialogInterface dialog, int which) {
+        if (which == DialogInterface.BUTTON_POSITIVE) {
+            mPhone.setDataRoamingEnabled(true);
+            mOkClicked = true;
+        } else {
+            // Reset the toggle
+            mButtonDataRoam.setChecked(false);
+        }
+    }
+
+    public void onDismiss(DialogInterface dialog) {
+        // Assuming that onClick gets called first
+        if (!mOkClicked) {
+            mButtonDataRoam.setChecked(false);
+        }
+    }
+
+    /**
+     * Invoked on each preference click in this hierarchy, overrides
+     * PreferenceActivity's implementation.  Used to make sure we track the
+     * preference click events.
+     */
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        /** TODO: Refactor and get rid of the if's using subclasses */
+        if (mGsmUmtsOptions != null &&
+                mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
+            return true;
+        } else if (mCdmaOptions != null &&
+                   mCdmaOptions.preferenceTreeClick(preference) == true) {
+            if (Boolean.parseBoolean(
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
+
+                mClickedPreference = preference;
+
+                // In ECM mode launch ECM app dialog
+                startActivityForResult(
+                    new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
+                    REQUEST_CODE_EXIT_ECM);
+            }
+            return true;
+        } else if (preference == mButtonPreferredNetworkMode) {
+            //displays the value taken from the Settings.System
+            int settingsNetworkMode = android.provider.Settings.Global.getInt(mPhone.getContext().
+                    getContentResolver(), android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                    preferredNetworkMode);
+            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
+            return true;
+        } else if (preference == mButtonDataRoam) {
+            if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
+
+            //normally called on the toggle click
+            if (mButtonDataRoam.isChecked()) {
+                // First confirm with a warning dialog about charges
+                mOkClicked = false;
+                new AlertDialog.Builder(this).setMessage(
+                        getResources().getString(R.string.roaming_warning))
+                        .setTitle(android.R.string.dialog_alert_title)
+                        .setIconAttribute(android.R.attr.alertDialogIcon)
+                        .setPositiveButton(android.R.string.yes, this)
+                        .setNegativeButton(android.R.string.no, this)
+                        .show()
+                        .setOnDismissListener(this);
+            } else {
+                mPhone.setDataRoamingEnabled(false);
+            }
+            return true;
+        } else if (preference == mButtonDataEnabled) {
+            if (DBG) log("onPreferenceTreeClick: preference == mButtonDataEnabled.");
+            ConnectivityManager cm =
+                    (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
+
+            cm.setMobileDataEnabled(mButtonDataEnabled.isChecked());
+            return true;
+        } else if (preference == mLteDataServicePref) {
+            String tmpl = android.provider.Settings.Global.getString(getContentResolver(),
+                        android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
+            if (!TextUtils.isEmpty(tmpl)) {
+                TelephonyManager tm = (TelephonyManager) getSystemService(
+                        Context.TELEPHONY_SERVICE);
+                String imsi = tm.getSubscriberId();
+                if (imsi == null) {
+                    imsi = "";
+                }
+                final String url = TextUtils.isEmpty(tmpl) ? null
+                        : TextUtils.expandTemplate(tmpl, imsi).toString();
+                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+                startActivity(intent);
+            } else {
+                android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
+            }
+            return true;
+        } else {
+            // if the button is anything but the simple toggle preference,
+            // we'll need to disable all preferences to reject all click
+            // events until the sub-activity's UI comes up.
+            preferenceScreen.setEnabled(false);
+            // Let the intents be launched by the Preference manager
+            return false;
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.network_setting);
+
+        mPhone = PhoneGlobals.getPhone();
+        mHandler = new MyHandler();
+
+        //get UI object references
+        PreferenceScreen prefSet = getPreferenceScreen();
+
+        mButtonDataEnabled = (CheckBoxPreference) prefSet.findPreference(BUTTON_DATA_ENABLED_KEY);
+        mButtonDataRoam = (CheckBoxPreference) prefSet.findPreference(BUTTON_ROAMING_KEY);
+        mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
+                BUTTON_PREFERED_NETWORK_MODE);
+        mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
+
+        boolean isLteOnCdma = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
+        if (getResources().getBoolean(R.bool.world_phone) == true) {
+            // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
+            // change Preferred Network Mode.
+            mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
+
+            //Get the networkMode from Settings.System and displays it
+            int settingsNetworkMode = android.provider.Settings.Global.getInt(mPhone.getContext().
+                    getContentResolver(),android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                    preferredNetworkMode);
+            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
+            mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
+            mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet);
+        } else {
+            if (!isLteOnCdma) {
+                prefSet.removePreference(mButtonPreferredNetworkMode);
+            }
+            int phoneType = mPhone.getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
+                if (isLteOnCdma) {
+                    mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
+                    int settingsNetworkMode = android.provider.Settings.Global.getInt(
+                            mPhone.getContext().getContentResolver(),
+                            android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                            preferredNetworkMode);
+                    mButtonPreferredNetworkMode.setValue(
+                            Integer.toString(settingsNetworkMode));
+                }
+
+            } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet);
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        }
+
+        final boolean missingDataServiceUrl = TextUtils.isEmpty(
+                android.provider.Settings.Global.getString(getContentResolver(),
+                        android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL));
+        if (!isLteOnCdma || missingDataServiceUrl) {
+            prefSet.removePreference(mLteDataServicePref);
+        } else {
+            android.util.Log.d(LOG_TAG, "keep ltePref");
+        }
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        // upon resumption from the sub-activity, make sure we re-enable the
+        // preferences.
+        getPreferenceScreen().setEnabled(true);
+
+        ConnectivityManager cm =
+                (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
+        mButtonDataEnabled.setChecked(cm.getMobileDataEnabled());
+
+        // Set UI state in onResume because a user could go home, launch some
+        // app to change this setting's backend, and re-launch this settings app
+        // and the UI state would be inconsistent with actual state
+        mButtonDataRoam.setChecked(mPhone.getDataRoamingEnabled());
+
+        if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null)  {
+            mPhone.getPreferredNetworkType(mHandler.obtainMessage(
+                    MyHandler.MESSAGE_GET_PREFERRED_NETWORK_TYPE));
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+    }
+
+    /**
+     * Implemented to support onPreferenceChangeListener to look for preference
+     * changes specifically on CLIR.
+     *
+     * @param preference is the preference to be changed, should be mButtonCLIR.
+     * @param objValue should be the value of the selection, NOT its localized
+     * display value.
+     */
+    public boolean onPreferenceChange(Preference preference, Object objValue) {
+        if (preference == mButtonPreferredNetworkMode) {
+            //NOTE onPreferenceChange seems to be called even if there is no change
+            //Check if the button value is changed from the System.Setting
+            mButtonPreferredNetworkMode.setValue((String) objValue);
+            int buttonNetworkMode;
+            buttonNetworkMode = Integer.valueOf((String) objValue).intValue();
+            int settingsNetworkMode = android.provider.Settings.Global.getInt(
+                    mPhone.getContext().getContentResolver(),
+                    android.provider.Settings.Global.PREFERRED_NETWORK_MODE, preferredNetworkMode);
+            if (buttonNetworkMode != settingsNetworkMode) {
+                int modemNetworkMode;
+                // if new mode is invalid ignore it
+                switch (buttonNetworkMode) {
+                    case Phone.NT_MODE_WCDMA_PREF:
+                    case Phone.NT_MODE_GSM_ONLY:
+                    case Phone.NT_MODE_WCDMA_ONLY:
+                    case Phone.NT_MODE_GSM_UMTS:
+                    case Phone.NT_MODE_CDMA:
+                    case Phone.NT_MODE_CDMA_NO_EVDO:
+                    case Phone.NT_MODE_EVDO_NO_CDMA:
+                    case Phone.NT_MODE_GLOBAL:
+                    case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
+                    case Phone.NT_MODE_LTE_GSM_WCDMA:
+                    case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
+                    case Phone.NT_MODE_LTE_ONLY:
+                    case Phone.NT_MODE_LTE_WCDMA:
+                        // This is one of the modes we recognize
+                        modemNetworkMode = buttonNetworkMode;
+                        break;
+                    default:
+                        loge("Invalid Network Mode (" + buttonNetworkMode + ") chosen. Ignore.");
+                        return true;
+                }
+
+                UpdatePreferredNetworkModeSummary(buttonNetworkMode);
+
+                android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                        buttonNetworkMode );
+                //Set the modem network mode
+                mPhone.setPreferredNetworkType(modemNetworkMode, mHandler
+                        .obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+            }
+        }
+
+        // always let the preference setting proceed.
+        return true;
+    }
+
+    private class MyHandler extends Handler {
+
+        static final int MESSAGE_GET_PREFERRED_NETWORK_TYPE = 0;
+        static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_PREFERRED_NETWORK_TYPE:
+                    handleGetPreferredNetworkTypeResponse(msg);
+                    break;
+
+                case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
+                    handleSetPreferredNetworkTypeResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetPreferredNetworkTypeResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception == null) {
+                int modemNetworkMode = ((int[])ar.result)[0];
+
+                if (DBG) {
+                    log ("handleGetPreferredNetworkTypeResponse: modemNetworkMode = " +
+                            modemNetworkMode);
+                }
+
+                int settingsNetworkMode = android.provider.Settings.Global.getInt(
+                        mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                        preferredNetworkMode);
+
+                if (DBG) {
+                    log("handleGetPreferredNetworkTypeReponse: settingsNetworkMode = " +
+                            settingsNetworkMode);
+                }
+
+                //check that modemNetworkMode is from an accepted value
+                if (modemNetworkMode == Phone.NT_MODE_WCDMA_PREF ||
+                        modemNetworkMode == Phone.NT_MODE_GSM_ONLY ||
+                        modemNetworkMode == Phone.NT_MODE_WCDMA_ONLY ||
+                        modemNetworkMode == Phone.NT_MODE_GSM_UMTS ||
+                        modemNetworkMode == Phone.NT_MODE_CDMA ||
+                        modemNetworkMode == Phone.NT_MODE_CDMA_NO_EVDO ||
+                        modemNetworkMode == Phone.NT_MODE_EVDO_NO_CDMA ||
+                        modemNetworkMode == Phone.NT_MODE_GLOBAL ||
+                        modemNetworkMode == Phone.NT_MODE_LTE_CDMA_AND_EVDO ||
+                        modemNetworkMode == Phone.NT_MODE_LTE_GSM_WCDMA ||
+                        modemNetworkMode == Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA ||
+                        modemNetworkMode == Phone.NT_MODE_LTE_ONLY ||
+                        modemNetworkMode == Phone.NT_MODE_LTE_WCDMA) {
+                    if (DBG) {
+                        log("handleGetPreferredNetworkTypeResponse: if 1: modemNetworkMode = " +
+                                modemNetworkMode);
+                    }
+
+                    //check changes in modemNetworkMode and updates settingsNetworkMode
+                    if (modemNetworkMode != settingsNetworkMode) {
+                        if (DBG) {
+                            log("handleGetPreferredNetworkTypeResponse: if 2: " +
+                                    "modemNetworkMode != settingsNetworkMode");
+                        }
+
+                        settingsNetworkMode = modemNetworkMode;
+
+                        if (DBG) { log("handleGetPreferredNetworkTypeResponse: if 2: " +
+                                "settingsNetworkMode = " + settingsNetworkMode);
+                        }
+
+                        //changes the Settings.System accordingly to modemNetworkMode
+                        android.provider.Settings.Global.putInt(
+                                mPhone.getContext().getContentResolver(),
+                                android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                                settingsNetworkMode );
+                    }
+
+                    UpdatePreferredNetworkModeSummary(modemNetworkMode);
+                    // changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
+                    mButtonPreferredNetworkMode.setValue(Integer.toString(modemNetworkMode));
+                } else {
+                    if (DBG) log("handleGetPreferredNetworkTypeResponse: else: reset to default");
+                    resetNetworkModeToDefault();
+                }
+            }
+        }
+
+        private void handleSetPreferredNetworkTypeResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception == null) {
+                int networkMode = Integer.valueOf(
+                        mButtonPreferredNetworkMode.getValue()).intValue();
+                android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                        networkMode );
+            } else {
+                mPhone.getPreferredNetworkType(obtainMessage(MESSAGE_GET_PREFERRED_NETWORK_TYPE));
+            }
+        }
+
+        private void resetNetworkModeToDefault() {
+            //set the mButtonPreferredNetworkMode
+            mButtonPreferredNetworkMode.setValue(Integer.toString(preferredNetworkMode));
+            //set the Settings.System
+            android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
+                        preferredNetworkMode );
+            //Set the Modem
+            mPhone.setPreferredNetworkType(preferredNetworkMode,
+                    this.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+        }
+    }
+
+    private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
+        switch(NetworkMode) {
+            case Phone.NT_MODE_WCDMA_PREF:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_wcdma_perf_summary);
+                break;
+            case Phone.NT_MODE_GSM_ONLY:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_gsm_only_summary);
+                break;
+            case Phone.NT_MODE_WCDMA_ONLY:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_wcdma_only_summary);
+                break;
+            case Phone.NT_MODE_GSM_UMTS:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_gsm_wcdma_summary);
+                break;
+            case Phone.NT_MODE_CDMA:
+                switch (mPhone.getLteOnCdmaMode()) {
+                    case PhoneConstants.LTE_ON_CDMA_TRUE:
+                        mButtonPreferredNetworkMode.setSummary(
+                            R.string.preferred_network_mode_cdma_summary);
+                    break;
+                    case PhoneConstants.LTE_ON_CDMA_FALSE:
+                    default:
+                        mButtonPreferredNetworkMode.setSummary(
+                            R.string.preferred_network_mode_cdma_evdo_summary);
+                        break;
+                }
+                break;
+            case Phone.NT_MODE_CDMA_NO_EVDO:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_cdma_only_summary);
+                break;
+            case Phone.NT_MODE_EVDO_NO_CDMA:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_evdo_only_summary);
+                break;
+            case Phone.NT_MODE_LTE_ONLY:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_lte_summary);
+                break;
+            case Phone.NT_MODE_LTE_GSM_WCDMA:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_lte_gsm_wcdma_summary);
+                break;
+            case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_lte_cdma_evdo_summary);
+                break;
+            case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_global_summary);
+                break;
+            case Phone.NT_MODE_GLOBAL:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
+                break;
+            case Phone.NT_MODE_LTE_WCDMA:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_lte_wcdma_summary);
+                break;
+            default:
+                mButtonPreferredNetworkMode.setSummary(
+                        R.string.preferred_network_mode_global_summary);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch(requestCode) {
+        case REQUEST_CODE_EXIT_ECM:
+            Boolean isChoiceYes =
+                data.getBooleanExtra(EmergencyCallbackModeExitDialog.EXTRA_EXIT_ECM_RESULT, false);
+            if (isChoiceYes) {
+                // If the phone exits from ECM mode, show the CDMA Options
+                mCdmaOptions.showDialog(mClickedPreference);
+            } else {
+                // do nothing
+            }
+            break;
+
+        default:
+            break;
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    private static void loge(String msg) {
+        Log.e(LOG_TAG, msg);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            // Commenting out "logical up" capability. This is a workaround for issue 5278083.
+            //
+            // Settings app may not launch this activity via UP_ACTIVITY_CLASS but the other
+            // Activity that looks exactly same as UP_ACTIVITY_CLASS ("SubSettings" Activity).
+            // At that moment, this Activity launches UP_ACTIVITY_CLASS on top of the Activity.
+            // which confuses users.
+            // TODO: introduce better mechanism for "up" capability here.
+            /*Intent intent = new Intent(Intent.ACTION_MAIN);
+            intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
+            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            startActivity(intent);*/
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/phone/MultiLineTitleEditTextPreference.java b/src/com/android/phone/MultiLineTitleEditTextPreference.java
new file mode 100644
index 0000000..58d79f8
--- /dev/null
+++ b/src/com/android/phone/MultiLineTitleEditTextPreference.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.preference.EditTextPreference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+/**
+ * Ultra-simple subclass of EditTextPreference that allows the "title" to wrap
+ * onto multiple lines.
+ *
+ * (By default, the title of an EditTextPreference is singleLine="true"; see
+ * preference_holo.xml under frameworks/base.  But in the "Respond via SMS"
+ * settings UI we want titles to be multi-line, since the customized messages
+ * might be fairly long, and should be able to wrap.)
+ *
+ * TODO: This is pretty cumbersome; it would be nicer for the framework to
+ * either allow modifying the title's attributes in XML, or at least provide
+ * some way from Java (given an EditTextPreference) to reach inside and get a
+ * handle to the "title" TextView.
+ *
+ * TODO: Also, it would reduce clutter if this could be an inner class in
+ * RespondViaSmsManager.java, but then there would be no way to reference the
+ * class from XML.  That's because
+ *    <com.android.phone.RespondViaSmsManager$MultiLineTitleEditTextPreference ... />
+ * isn't valid XML syntax due to the "$" character.  And Preference
+ * elements don't have a "class" attribute, so you can't do something like
+ * <view class="com.android.phone.Foo$Bar"> as you can with regular views.
+ */
+public class MultiLineTitleEditTextPreference extends EditTextPreference {
+    public MultiLineTitleEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public MultiLineTitleEditTextPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public MultiLineTitleEditTextPreference(Context context) {
+        super(context);
+    }
+
+    // The "title" TextView inside an EditTextPreference defaults to
+    // singleLine="true" (see preference_holo.xml under frameworks/base.)
+    // We override onBindView() purely to look up that TextView and call
+    // setSingleLine(false) on it.
+    @Override
+    protected void onBindView(View view) {
+        super.onBindView(view);
+
+        TextView textView = (TextView) view.findViewById(com.android.internal.R.id.title);
+        if (textView != null) {
+            textView.setSingleLine(false);
+        }
+    }
+}
diff --git a/src/com/android/phone/NetworkQueryService.java b/src/com/android/phone/NetworkQueryService.java
new file mode 100644
index 0000000..be8c78e
--- /dev/null
+++ b/src/com/android/phone/NetworkQueryService.java
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.Service;
+import android.content.Intent;
+import com.android.internal.telephony.OperatorInfo;
+import android.os.AsyncResult;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import android.util.Log;
+
+import java.util.ArrayList;
+
+/**
+ * Service code used to assist in querying the network for service
+ * availability.   
+ */
+public class NetworkQueryService extends Service {
+    // debug data
+    private static final String LOG_TAG = "NetworkQuery";
+    private static final boolean DBG = false;
+
+    // static events
+    private static final int EVENT_NETWORK_SCAN_COMPLETED = 100; 
+    
+    // static states indicating the query status of the service 
+    private static final int QUERY_READY = -1;
+    private static final int QUERY_IS_RUNNING = -2;
+    
+    // error statuses that will be retured in the callback.
+    public static final int QUERY_OK = 0;
+    public static final int QUERY_EXCEPTION = 1;
+    
+    /** state of the query service */
+    private int mState;
+    
+    /** local handle to the phone object */
+    private Phone mPhone;
+    
+    /**
+     * Class for clients to access.  Because we know this service always
+     * runs in the same process as its clients, we don't need to deal with
+     * IPC.
+     */
+    public class LocalBinder extends Binder {
+        INetworkQueryService getService() {
+            return mBinder;
+        }
+    }
+    private final IBinder mLocalBinder = new LocalBinder();
+
+    /**
+     * Local handler to receive the network query compete callback
+     * from the RIL.
+     */
+    Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                // if the scan is complete, broadcast the results.
+                // to all registerd callbacks.
+                case EVENT_NETWORK_SCAN_COMPLETED:
+                    if (DBG) log("scan completed, broadcasting results");
+                    broadcastQueryResults((AsyncResult) msg.obj);
+                    break;
+            }
+        }
+    };
+    
+    /** 
+     * List of callback objects, also used to synchronize access to 
+     * itself and to changes in state.
+     */
+    final RemoteCallbackList<INetworkQueryServiceCallback> mCallbacks =
+        new RemoteCallbackList<INetworkQueryServiceCallback> ();
+    
+    /**
+     * Implementation of the INetworkQueryService interface.
+     */
+    private final INetworkQueryService.Stub mBinder = new INetworkQueryService.Stub() {
+        
+        /**
+         * Starts a query with a INetworkQueryServiceCallback object if
+         * one has not been started yet.  Ignore the new query request
+         * if the query has been started already.  Either way, place the
+         * callback object in the queue to be notified upon request 
+         * completion.
+         */
+        public void startNetworkQuery(INetworkQueryServiceCallback cb) {
+            if (cb != null) {
+                // register the callback to the list of callbacks.
+                synchronized (mCallbacks) {
+                    mCallbacks.register(cb);
+                    if (DBG) log("registering callback " + cb.getClass().toString());
+                    
+                    switch (mState) {
+                        case QUERY_READY:
+                            // TODO: we may want to install a timeout here in case we
+                            // do not get a timely response from the RIL.
+                            mPhone.getAvailableNetworks(
+                                    mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED));
+                            mState = QUERY_IS_RUNNING;
+                            if (DBG) log("starting new query");
+                            break;
+                            
+                        // do nothing if we're currently busy.
+                        case QUERY_IS_RUNNING:
+                            if (DBG) log("query already in progress");
+                            break;
+                        default:
+                    }
+                }
+            }
+        }
+        
+        /**
+         * Stops a query with a INetworkQueryServiceCallback object as
+         * a token.
+         */
+        public void stopNetworkQuery(INetworkQueryServiceCallback cb) {
+            // currently we just unregister the callback, since there is 
+            // no way to tell the RIL to terminate the query request.  
+            // This means that the RIL may still be busy after the stop 
+            // request was made, but the state tracking logic ensures 
+            // that the delay will only last for 1 request even with 
+            // repeated button presses in the NetworkSetting activity. 
+            if (cb != null) {
+                synchronized (mCallbacks) {
+                    if (DBG) log("unregistering callback " + cb.getClass().toString());
+                    mCallbacks.unregister(cb);
+                }
+            }            
+        }
+    };
+    
+    @Override
+    public void onCreate() {
+        mState = QUERY_READY;
+        mPhone = PhoneFactory.getDefaultPhone();
+    }
+    
+    /**
+     * Required for service implementation.
+     */
+    @Override
+    public void onStart(Intent intent, int startId) {
+    }
+    
+    /**
+     * Handle the bind request.
+     */
+    @Override
+    public IBinder onBind(Intent intent) {
+        // TODO: Currently, return only the LocalBinder instance.  If we
+        // end up requiring support for a remote binder, we will need to 
+        // return mBinder as well, depending upon the intent.
+        if (DBG) log("binding service implementation");
+        return mLocalBinder;
+    }
+
+    /**
+     * Broadcast the results from the query to all registered callback
+     * objects. 
+     */
+    private void broadcastQueryResults (AsyncResult ar) {
+        // reset the state.
+        synchronized (mCallbacks) {
+            mState = QUERY_READY;
+            
+            // see if we need to do any work.
+            if (ar == null) {
+                if (DBG) log("AsyncResult is null.");
+                return;
+            }
+    
+            // TODO: we may need greater accuracy here, but for now, just a
+            // simple status integer will suffice.
+            int exception = (ar.exception == null) ? QUERY_OK : QUERY_EXCEPTION;
+            if (DBG) log("AsyncResult has exception " + exception);
+            
+            // Make the calls to all the registered callbacks.
+            for (int i = (mCallbacks.beginBroadcast() - 1); i >= 0; i--) {
+                INetworkQueryServiceCallback cb = mCallbacks.getBroadcastItem(i); 
+                if (DBG) log("broadcasting results to " + cb.getClass().toString());
+                try {
+                    cb.onQueryComplete((ArrayList<OperatorInfo>) ar.result, exception);
+                } catch (RemoteException e) {
+                }
+            }
+            
+            // finish up.
+            mCallbacks.finishBroadcast();
+        }
+    }
+    
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }    
+}
diff --git a/src/com/android/phone/NetworkSetting.java b/src/com/android/phone/NetworkSetting.java
new file mode 100644
index 0000000..5917795
--- /dev/null
+++ b/src/com/android/phone/NetworkSetting.java
@@ -0,0 +1,478 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceGroup;
+import android.preference.PreferenceScreen;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.OperatorInfo;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * "Networks" settings UI for the Phone app.
+ */
+public class NetworkSetting extends PreferenceActivity
+        implements DialogInterface.OnCancelListener {
+
+    private static final String LOG_TAG = "phone";
+    private static final boolean DBG = false;
+
+    private static final int EVENT_NETWORK_SCAN_COMPLETED = 100;
+    private static final int EVENT_NETWORK_SELECTION_DONE = 200;
+    private static final int EVENT_AUTO_SELECT_DONE = 300;
+
+    //dialog ids
+    private static final int DIALOG_NETWORK_SELECTION = 100;
+    private static final int DIALOG_NETWORK_LIST_LOAD = 200;
+    private static final int DIALOG_NETWORK_AUTO_SELECT = 300;
+
+    //String keys for preference lookup
+    private static final String LIST_NETWORKS_KEY = "list_networks_key";
+    private static final String BUTTON_SRCH_NETWRKS_KEY = "button_srch_netwrks_key";
+    private static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
+
+    //map of network controls to the network data.
+    private HashMap<Preference, OperatorInfo> mNetworkMap;
+
+    Phone mPhone;
+    protected boolean mIsForeground = false;
+
+    /** message for network selection */
+    String mNetworkSelectMsg;
+
+    //preference objects
+    private PreferenceGroup mNetworkList;
+    private Preference mSearchButton;
+    private Preference mAutoSelect;
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_NETWORK_SCAN_COMPLETED:
+                    networksListLoaded ((List<OperatorInfo>) msg.obj, msg.arg1);
+                    break;
+
+                case EVENT_NETWORK_SELECTION_DONE:
+                    if (DBG) log("hideProgressPanel");
+                    removeDialog(DIALOG_NETWORK_SELECTION);
+                    getPreferenceScreen().setEnabled(true);
+
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        if (DBG) log("manual network selection: failed!");
+                        displayNetworkSelectionFailed(ar.exception);
+                    } else {
+                        if (DBG) log("manual network selection: succeeded!");
+                        displayNetworkSelectionSucceeded();
+                    }
+                    break;
+                case EVENT_AUTO_SELECT_DONE:
+                    if (DBG) log("hideProgressPanel");
+
+                    // Always try to dismiss the dialog because activity may
+                    // be moved to background after dialog is shown.
+                    try {
+                        dismissDialog(DIALOG_NETWORK_AUTO_SELECT);
+                    } catch (IllegalArgumentException e) {
+                        // "auto select" is always trigged in foreground, so "auto select" dialog
+                        //  should be shown when "auto select" is trigged. Should NOT get
+                        // this exception, and Log it.
+                        Log.w(LOG_TAG, "[NetworksList] Fail to dismiss auto select dialog", e);
+                    }
+                    getPreferenceScreen().setEnabled(true);
+
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        if (DBG) log("automatic network selection: failed!");
+                        displayNetworkSelectionFailed(ar.exception);
+                    } else {
+                        if (DBG) log("automatic network selection: succeeded!");
+                        displayNetworkSelectionSucceeded();
+                    }
+                    break;
+            }
+
+            return;
+        }
+    };
+
+    /**
+     * Service connection code for the NetworkQueryService.
+     * Handles the work of binding to a local object so that we can make
+     * the appropriate service calls.
+     */
+
+    /** Local service interface */
+    private INetworkQueryService mNetworkQueryService = null;
+
+    /** Service connection */
+    private final ServiceConnection mNetworkQueryServiceConnection = new ServiceConnection() {
+
+        /** Handle the task of binding the local object to the service */
+        public void onServiceConnected(ComponentName className, IBinder service) {
+            if (DBG) log("connection created, binding local service.");
+            mNetworkQueryService = ((NetworkQueryService.LocalBinder) service).getService();
+            // as soon as it is bound, run a query.
+            loadNetworksList();
+        }
+
+        /** Handle the task of cleaning up the local binding */
+        public void onServiceDisconnected(ComponentName className) {
+            if (DBG) log("connection disconnected, cleaning local binding.");
+            mNetworkQueryService = null;
+        }
+    };
+
+    /**
+     * This implementation of INetworkQueryServiceCallback is used to receive
+     * callback notifications from the network query service.
+     */
+    private final INetworkQueryServiceCallback mCallback = new INetworkQueryServiceCallback.Stub() {
+
+        /** place the message on the looper queue upon query completion. */
+        public void onQueryComplete(List<OperatorInfo> networkInfoArray, int status) {
+            if (DBG) log("notifying message loop of query completion.");
+            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED,
+                    status, 0, networkInfoArray);
+            msg.sendToTarget();
+        }
+    };
+
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        boolean handled = false;
+
+        if (preference == mSearchButton) {
+            loadNetworksList();
+            handled = true;
+        } else if (preference == mAutoSelect) {
+            selectNetworkAutomatic();
+            handled = true;
+        } else {
+            Preference selectedCarrier = preference;
+
+            String networkStr = selectedCarrier.getTitle().toString();
+            if (DBG) log("selected network: " + networkStr);
+
+            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SELECTION_DONE);
+            mPhone.selectNetworkManually(mNetworkMap.get(selectedCarrier), msg);
+
+            displayNetworkSeletionInProgress(networkStr);
+
+            handled = true;
+        }
+
+        return handled;
+    }
+
+    //implemented for DialogInterface.OnCancelListener
+    public void onCancel(DialogInterface dialog) {
+        // request that the service stop the query with this callback object.
+        try {
+            mNetworkQueryService.stopNetworkQuery(mCallback);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+        finish();
+    }
+
+    public String getNormalizedCarrierName(OperatorInfo ni) {
+        if (ni != null) {
+            return ni.getOperatorAlphaLong() + " (" + ni.getOperatorNumeric() + ")";
+        }
+        return null;
+    }
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.carrier_select);
+
+        mPhone = PhoneGlobals.getPhone();
+
+        mNetworkList = (PreferenceGroup) getPreferenceScreen().findPreference(LIST_NETWORKS_KEY);
+        mNetworkMap = new HashMap<Preference, OperatorInfo>();
+
+        mSearchButton = getPreferenceScreen().findPreference(BUTTON_SRCH_NETWRKS_KEY);
+        mAutoSelect = getPreferenceScreen().findPreference(BUTTON_AUTO_SELECT_KEY);
+
+        // Start the Network Query service, and bind it.
+        // The OS knows to start he service only once and keep the instance around (so
+        // long as startService is called) until a stopservice request is made.  Since
+        // we want this service to just stay in the background until it is killed, we
+        // don't bother stopping it from our end.
+        startService (new Intent(this, NetworkQueryService.class));
+        bindService (new Intent(this, NetworkQueryService.class), mNetworkQueryServiceConnection,
+                Context.BIND_AUTO_CREATE);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mIsForeground = true;
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mIsForeground = false;
+    }
+
+    /**
+     * Override onDestroy() to unbind the query service, avoiding service
+     * leak exceptions.
+     */
+    @Override
+    protected void onDestroy() {
+        // unbind the service.
+        unbindService(mNetworkQueryServiceConnection);
+
+        super.onDestroy();
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+
+        if ((id == DIALOG_NETWORK_SELECTION) || (id == DIALOG_NETWORK_LIST_LOAD) ||
+                (id == DIALOG_NETWORK_AUTO_SELECT)) {
+            ProgressDialog dialog = new ProgressDialog(this);
+            switch (id) {
+                case DIALOG_NETWORK_SELECTION:
+                    // It would be more efficient to reuse this dialog by moving
+                    // this setMessage() into onPreparedDialog() and NOT use
+                    // removeDialog().  However, this is not possible since the
+                    // message is rendered only 2 times in the ProgressDialog -
+                    // after show() and before onCreate.
+                    dialog.setMessage(mNetworkSelectMsg);
+                    dialog.setCancelable(false);
+                    dialog.setIndeterminate(true);
+                    break;
+                case DIALOG_NETWORK_AUTO_SELECT:
+                    dialog.setMessage(getResources().getString(R.string.register_automatically));
+                    dialog.setCancelable(false);
+                    dialog.setIndeterminate(true);
+                    break;
+                case DIALOG_NETWORK_LIST_LOAD:
+                default:
+                    // reinstate the cancelablity of the dialog.
+                    dialog.setMessage(getResources().getString(R.string.load_networks_progress));
+                    dialog.setCanceledOnTouchOutside(false);
+                    dialog.setOnCancelListener(this);
+                    break;
+            }
+            return dialog;
+        }
+        return null;
+    }
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog) {
+        if ((id == DIALOG_NETWORK_SELECTION) || (id == DIALOG_NETWORK_LIST_LOAD) ||
+                (id == DIALOG_NETWORK_AUTO_SELECT)) {
+            // when the dialogs come up, we'll need to indicate that
+            // we're in a busy state to dissallow further input.
+            getPreferenceScreen().setEnabled(false);
+        }
+    }
+
+    private void displayEmptyNetworkList(boolean flag) {
+        mNetworkList.setTitle(flag ? R.string.empty_networks_list : R.string.label_available);
+    }
+
+    private void displayNetworkSeletionInProgress(String networkStr) {
+        // TODO: use notification manager?
+        mNetworkSelectMsg = getResources().getString(R.string.register_on_network, networkStr);
+
+        if (mIsForeground) {
+            showDialog(DIALOG_NETWORK_SELECTION);
+        }
+    }
+
+    private void displayNetworkQueryFailed(int error) {
+        String status = getResources().getString(R.string.network_query_error);
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+    }
+
+    private void displayNetworkSelectionFailed(Throwable ex) {
+        String status;
+
+        if ((ex != null && ex instanceof CommandException) &&
+                ((CommandException)ex).getCommandError()
+                  == CommandException.Error.ILLEGAL_SIM_OR_ME)
+        {
+            status = getResources().getString(R.string.not_allowed);
+        } else {
+            status = getResources().getString(R.string.connect_later);
+        }
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+    }
+
+    private void displayNetworkSelectionSucceeded() {
+        String status = getResources().getString(R.string.registration_done);
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                finish();
+            }
+        }, 3000);
+    }
+
+    private void loadNetworksList() {
+        if (DBG) log("load networks list...");
+
+        if (mIsForeground) {
+            showDialog(DIALOG_NETWORK_LIST_LOAD);
+        }
+
+        // delegate query request to the service.
+        try {
+            mNetworkQueryService.startNetworkQuery(mCallback);
+        } catch (RemoteException e) {
+        }
+
+        displayEmptyNetworkList(false);
+    }
+
+    /**
+     * networksListLoaded has been rewritten to take an array of
+     * OperatorInfo objects and a status field, instead of an
+     * AsyncResult.  Otherwise, the functionality which takes the
+     * OperatorInfo array and creates a list of preferences from it,
+     * remains unchanged.
+     */
+    private void networksListLoaded(List<OperatorInfo> result, int status) {
+        if (DBG) log("networks list loaded");
+
+        // update the state of the preferences.
+        if (DBG) log("hideProgressPanel");
+
+
+        // Always try to dismiss the dialog because activity may
+        // be moved to background after dialog is shown.
+        try {
+            dismissDialog(DIALOG_NETWORK_LIST_LOAD);
+        } catch (IllegalArgumentException e) {
+            // It's not a error in following scenario, we just ignore it.
+            // "Load list" dialog will not show, if NetworkQueryService is
+            // connected after this activity is moved to background.
+            if (DBG) log("Fail to dismiss network load list dialog");
+        }
+
+        getPreferenceScreen().setEnabled(true);
+        clearList();
+
+        if (status != NetworkQueryService.QUERY_OK) {
+            if (DBG) log("error while querying available networks");
+            displayNetworkQueryFailed(status);
+            displayEmptyNetworkList(true);
+        } else {
+            if (result != null){
+                displayEmptyNetworkList(false);
+
+                // create a preference for each item in the list.
+                // just use the operator name instead of the mildly
+                // confusing mcc/mnc.
+                for (OperatorInfo ni : result) {
+                    Preference carrier = new Preference(this, null);
+                    carrier.setTitle(getNetworkTitle(ni));
+                    carrier.setPersistent(false);
+                    mNetworkList.addPreference(carrier);
+                    mNetworkMap.put(carrier, ni);
+
+                    if (DBG) log("  " + ni);
+                }
+
+            } else {
+                displayEmptyNetworkList(true);
+            }
+        }
+    }
+
+    /**
+     * Returns the title of the network obtained in the manual search.
+     *
+     * @param OperatorInfo contains the information of the network.
+     *
+     * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
+     * else MCCMNC string.
+     */
+
+    private String getNetworkTitle(OperatorInfo ni) {
+        if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
+            return ni.getOperatorAlphaLong();
+        } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
+            return ni.getOperatorAlphaShort();
+        } else {
+            return ni.getOperatorNumeric();
+        }
+    }
+
+    private void clearList() {
+        for (Preference p : mNetworkMap.keySet()) {
+            mNetworkList.removePreference(p);
+        }
+        mNetworkMap.clear();
+    }
+
+    private void selectNetworkAutomatic() {
+        if (DBG) log("select network automatically...");
+        if (mIsForeground) {
+            showDialog(DIALOG_NETWORK_AUTO_SELECT);
+        }
+
+        Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
+        mPhone.setNetworkSelectionModeAutomatic(msg);
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[NetworksList] " + msg);
+    }
+}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
new file mode 100644
index 0000000..ab0ba0c
--- /dev/null
+++ b/src/com/android/phone/NotificationMgr.java
@@ -0,0 +1,1471 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.StatusBarManager;
+import android.content.AsyncQueryHandler;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.media.AudioManager;
+import android.net.Uri;
+import android.os.PowerManager;
+import android.os.SystemProperties;
+import android.preference.PreferenceManager;
+import android.provider.CallLog.Calls;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.PhoneLookup;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.ServiceState;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.CallerInfoAsyncQuery;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneBase;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+/**
+ * NotificationManager-related utility code for the Phone app.
+ *
+ * This is a singleton object which acts as the interface to the
+ * framework's NotificationManager, and is used to display status bar
+ * icons and control other status bar-related behavior.
+ *
+ * @see PhoneGlobals.notificationMgr
+ */
+public class NotificationMgr implements CallerInfoAsyncQuery.OnQueryCompleteListener{
+    private static final String LOG_TAG = "NotificationMgr";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    // Do not check in with VDBG = true, since that may write PII to the system log.
+    private static final boolean VDBG = false;
+
+    private static final String[] CALL_LOG_PROJECTION = new String[] {
+        Calls._ID,
+        Calls.NUMBER,
+        Calls.NUMBER_PRESENTATION,
+        Calls.DATE,
+        Calls.DURATION,
+        Calls.TYPE,
+    };
+
+    // notification types
+    static final int MISSED_CALL_NOTIFICATION = 1;
+    static final int IN_CALL_NOTIFICATION = 2;
+    static final int MMI_NOTIFICATION = 3;
+    static final int NETWORK_SELECTION_NOTIFICATION = 4;
+    static final int VOICEMAIL_NOTIFICATION = 5;
+    static final int CALL_FORWARD_NOTIFICATION = 6;
+    static final int DATA_DISCONNECTED_ROAMING_NOTIFICATION = 7;
+    static final int SELECTED_OPERATOR_FAIL_NOTIFICATION = 8;
+
+    /** The singleton NotificationMgr instance. */
+    private static NotificationMgr sInstance;
+
+    private PhoneGlobals mApp;
+    private Phone mPhone;
+    private CallManager mCM;
+
+    private Context mContext;
+    private NotificationManager mNotificationManager;
+    private StatusBarManager mStatusBarManager;
+    private PowerManager mPowerManager;
+    private Toast mToast;
+    private boolean mShowingSpeakerphoneIcon;
+    private boolean mShowingMuteIcon;
+
+    public StatusBarHelper statusBarHelper;
+
+    // used to track the missed call counter, default to 0.
+    private int mNumberMissedCalls = 0;
+
+    // Currently-displayed resource IDs for some status bar icons (or zero
+    // if no notification is active):
+    private int mInCallResId;
+
+    // used to track the notification of selected network unavailable
+    private boolean mSelectedUnavailableNotify = false;
+
+    // Retry params for the getVoiceMailNumber() call; see updateMwi().
+    private static final int MAX_VM_NUMBER_RETRIES = 5;
+    private static final int VM_NUMBER_RETRY_DELAY_MILLIS = 10000;
+    private int mVmNumberRetriesRemaining = MAX_VM_NUMBER_RETRIES;
+
+    // Query used to look up caller-id info for the "call log" notification.
+    private QueryHandler mQueryHandler = null;
+    private static final int CALL_LOG_TOKEN = -1;
+    private static final int CONTACT_TOKEN = -2;
+
+    /**
+     * Private constructor (this is a singleton).
+     * @see init()
+     */
+    private NotificationMgr(PhoneGlobals app) {
+        mApp = app;
+        mContext = app;
+        mNotificationManager =
+                (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
+        mStatusBarManager =
+                (StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
+        mPowerManager =
+                (PowerManager) app.getSystemService(Context.POWER_SERVICE);
+        mPhone = app.phone;  // TODO: better style to use mCM.getDefaultPhone() everywhere instead
+        mCM = app.mCM;
+        statusBarHelper = new StatusBarHelper();
+    }
+
+    /**
+     * Initialize the singleton NotificationMgr instance.
+     *
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     * From then on, the NotificationMgr instance is available via the
+     * PhoneApp's public "notificationMgr" field, which is why there's no
+     * getInstance() method here.
+     */
+    /* package */ static NotificationMgr init(PhoneGlobals app) {
+        synchronized (NotificationMgr.class) {
+            if (sInstance == null) {
+                sInstance = new NotificationMgr(app);
+                // Update the notifications that need to be touched at startup.
+                sInstance.updateNotificationsAtStartup();
+            } else {
+                Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /**
+     * Helper class that's a wrapper around the framework's
+     * StatusBarManager.disable() API.
+     *
+     * This class is used to control features like:
+     *
+     *   - Disabling the status bar "notification windowshade"
+     *     while the in-call UI is up
+     *
+     *   - Disabling notification alerts (audible or vibrating)
+     *     while a phone call is active
+     *
+     *   - Disabling navigation via the system bar (the "soft buttons" at
+     *     the bottom of the screen on devices with no hard buttons)
+     *
+     * We control these features through a single point of control to make
+     * sure that the various StatusBarManager.disable() calls don't
+     * interfere with each other.
+     */
+    public class StatusBarHelper {
+        // Current desired state of status bar / system bar behavior
+        private boolean mIsNotificationEnabled = true;
+        private boolean mIsExpandedViewEnabled = true;
+        private boolean mIsSystemBarNavigationEnabled = true;
+
+        private StatusBarHelper () {
+        }
+
+        /**
+         * Enables or disables auditory / vibrational alerts.
+         *
+         * (We disable these any time a voice call is active, regardless
+         * of whether or not the in-call UI is visible.)
+         */
+        public void enableNotificationAlerts(boolean enable) {
+            if (mIsNotificationEnabled != enable) {
+                mIsNotificationEnabled = enable;
+                updateStatusBar();
+            }
+        }
+
+        /**
+         * Enables or disables the expanded view of the status bar
+         * (i.e. the ability to pull down the "notification windowshade").
+         *
+         * (This feature is disabled by the InCallScreen while the in-call
+         * UI is active.)
+         */
+        public void enableExpandedView(boolean enable) {
+            if (mIsExpandedViewEnabled != enable) {
+                mIsExpandedViewEnabled = enable;
+                updateStatusBar();
+            }
+        }
+
+        /**
+         * Enables or disables the navigation via the system bar (the
+         * "soft buttons" at the bottom of the screen)
+         *
+         * (This feature is disabled while an incoming call is ringing,
+         * because it's easy to accidentally touch the system bar while
+         * pulling the phone out of your pocket.)
+         */
+        public void enableSystemBarNavigation(boolean enable) {
+            if (mIsSystemBarNavigationEnabled != enable) {
+                mIsSystemBarNavigationEnabled = enable;
+                updateStatusBar();
+            }
+        }
+
+        /**
+         * Updates the status bar to reflect the current desired state.
+         */
+        private void updateStatusBar() {
+            int state = StatusBarManager.DISABLE_NONE;
+
+            if (!mIsExpandedViewEnabled) {
+                state |= StatusBarManager.DISABLE_EXPAND;
+            }
+            if (!mIsNotificationEnabled) {
+                state |= StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
+            }
+            if (!mIsSystemBarNavigationEnabled) {
+                // Disable *all* possible navigation via the system bar.
+                state |= StatusBarManager.DISABLE_HOME;
+                state |= StatusBarManager.DISABLE_RECENT;
+                state |= StatusBarManager.DISABLE_BACK;
+            }
+
+            if (DBG) log("updateStatusBar: state = 0x" + Integer.toHexString(state));
+            mStatusBarManager.disable(state);
+        }
+    }
+
+    /**
+     * Makes sure phone-related notifications are up to date on a
+     * freshly-booted device.
+     */
+    private void updateNotificationsAtStartup() {
+        if (DBG) log("updateNotificationsAtStartup()...");
+
+        // instantiate query handler
+        mQueryHandler = new QueryHandler(mContext.getContentResolver());
+
+        // setup query spec, look for all Missed calls that are new.
+        StringBuilder where = new StringBuilder("type=");
+        where.append(Calls.MISSED_TYPE);
+        where.append(" AND new=1");
+
+        // start the query
+        if (DBG) log("- start call log query...");
+        mQueryHandler.startQuery(CALL_LOG_TOKEN, null, Calls.CONTENT_URI,  CALL_LOG_PROJECTION,
+                where.toString(), null, Calls.DEFAULT_SORT_ORDER);
+
+        // Update (or cancel) the in-call notification
+        if (DBG) log("- updating in-call notification at startup...");
+        updateInCallNotification();
+
+        // Depend on android.app.StatusBarManager to be set to
+        // disable(DISABLE_NONE) upon startup.  This will be the
+        // case even if the phone app crashes.
+    }
+
+    /** The projection to use when querying the phones table */
+    static final String[] PHONES_PROJECTION = new String[] {
+        PhoneLookup.NUMBER,
+        PhoneLookup.DISPLAY_NAME,
+        PhoneLookup._ID
+    };
+
+    /**
+     * Class used to run asynchronous queries to re-populate the notifications we care about.
+     * There are really 3 steps to this:
+     *  1. Find the list of missed calls
+     *  2. For each call, run a query to retrieve the caller's name.
+     *  3. For each caller, try obtaining photo.
+     */
+    private class QueryHandler extends AsyncQueryHandler
+            implements ContactsAsyncHelper.OnImageLoadCompleteListener {
+
+        /**
+         * Used to store relevant fields for the Missed Call
+         * notifications.
+         */
+        private class NotificationInfo {
+            public String name;
+            public String number;
+            public int presentation;
+            /**
+             * Type of the call. {@link android.provider.CallLog.Calls#INCOMING_TYPE}
+             * {@link android.provider.CallLog.Calls#OUTGOING_TYPE}, or
+             * {@link android.provider.CallLog.Calls#MISSED_TYPE}.
+             */
+            public String type;
+            public long date;
+        }
+
+        public QueryHandler(ContentResolver cr) {
+            super(cr);
+        }
+
+        /**
+         * Handles the query results.
+         */
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+            // TODO: it would be faster to use a join here, but for the purposes
+            // of this small record set, it should be ok.
+
+            // Note that CursorJoiner is not useable here because the number
+            // comparisons are not strictly equals; the comparisons happen in
+            // the SQL function PHONE_NUMBERS_EQUAL, which is not available for
+            // the CursorJoiner.
+
+            // Executing our own query is also feasible (with a join), but that
+            // will require some work (possibly destabilizing) in Contacts
+            // Provider.
+
+            // At this point, we will execute subqueries on each row just as
+            // CallLogActivity.java does.
+            switch (token) {
+                case CALL_LOG_TOKEN:
+                    if (DBG) log("call log query complete.");
+
+                    // initial call to retrieve the call list.
+                    if (cursor != null) {
+                        while (cursor.moveToNext()) {
+                            // for each call in the call log list, create
+                            // the notification object and query contacts
+                            NotificationInfo n = getNotificationInfo (cursor);
+
+                            if (DBG) log("query contacts for number: " + n.number);
+
+                            mQueryHandler.startQuery(CONTACT_TOKEN, n,
+                                    Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, n.number),
+                                    PHONES_PROJECTION, null, null, PhoneLookup.NUMBER);
+                        }
+
+                        if (DBG) log("closing call log cursor.");
+                        cursor.close();
+                    }
+                    break;
+                case CONTACT_TOKEN:
+                    if (DBG) log("contact query complete.");
+
+                    // subqueries to get the caller name.
+                    if ((cursor != null) && (cookie != null)){
+                        NotificationInfo n = (NotificationInfo) cookie;
+
+                        Uri personUri = null;
+                        if (cursor.moveToFirst()) {
+                            n.name = cursor.getString(
+                                    cursor.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME));
+                            long person_id = cursor.getLong(
+                                    cursor.getColumnIndexOrThrow(PhoneLookup._ID));
+                            if (DBG) {
+                                log("contact :" + n.name + " found for phone: " + n.number
+                                        + ". id : " + person_id);
+                            }
+                            personUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, person_id);
+                        }
+
+                        if (personUri != null) {
+                            if (DBG) {
+                                log("Start obtaining picture for the missed call. Uri: "
+                                        + personUri);
+                            }
+                            // Now try to obtain a photo for this person.
+                            // ContactsAsyncHelper will do that and call onImageLoadComplete()
+                            // after that.
+                            ContactsAsyncHelper.startObtainPhotoAsync(
+                                    0, mContext, personUri, this, n);
+                        } else {
+                            if (DBG) {
+                                log("Failed to find Uri for obtaining photo."
+                                        + " Just send notification without it.");
+                            }
+                            // We couldn't find person Uri, so we're sure we cannot obtain a photo.
+                            // Call notifyMissedCall() right now.
+                            notifyMissedCall(n.name, n.number, n.type, null, null, n.date);
+                        }
+
+                        if (DBG) log("closing contact cursor.");
+                        cursor.close();
+                    }
+                    break;
+                default:
+            }
+        }
+
+        @Override
+        public void onImageLoadComplete(
+                int token, Drawable photo, Bitmap photoIcon, Object cookie) {
+            if (DBG) log("Finished loading image: " + photo);
+            NotificationInfo n = (NotificationInfo) cookie;
+            notifyMissedCall(n.name, n.number, n.type, photo, photoIcon, n.date);
+        }
+
+        /**
+         * Factory method to generate a NotificationInfo object given a
+         * cursor from the call log table.
+         */
+        private final NotificationInfo getNotificationInfo(Cursor cursor) {
+            NotificationInfo n = new NotificationInfo();
+            n.name = null;
+            n.number = cursor.getString(cursor.getColumnIndexOrThrow(Calls.NUMBER));
+            n.presentation = cursor.getInt(cursor.getColumnIndexOrThrow(Calls.NUMBER_PRESENTATION));
+            n.type = cursor.getString(cursor.getColumnIndexOrThrow(Calls.TYPE));
+            n.date = cursor.getLong(cursor.getColumnIndexOrThrow(Calls.DATE));
+
+            // make sure we update the number depending upon saved values in
+            // CallLog.addCall().  If either special values for unknown or
+            // private number are detected, we need to hand off the message
+            // to the missed call notification.
+            if (n.presentation != Calls.PRESENTATION_ALLOWED) {
+                n.number = null;
+            }
+
+            if (DBG) log("NotificationInfo constructed for number: " + n.number);
+
+            return n;
+        }
+    }
+
+    /**
+     * Configures a Notification to emit the blinky green message-waiting/
+     * missed-call signal.
+     */
+    private static void configureLedNotification(Notification note) {
+        note.flags |= Notification.FLAG_SHOW_LIGHTS;
+        note.defaults |= Notification.DEFAULT_LIGHTS;
+    }
+
+    /**
+     * Displays a notification about a missed call.
+     *
+     * @param name the contact name.
+     * @param number the phone number. Note that this may be a non-callable String like "Unknown",
+     * or "Private Number", which possibly come from methods like
+     * {@link PhoneUtils#modifyForSpecialCnapCases(Context, CallerInfo, String, int)}.
+     * @param type the type of the call. {@link android.provider.CallLog.Calls#INCOMING_TYPE}
+     * {@link android.provider.CallLog.Calls#OUTGOING_TYPE}, or
+     * {@link android.provider.CallLog.Calls#MISSED_TYPE}
+     * @param photo picture which may be used for the notification (when photoIcon is null).
+     * This also can be null when the picture itself isn't available. If photoIcon is available
+     * it should be prioritized (because this may be too huge for notification).
+     * See also {@link ContactsAsyncHelper}.
+     * @param photoIcon picture which should be used for the notification. Can be null. This is
+     * the most suitable for {@link android.app.Notification.Builder#setLargeIcon(Bitmap)}, this
+     * should be used when non-null.
+     * @param date the time when the missed call happened
+     */
+    /* package */ void notifyMissedCall(
+            String name, String number, String type, Drawable photo, Bitmap photoIcon, long date) {
+
+        // When the user clicks this notification, we go to the call log.
+        final Intent callLogIntent = PhoneGlobals.createCallLogIntent();
+
+        // Never display the missed call notification on non-voice-capable
+        // devices, even if the device does somehow manage to get an
+        // incoming call.
+        if (!PhoneGlobals.sVoiceCapable) {
+            if (DBG) log("notifyMissedCall: non-voice-capable device, not posting notification");
+            return;
+        }
+
+        if (VDBG) {
+            log("notifyMissedCall(). name: " + name + ", number: " + number
+                + ", label: " + type + ", photo: " + photo + ", photoIcon: " + photoIcon
+                + ", date: " + date);
+        }
+
+        // title resource id
+        int titleResId;
+        // the text in the notification's line 1 and 2.
+        String expandedText, callName;
+
+        // increment number of missed calls.
+        mNumberMissedCalls++;
+
+        // get the name for the ticker text
+        // i.e. "Missed call from <caller name or number>"
+        if (name != null && TextUtils.isGraphic(name)) {
+            callName = name;
+        } else if (!TextUtils.isEmpty(number)){
+            callName = number;
+        } else {
+            // use "unknown" if the caller is unidentifiable.
+            callName = mContext.getString(R.string.unknown);
+        }
+
+        // display the first line of the notification:
+        // 1 missed call: call name
+        // more than 1 missed call: <number of calls> + "missed calls"
+        if (mNumberMissedCalls == 1) {
+            titleResId = R.string.notification_missedCallTitle;
+            expandedText = callName;
+        } else {
+            titleResId = R.string.notification_missedCallsTitle;
+            expandedText = mContext.getString(R.string.notification_missedCallsMsg,
+                    mNumberMissedCalls);
+        }
+
+        Notification.Builder builder = new Notification.Builder(mContext);
+        builder.setSmallIcon(android.R.drawable.stat_notify_missed_call)
+                .setTicker(mContext.getString(R.string.notification_missedCallTicker, callName))
+                .setWhen(date)
+                .setContentTitle(mContext.getText(titleResId))
+                .setContentText(expandedText)
+                .setContentIntent(PendingIntent.getActivity(mContext, 0, callLogIntent, 0))
+                .setAutoCancel(true)
+                .setDeleteIntent(createClearMissedCallsIntent());
+
+        // Simple workaround for issue 6476275; refrain having actions when the given number seems
+        // not a real one but a non-number which was embedded by methods outside (like
+        // PhoneUtils#modifyForSpecialCnapCases()).
+        // TODO: consider removing equals() checks here, and modify callers of this method instead.
+        if (mNumberMissedCalls == 1
+                && !TextUtils.isEmpty(number)
+                && !TextUtils.equals(number, mContext.getString(R.string.private_num))
+                && !TextUtils.equals(number, mContext.getString(R.string.unknown))){
+            if (DBG) log("Add actions with the number " + number);
+
+            builder.addAction(R.drawable.stat_sys_phone_call,
+                    mContext.getString(R.string.notification_missedCall_call_back),
+                    PhoneGlobals.getCallBackPendingIntent(mContext, number));
+
+            builder.addAction(R.drawable.ic_text_holo_dark,
+                    mContext.getString(R.string.notification_missedCall_message),
+                    PhoneGlobals.getSendSmsFromNotificationPendingIntent(mContext, number));
+
+            if (photoIcon != null) {
+                builder.setLargeIcon(photoIcon);
+            } else if (photo instanceof BitmapDrawable) {
+                builder.setLargeIcon(((BitmapDrawable) photo).getBitmap());
+            }
+        } else {
+            if (DBG) {
+                log("Suppress actions. number: " + number + ", missedCalls: " + mNumberMissedCalls);
+            }
+        }
+
+        Notification notification = builder.getNotification();
+        configureLedNotification(notification);
+        mNotificationManager.notify(MISSED_CALL_NOTIFICATION, notification);
+    }
+
+    /** Returns an intent to be invoked when the missed call notification is cleared. */
+    private PendingIntent createClearMissedCallsIntent() {
+        Intent intent = new Intent(mContext, ClearMissedCallsService.class);
+        intent.setAction(ClearMissedCallsService.ACTION_CLEAR_MISSED_CALLS);
+        return PendingIntent.getService(mContext, 0, intent, 0);
+    }
+
+    /**
+     * Cancels the "missed call" notification.
+     *
+     * @see ITelephony.cancelMissedCallsNotification()
+     */
+    void cancelMissedCallNotification() {
+        // reset the number of missed calls to 0.
+        mNumberMissedCalls = 0;
+        mNotificationManager.cancel(MISSED_CALL_NOTIFICATION);
+    }
+
+    private void notifySpeakerphone() {
+        if (!mShowingSpeakerphoneIcon) {
+            mStatusBarManager.setIcon("speakerphone", android.R.drawable.stat_sys_speakerphone, 0,
+                    mContext.getString(R.string.accessibility_speakerphone_enabled));
+            mShowingSpeakerphoneIcon = true;
+        }
+    }
+
+    private void cancelSpeakerphone() {
+        if (mShowingSpeakerphoneIcon) {
+            mStatusBarManager.removeIcon("speakerphone");
+            mShowingSpeakerphoneIcon = false;
+        }
+    }
+
+    /**
+     * Shows or hides the "speakerphone" notification in the status bar,
+     * based on the actual current state of the speaker.
+     *
+     * If you already know the current speaker state (e.g. if you just
+     * called AudioManager.setSpeakerphoneOn() yourself) then you should
+     * directly call {@link #updateSpeakerNotification(boolean)} instead.
+     *
+     * (But note that the status bar icon is *never* shown while the in-call UI
+     * is active; it only appears if you bail out to some other activity.)
+     */
+    private void updateSpeakerNotification() {
+        AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        boolean showNotification =
+                (mPhone.getState() == PhoneConstants.State.OFFHOOK) && audioManager.isSpeakerphoneOn();
+
+        if (DBG) log(showNotification
+                     ? "updateSpeakerNotification: speaker ON"
+                     : "updateSpeakerNotification: speaker OFF (or not offhook)");
+
+        updateSpeakerNotification(showNotification);
+    }
+
+    /**
+     * Shows or hides the "speakerphone" notification in the status bar.
+     *
+     * @param showNotification if true, call notifySpeakerphone();
+     *                         if false, call cancelSpeakerphone().
+     *
+     * Use {@link updateSpeakerNotification()} to update the status bar
+     * based on the actual current state of the speaker.
+     *
+     * (But note that the status bar icon is *never* shown while the in-call UI
+     * is active; it only appears if you bail out to some other activity.)
+     */
+    public void updateSpeakerNotification(boolean showNotification) {
+        if (DBG) log("updateSpeakerNotification(" + showNotification + ")...");
+
+        // Regardless of the value of the showNotification param, suppress
+        // the status bar icon if the the InCallScreen is the foreground
+        // activity, since the in-call UI already provides an onscreen
+        // indication of the speaker state.  (This reduces clutter in the
+        // status bar.)
+        if (mApp.isShowingCallScreen()) {
+            cancelSpeakerphone();
+            return;
+        }
+
+        if (showNotification) {
+            notifySpeakerphone();
+        } else {
+            cancelSpeakerphone();
+        }
+    }
+
+    private void notifyMute() {
+        if (!mShowingMuteIcon) {
+            mStatusBarManager.setIcon("mute", android.R.drawable.stat_notify_call_mute, 0,
+                    mContext.getString(R.string.accessibility_call_muted));
+            mShowingMuteIcon = true;
+        }
+    }
+
+    private void cancelMute() {
+        if (mShowingMuteIcon) {
+            mStatusBarManager.removeIcon("mute");
+            mShowingMuteIcon = false;
+        }
+    }
+
+    /**
+     * Shows or hides the "mute" notification in the status bar,
+     * based on the current mute state of the Phone.
+     *
+     * (But note that the status bar icon is *never* shown while the in-call UI
+     * is active; it only appears if you bail out to some other activity.)
+     */
+    void updateMuteNotification() {
+        // Suppress the status bar icon if the the InCallScreen is the
+        // foreground activity, since the in-call UI already provides an
+        // onscreen indication of the mute state.  (This reduces clutter
+        // in the status bar.)
+        if (mApp.isShowingCallScreen()) {
+            cancelMute();
+            return;
+        }
+
+        if ((mCM.getState() == PhoneConstants.State.OFFHOOK) && PhoneUtils.getMute()) {
+            if (DBG) log("updateMuteNotification: MUTED");
+            notifyMute();
+        } else {
+            if (DBG) log("updateMuteNotification: not muted (or not offhook)");
+            cancelMute();
+        }
+    }
+
+    /**
+     * Updates the phone app's status bar notification based on the
+     * current telephony state, or cancels the notification if the phone
+     * is totally idle.
+     *
+     * This method will never actually launch the incoming-call UI.
+     * (Use updateNotificationAndLaunchIncomingCallUi() for that.)
+     */
+    public void updateInCallNotification() {
+        // allowFullScreenIntent=false means *don't* allow the incoming
+        // call UI to be launched.
+        updateInCallNotification(false);
+    }
+
+    /**
+     * Updates the phone app's status bar notification *and* launches the
+     * incoming call UI in response to a new incoming call.
+     *
+     * This is just like updateInCallNotification(), with one exception:
+     * If an incoming call is ringing (or call-waiting), the notification
+     * will also include a "fullScreenIntent" that will cause the
+     * InCallScreen to be launched immediately, unless the current
+     * foreground activity is marked as "immersive".
+     *
+     * (This is the mechanism that actually brings up the incoming call UI
+     * when we receive a "new ringing connection" event from the telephony
+     * layer.)
+     *
+     * Watch out: this method should ONLY be called directly from the code
+     * path in CallNotifier that handles the "new ringing connection"
+     * event from the telephony layer.  All other places that update the
+     * in-call notification (like for phone state changes) should call
+     * updateInCallNotification() instead.  (This ensures that we don't
+     * end up launching the InCallScreen multiple times for a single
+     * incoming call, which could cause slow responsiveness and/or visible
+     * glitches.)
+     *
+     * Also note that this method is safe to call even if the phone isn't
+     * actually ringing (or, more likely, if an incoming call *was*
+     * ringing briefly but then disconnected).  In that case, we'll simply
+     * update or cancel the in-call notification based on the current
+     * phone state.
+     *
+     * @see #updateInCallNotification(boolean)
+     */
+    public void updateNotificationAndLaunchIncomingCallUi() {
+        // Set allowFullScreenIntent=true to indicate that we *should*
+        // launch the incoming call UI if necessary.
+        updateInCallNotification(true);
+    }
+
+    /**
+     * Helper method for updateInCallNotification() and
+     * updateNotificationAndLaunchIncomingCallUi(): Update the phone app's
+     * status bar notification based on the current telephony state, or
+     * cancels the notification if the phone is totally idle.
+     *
+     * @param allowFullScreenIntent If true, *and* an incoming call is
+     *   ringing, the notification will include a "fullScreenIntent"
+     *   pointing at the InCallScreen (which will cause the InCallScreen
+     *   to be launched.)
+     *   Watch out: This should be set to true *only* when directly
+     *   handling the "new ringing connection" event from the telephony
+     *   layer (see updateNotificationAndLaunchIncomingCallUi().)
+     */
+    private void updateInCallNotification(boolean allowFullScreenIntent) {
+        int resId;
+        if (DBG) log("updateInCallNotification(allowFullScreenIntent = "
+                     + allowFullScreenIntent + ")...");
+
+        // Never display the "ongoing call" notification on
+        // non-voice-capable devices, even if the phone is actually
+        // offhook (like during a non-interactive OTASP call.)
+        if (!PhoneGlobals.sVoiceCapable) {
+            if (DBG) log("- non-voice-capable device; suppressing notification.");
+            return;
+        }
+
+        // If the phone is idle, completely clean up all call-related
+        // notifications.
+        if (mCM.getState() == PhoneConstants.State.IDLE) {
+            cancelInCall();
+            cancelMute();
+            cancelSpeakerphone();
+            return;
+        }
+
+        final boolean hasRingingCall = mCM.hasActiveRingingCall();
+        final boolean hasActiveCall = mCM.hasActiveFgCall();
+        final boolean hasHoldingCall = mCM.hasActiveBgCall();
+        if (DBG) {
+            log("  - hasRingingCall = " + hasRingingCall);
+            log("  - hasActiveCall = " + hasActiveCall);
+            log("  - hasHoldingCall = " + hasHoldingCall);
+        }
+
+        // Suppress the in-call notification if the InCallScreen is the
+        // foreground activity, since it's already obvious that you're on a
+        // call.  (The status bar icon is needed only if you navigate *away*
+        // from the in-call UI.)
+        boolean suppressNotification = mApp.isShowingCallScreen();
+        // if (DBG) log("- suppressNotification: initial value: " + suppressNotification);
+
+        // ...except for a couple of cases where we *never* suppress the
+        // notification:
+        //
+        //   - If there's an incoming ringing call: always show the
+        //     notification, since the in-call notification is what actually
+        //     launches the incoming call UI in the first place (see
+        //     notification.fullScreenIntent below.)  This makes sure that we'll
+        //     correctly handle the case where a new incoming call comes in but
+        //     the InCallScreen is already in the foreground.
+        if (hasRingingCall) suppressNotification = false;
+
+        //   - If "voice privacy" mode is active: always show the notification,
+        //     since that's the only "voice privacy" indication we have.
+        boolean enhancedVoicePrivacy = mApp.notifier.getVoicePrivacyState();
+        // if (DBG) log("updateInCallNotification: enhancedVoicePrivacy = " + enhancedVoicePrivacy);
+        if (enhancedVoicePrivacy) suppressNotification = false;
+
+        if (suppressNotification) {
+            if (DBG) log("- suppressNotification = true; reducing clutter in status bar...");
+            cancelInCall();
+            // Suppress the mute and speaker status bar icons too
+            // (also to reduce clutter in the status bar.)
+            cancelSpeakerphone();
+            cancelMute();
+            return;
+        }
+
+        // Display the appropriate icon in the status bar,
+        // based on the current phone and/or bluetooth state.
+
+        if (hasRingingCall) {
+            // There's an incoming ringing call.
+            resId = R.drawable.stat_sys_phone_call;
+        } else if (!hasActiveCall && hasHoldingCall) {
+            // There's only one call, and it's on hold.
+            if (enhancedVoicePrivacy) {
+                resId = R.drawable.stat_sys_vp_phone_call_on_hold;
+            } else {
+                resId = R.drawable.stat_sys_phone_call_on_hold;
+            }
+        } else {
+            if (enhancedVoicePrivacy) {
+                resId = R.drawable.stat_sys_vp_phone_call;
+            } else {
+                resId = R.drawable.stat_sys_phone_call;
+            }
+        }
+
+        // Note we can't just bail out now if (resId == mInCallResId),
+        // since even if the status icon hasn't changed, some *other*
+        // notification-related info may be different from the last time
+        // we were here (like the caller-id info of the foreground call,
+        // if the user swapped calls...)
+
+        if (DBG) log("- Updating status bar icon: resId = " + resId);
+        mInCallResId = resId;
+
+        // Even if both lines are in use, we only show a single item in
+        // the expanded Notifications UI.  It's labeled "Ongoing call"
+        // (or "On hold" if there's only one call, and it's on hold.)
+        // Also, we don't have room to display caller-id info from two
+        // different calls.  So if both lines are in use, display info
+        // from the foreground call.  And if there's a ringing call,
+        // display that regardless of the state of the other calls.
+
+        Call currentCall;
+        if (hasRingingCall) {
+            currentCall = mCM.getFirstActiveRingingCall();
+        } else if (hasActiveCall) {
+            currentCall = mCM.getActiveFgCall();
+        } else {
+            currentCall = mCM.getFirstActiveBgCall();
+        }
+        Connection currentConn = currentCall.getEarliestConnection();
+
+        final Notification.Builder builder = new Notification.Builder(mContext);
+        builder.setSmallIcon(mInCallResId).setOngoing(true);
+
+        // PendingIntent that can be used to launch the InCallScreen.  The
+        // system fires off this intent if the user pulls down the windowshade
+        // and clicks the notification's expanded view.  It's also used to
+        // launch the InCallScreen immediately when when there's an incoming
+        // call (see the "fullScreenIntent" field below).
+        PendingIntent inCallPendingIntent =
+                PendingIntent.getActivity(mContext, 0,
+                                          PhoneGlobals.createInCallIntent(), 0);
+        builder.setContentIntent(inCallPendingIntent);
+
+        // Update icon on the left of the notification.
+        // - If it is directly available from CallerInfo, we'll just use that.
+        // - If it is not, use the same icon as in the status bar.
+        CallerInfo callerInfo = null;
+        if (currentConn != null) {
+            Object o = currentConn.getUserData();
+            if (o instanceof CallerInfo) {
+                callerInfo = (CallerInfo) o;
+            } else if (o instanceof PhoneUtils.CallerInfoToken) {
+                callerInfo = ((PhoneUtils.CallerInfoToken) o).currentInfo;
+            } else {
+                Log.w(LOG_TAG, "CallerInfo isn't available while Call object is available.");
+            }
+        }
+        boolean largeIconWasSet = false;
+        if (callerInfo != null) {
+            // In most cases, the user will see the notification after CallerInfo is already
+            // available, so photo will be available from this block.
+            if (callerInfo.isCachedPhotoCurrent) {
+                // .. and in that case CallerInfo's cachedPhotoIcon should also be available.
+                // If it happens not, then try using cachedPhoto, assuming Drawable coming from
+                // ContactProvider will be BitmapDrawable.
+                if (callerInfo.cachedPhotoIcon != null) {
+                    builder.setLargeIcon(callerInfo.cachedPhotoIcon);
+                    largeIconWasSet = true;
+                } else if (callerInfo.cachedPhoto instanceof BitmapDrawable) {
+                    if (DBG) log("- BitmapDrawable found for large icon");
+                    Bitmap bitmap = ((BitmapDrawable) callerInfo.cachedPhoto).getBitmap();
+                    builder.setLargeIcon(bitmap);
+                    largeIconWasSet = true;
+                } else {
+                    if (DBG) {
+                        log("- Failed to fetch icon from CallerInfo's cached photo."
+                                + " (cachedPhotoIcon: " + callerInfo.cachedPhotoIcon
+                                + ", cachedPhoto: " + callerInfo.cachedPhoto + ")."
+                                + " Ignore it.");
+                    }
+                }
+            }
+
+            if (!largeIconWasSet && callerInfo.photoResource > 0) {
+                if (DBG) {
+                    log("- BitmapDrawable nor person Id not found for large icon."
+                            + " Use photoResource: " + callerInfo.photoResource);
+                }
+                Drawable drawable =
+                        mContext.getResources().getDrawable(callerInfo.photoResource);
+                if (drawable instanceof BitmapDrawable) {
+                    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
+                    builder.setLargeIcon(bitmap);
+                    largeIconWasSet = true;
+                } else {
+                    if (DBG) {
+                        log("- PhotoResource was found but it didn't return BitmapDrawable."
+                                + " Ignore it");
+                    }
+                }
+            }
+        } else {
+            if (DBG) log("- CallerInfo not found. Use the same icon as in the status bar.");
+        }
+
+        // Failed to fetch Bitmap.
+        if (!largeIconWasSet && DBG) {
+            log("- No useful Bitmap was found for the photo."
+                    + " Use the same icon as in the status bar.");
+        }
+
+        // If the connection is valid, then build what we need for the
+        // content text of notification, and start the chronometer.
+        // Otherwise, don't bother and just stick with content title.
+        if (currentConn != null) {
+            if (DBG) log("- Updating context text and chronometer.");
+            if (hasRingingCall) {
+                // Incoming call is ringing.
+                builder.setContentText(mContext.getString(R.string.notification_incoming_call));
+                builder.setUsesChronometer(false);
+            } else if (hasHoldingCall && !hasActiveCall) {
+                // Only one call, and it's on hold.
+                builder.setContentText(mContext.getString(R.string.notification_on_hold));
+                builder.setUsesChronometer(false);
+            } else {
+                // We show the elapsed time of the current call using Chronometer.
+                builder.setUsesChronometer(true);
+
+                // Determine the "start time" of the current connection.
+                //   We can't use currentConn.getConnectTime(), because (1) that's
+                // in the currentTimeMillis() time base, and (2) it's zero when
+                // the phone first goes off hook, since the getConnectTime counter
+                // doesn't start until the DIALING -> ACTIVE transition.
+                //   Instead we start with the current connection's duration,
+                // and translate that into the elapsedRealtime() timebase.
+                long callDurationMsec = currentConn.getDurationMillis();
+                builder.setWhen(System.currentTimeMillis() - callDurationMsec);
+
+                int contextTextId = R.string.notification_ongoing_call;
+
+                Call call = mCM.getActiveFgCall();
+                if (TelephonyCapabilities.canDistinguishDialingAndConnected(
+                        call.getPhone().getPhoneType()) && call.isDialingOrAlerting()) {
+                  contextTextId = R.string.notification_dialing;
+                }
+
+                builder.setContentText(mContext.getString(contextTextId));
+            }
+        } else if (DBG) {
+            Log.w(LOG_TAG, "updateInCallNotification: null connection, can't set exp view line 1.");
+        }
+
+        // display conference call string if this call is a conference
+        // call, otherwise display the connection information.
+
+        // Line 2 of the expanded view (smaller text).  This is usually a
+        // contact name or phone number.
+        String expandedViewLine2 = "";
+        // TODO: it may not make sense for every point to make separate
+        // checks for isConferenceCall, so we need to think about
+        // possibly including this in startGetCallerInfo or some other
+        // common point.
+        if (PhoneUtils.isConferenceCall(currentCall)) {
+            // if this is a conference call, just use that as the caller name.
+            expandedViewLine2 = mContext.getString(R.string.card_title_conf_call);
+        } else {
+            // If necessary, start asynchronous query to do the caller-id lookup.
+            PhoneUtils.CallerInfoToken cit =
+                PhoneUtils.startGetCallerInfo(mContext, currentCall, this, this);
+            expandedViewLine2 = PhoneUtils.getCompactNameFromCallerInfo(cit.currentInfo, mContext);
+            // Note: For an incoming call, the very first time we get here we
+            // won't have a contact name yet, since we only just started the
+            // caller-id query.  So expandedViewLine2 will start off as a raw
+            // phone number, but we'll update it very quickly when the query
+            // completes (see onQueryComplete() below.)
+        }
+
+        if (DBG) log("- Updating expanded view: line 2 '" + /*expandedViewLine2*/ "xxxxxxx" + "'");
+        builder.setContentTitle(expandedViewLine2);
+
+        // TODO: We also need to *update* this notification in some cases,
+        // like when a call ends on one line but the other is still in use
+        // (ie. make sure the caller info here corresponds to the active
+        // line), and maybe even when the user swaps calls (ie. if we only
+        // show info here for the "current active call".)
+
+        // Activate a couple of special Notification features if an
+        // incoming call is ringing:
+        if (hasRingingCall) {
+            if (DBG) log("- Using hi-pri notification for ringing call!");
+
+            // This is a high-priority event that should be shown even if the
+            // status bar is hidden or if an immersive activity is running.
+            builder.setPriority(Notification.PRIORITY_HIGH);
+
+            // If an immersive activity is running, we have room for a single
+            // line of text in the small notification popup window.
+            // We use expandedViewLine2 for this (i.e. the name or number of
+            // the incoming caller), since that's more relevant than
+            // expandedViewLine1 (which is something generic like "Incoming
+            // call".)
+            builder.setTicker(expandedViewLine2);
+
+            if (allowFullScreenIntent) {
+                // Ok, we actually want to launch the incoming call
+                // UI at this point (in addition to simply posting a notification
+                // to the status bar).  Setting fullScreenIntent will cause
+                // the InCallScreen to be launched immediately *unless* the
+                // current foreground activity is marked as "immersive".
+                if (DBG) log("- Setting fullScreenIntent: " + inCallPendingIntent);
+                builder.setFullScreenIntent(inCallPendingIntent, true);
+
+                // Ugly hack alert:
+                //
+                // The NotificationManager has the (undocumented) behavior
+                // that it will *ignore* the fullScreenIntent field if you
+                // post a new Notification that matches the ID of one that's
+                // already active.  Unfortunately this is exactly what happens
+                // when you get an incoming call-waiting call:  the
+                // "ongoing call" notification is already visible, so the
+                // InCallScreen won't get launched in this case!
+                // (The result: if you bail out of the in-call UI while on a
+                // call and then get a call-waiting call, the incoming call UI
+                // won't come up automatically.)
+                //
+                // The workaround is to just notice this exact case (this is a
+                // call-waiting call *and* the InCallScreen is not in the
+                // foreground) and manually cancel the in-call notification
+                // before (re)posting it.
+                //
+                // TODO: there should be a cleaner way of avoiding this
+                // problem (see discussion in bug 3184149.)
+                Call ringingCall = mCM.getFirstActiveRingingCall();
+                if ((ringingCall.getState() == Call.State.WAITING) && !mApp.isShowingCallScreen()) {
+                    Log.i(LOG_TAG, "updateInCallNotification: call-waiting! force relaunch...");
+                    // Cancel the IN_CALL_NOTIFICATION immediately before
+                    // (re)posting it; this seems to force the
+                    // NotificationManager to launch the fullScreenIntent.
+                    mNotificationManager.cancel(IN_CALL_NOTIFICATION);
+                }
+            }
+        } else { // not ringing call
+            // Make the notification prioritized over the other normal notifications.
+            builder.setPriority(Notification.PRIORITY_HIGH);
+
+            // TODO: use "if (DBG)" for this comment.
+            log("Will show \"hang-up\" action in the ongoing active call Notification");
+            // TODO: use better asset.
+            builder.addAction(R.drawable.stat_sys_phone_call_end,
+                    mContext.getText(R.string.notification_action_end_call),
+                    PhoneGlobals.createHangUpOngoingCallPendingIntent(mContext));
+        }
+
+        Notification notification = builder.getNotification();
+        if (DBG) log("Notifying IN_CALL_NOTIFICATION: " + notification);
+        mNotificationManager.notify(IN_CALL_NOTIFICATION, notification);
+
+        // Finally, refresh the mute and speakerphone notifications (since
+        // some phone state changes can indirectly affect the mute and/or
+        // speaker state).
+        updateSpeakerNotification();
+        updateMuteNotification();
+    }
+
+    /**
+     * Implemented for CallerInfoAsyncQuery.OnQueryCompleteListener interface.
+     * refreshes the contentView when called.
+     */
+    @Override
+    public void onQueryComplete(int token, Object cookie, CallerInfo ci){
+        if (DBG) log("CallerInfo query complete (for NotificationMgr), "
+                     + "updating in-call notification..");
+        if (DBG) log("- cookie: " + cookie);
+        if (DBG) log("- ci: " + ci);
+
+        if (cookie == this) {
+            // Ok, this is the caller-id query we fired off in
+            // updateInCallNotification(), presumably when an incoming call
+            // first appeared.  If the caller-id info matched any contacts,
+            // compactName should now be a real person name rather than a raw
+            // phone number:
+            if (DBG) log("- compactName is now: "
+                         + PhoneUtils.getCompactNameFromCallerInfo(ci, mContext));
+
+            // Now that our CallerInfo object has been fully filled-in,
+            // refresh the in-call notification.
+            if (DBG) log("- updating notification after query complete...");
+            updateInCallNotification();
+        } else {
+            Log.w(LOG_TAG, "onQueryComplete: caller-id query from unknown source! "
+                  + "cookie = " + cookie);
+        }
+    }
+
+    /**
+     * Take down the in-call notification.
+     * @see updateInCallNotification()
+     */
+    private void cancelInCall() {
+        if (DBG) log("cancelInCall()...");
+        mNotificationManager.cancel(IN_CALL_NOTIFICATION);
+        mInCallResId = 0;
+    }
+
+    /**
+     * Completely take down the in-call notification *and* the mute/speaker
+     * notifications as well, to indicate that the phone is now idle.
+     */
+    /* package */ void cancelCallInProgressNotifications() {
+        if (DBG) log("cancelCallInProgressNotifications()...");
+        if (mInCallResId == 0) {
+            return;
+        }
+
+        if (DBG) log("cancelCallInProgressNotifications: " + mInCallResId);
+        cancelInCall();
+        cancelMute();
+        cancelSpeakerphone();
+    }
+
+    /**
+     * Updates the message waiting indicator (voicemail) notification.
+     *
+     * @param visible true if there are messages waiting
+     */
+    /* package */ void updateMwi(boolean visible) {
+        if (DBG) log("updateMwi(): " + visible);
+
+        if (visible) {
+            int resId = android.R.drawable.stat_notify_voicemail;
+
+            // This Notification can get a lot fancier once we have more
+            // information about the current voicemail messages.
+            // (For example, the current voicemail system can't tell
+            // us the caller-id or timestamp of a message, or tell us the
+            // message count.)
+
+            // But for now, the UI is ultra-simple: if the MWI indication
+            // is supposed to be visible, just show a single generic
+            // notification.
+
+            String notificationTitle = mContext.getString(R.string.notification_voicemail_title);
+            String vmNumber = mPhone.getVoiceMailNumber();
+            if (DBG) log("- got vm number: '" + vmNumber + "'");
+
+            // Watch out: vmNumber may be null, for two possible reasons:
+            //
+            //   (1) This phone really has no voicemail number
+            //
+            //   (2) This phone *does* have a voicemail number, but
+            //       the SIM isn't ready yet.
+            //
+            // Case (2) *does* happen in practice if you have voicemail
+            // messages when the device first boots: we get an MWI
+            // notification as soon as we register on the network, but the
+            // SIM hasn't finished loading yet.
+            //
+            // So handle case (2) by retrying the lookup after a short
+            // delay.
+
+            if ((vmNumber == null) && !mPhone.getIccRecordsLoaded()) {
+                if (DBG) log("- Null vm number: SIM records not loaded (yet)...");
+
+                // TODO: rather than retrying after an arbitrary delay, it
+                // would be cleaner to instead just wait for a
+                // SIM_RECORDS_LOADED notification.
+                // (Unfortunately right now there's no convenient way to
+                // get that notification in phone app code.  We'd first
+                // want to add a call like registerForSimRecordsLoaded()
+                // to Phone.java and GSMPhone.java, and *then* we could
+                // listen for that in the CallNotifier class.)
+
+                // Limit the number of retries (in case the SIM is broken
+                // or missing and can *never* load successfully.)
+                if (mVmNumberRetriesRemaining-- > 0) {
+                    if (DBG) log("  - Retrying in " + VM_NUMBER_RETRY_DELAY_MILLIS + " msec...");
+                    mApp.notifier.sendMwiChangedDelayed(VM_NUMBER_RETRY_DELAY_MILLIS);
+                    return;
+                } else {
+                    Log.w(LOG_TAG, "NotificationMgr.updateMwi: getVoiceMailNumber() failed after "
+                          + MAX_VM_NUMBER_RETRIES + " retries; giving up.");
+                    // ...and continue with vmNumber==null, just as if the
+                    // phone had no VM number set up in the first place.
+                }
+            }
+
+            if (TelephonyCapabilities.supportsVoiceMessageCount(mPhone)) {
+                int vmCount = mPhone.getVoiceMessageCount();
+                String titleFormat = mContext.getString(R.string.notification_voicemail_title_count);
+                notificationTitle = String.format(titleFormat, vmCount);
+            }
+
+            String notificationText;
+            if (TextUtils.isEmpty(vmNumber)) {
+                notificationText = mContext.getString(
+                        R.string.notification_voicemail_no_vm_number);
+            } else {
+                notificationText = String.format(
+                        mContext.getString(R.string.notification_voicemail_text_format),
+                        PhoneNumberUtils.formatNumber(vmNumber));
+            }
+
+            Intent intent = new Intent(Intent.ACTION_CALL,
+                    Uri.fromParts(Constants.SCHEME_VOICEMAIL, "", null));
+            PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
+
+            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+            Uri ringtoneUri;
+            String uriString = prefs.getString(
+                    CallFeaturesSetting.BUTTON_VOICEMAIL_NOTIFICATION_RINGTONE_KEY, null);
+            if (!TextUtils.isEmpty(uriString)) {
+                ringtoneUri = Uri.parse(uriString);
+            } else {
+                ringtoneUri = Settings.System.DEFAULT_NOTIFICATION_URI;
+            }
+
+            Notification.Builder builder = new Notification.Builder(mContext);
+            builder.setSmallIcon(resId)
+                    .setWhen(System.currentTimeMillis())
+                    .setContentTitle(notificationTitle)
+                    .setContentText(notificationText)
+                    .setContentIntent(pendingIntent)
+                    .setSound(ringtoneUri);
+            Notification notification = builder.getNotification();
+
+            CallFeaturesSetting.migrateVoicemailVibrationSettingsIfNeeded(prefs);
+            final boolean vibrate = prefs.getBoolean(
+                    CallFeaturesSetting.BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY, false);
+            if (vibrate) {
+                notification.defaults |= Notification.DEFAULT_VIBRATE;
+            }
+            notification.flags |= Notification.FLAG_NO_CLEAR;
+            configureLedNotification(notification);
+            mNotificationManager.notify(VOICEMAIL_NOTIFICATION, notification);
+        } else {
+            mNotificationManager.cancel(VOICEMAIL_NOTIFICATION);
+        }
+    }
+
+    /**
+     * Updates the message call forwarding indicator notification.
+     *
+     * @param visible true if there are messages waiting
+     */
+    /* package */ void updateCfi(boolean visible) {
+        if (DBG) log("updateCfi(): " + visible);
+        if (visible) {
+            // If Unconditional Call Forwarding (forward all calls) for VOICE
+            // is enabled, just show a notification.  We'll default to expanded
+            // view for now, so the there is less confusion about the icon.  If
+            // it is deemed too weird to have CF indications as expanded views,
+            // then we'll flip the flag back.
+
+            // TODO: We may want to take a look to see if the notification can
+            // display the target to forward calls to.  This will require some
+            // effort though, since there are multiple layers of messages that
+            // will need to propagate that information.
+
+            Notification notification;
+            final boolean showExpandedNotification = true;
+            if (showExpandedNotification) {
+                Intent intent = new Intent(Intent.ACTION_MAIN);
+                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                intent.setClassName("com.android.phone",
+                        "com.android.phone.CallFeaturesSetting");
+
+                notification = new Notification(
+                        R.drawable.stat_sys_phone_call_forward,  // icon
+                        null, // tickerText
+                        0); // The "timestamp" of this notification is meaningless;
+                            // we only care about whether CFI is currently on or not.
+                notification.setLatestEventInfo(
+                        mContext, // context
+                        mContext.getString(R.string.labelCF), // expandedTitle
+                        mContext.getString(R.string.sum_cfu_enabled_indicator), // expandedText
+                        PendingIntent.getActivity(mContext, 0, intent, 0)); // contentIntent
+            } else {
+                notification = new Notification(
+                        R.drawable.stat_sys_phone_call_forward,  // icon
+                        null,  // tickerText
+                        System.currentTimeMillis()  // when
+                        );
+            }
+
+            notification.flags |= Notification.FLAG_ONGOING_EVENT;  // also implies FLAG_NO_CLEAR
+
+            mNotificationManager.notify(
+                    CALL_FORWARD_NOTIFICATION,
+                    notification);
+        } else {
+            mNotificationManager.cancel(CALL_FORWARD_NOTIFICATION);
+        }
+    }
+
+    /**
+     * Shows the "data disconnected due to roaming" notification, which
+     * appears when you lose data connectivity because you're roaming and
+     * you have the "data roaming" feature turned off.
+     */
+    /* package */ void showDataDisconnectedRoaming() {
+        if (DBG) log("showDataDisconnectedRoaming()...");
+
+        // "Mobile network settings" screen / dialog
+        Intent intent = new Intent(mContext, com.android.phone.MobileNetworkSettings.class);
+
+        final CharSequence contentText = mContext.getText(R.string.roaming_reenable_message);
+
+        final Notification.Builder builder = new Notification.Builder(mContext);
+        builder.setSmallIcon(android.R.drawable.stat_sys_warning);
+        builder.setContentTitle(mContext.getText(R.string.roaming));
+        builder.setContentText(contentText);
+        builder.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0));
+
+        final Notification notif = new Notification.BigTextStyle(builder).bigText(contentText)
+                .build();
+
+        mNotificationManager.notify(DATA_DISCONNECTED_ROAMING_NOTIFICATION, notif);
+    }
+
+    /**
+     * Turns off the "data disconnected due to roaming" notification.
+     */
+    /* package */ void hideDataDisconnectedRoaming() {
+        if (DBG) log("hideDataDisconnectedRoaming()...");
+        mNotificationManager.cancel(DATA_DISCONNECTED_ROAMING_NOTIFICATION);
+    }
+
+    /**
+     * Display the network selection "no service" notification
+     * @param operator is the numeric operator number
+     */
+    private void showNetworkSelection(String operator) {
+        if (DBG) log("showNetworkSelection(" + operator + ")...");
+
+        String titleText = mContext.getString(
+                R.string.notification_network_selection_title);
+        String expandedText = mContext.getString(
+                R.string.notification_network_selection_text, operator);
+
+        Notification notification = new Notification();
+        notification.icon = android.R.drawable.stat_sys_warning;
+        notification.when = 0;
+        notification.flags = Notification.FLAG_ONGOING_EVENT;
+        notification.tickerText = null;
+
+        // create the target network operators settings intent
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+                Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+        // Use NetworkSetting to handle the selection intent
+        intent.setComponent(new ComponentName("com.android.phone",
+                "com.android.phone.NetworkSetting"));
+        PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
+
+        notification.setLatestEventInfo(mContext, titleText, expandedText, pi);
+
+        mNotificationManager.notify(SELECTED_OPERATOR_FAIL_NOTIFICATION, notification);
+    }
+
+    /**
+     * Turn off the network selection "no service" notification
+     */
+    private void cancelNetworkSelection() {
+        if (DBG) log("cancelNetworkSelection()...");
+        mNotificationManager.cancel(SELECTED_OPERATOR_FAIL_NOTIFICATION);
+    }
+
+    /**
+     * Update notification about no service of user selected operator
+     *
+     * @param serviceState Phone service state
+     */
+    void updateNetworkSelection(int serviceState) {
+        if (TelephonyCapabilities.supportsNetworkSelection(mPhone)) {
+            // get the shared preference of network_selection.
+            // empty is auto mode, otherwise it is the operator alpha name
+            // in case there is no operator name, check the operator numeric
+            SharedPreferences sp =
+                    PreferenceManager.getDefaultSharedPreferences(mContext);
+            String networkSelection =
+                    sp.getString(PhoneBase.NETWORK_SELECTION_NAME_KEY, "");
+            if (TextUtils.isEmpty(networkSelection)) {
+                networkSelection =
+                        sp.getString(PhoneBase.NETWORK_SELECTION_KEY, "");
+            }
+
+            if (DBG) log("updateNetworkSelection()..." + "state = " +
+                    serviceState + " new network " + networkSelection);
+
+            if (serviceState == ServiceState.STATE_OUT_OF_SERVICE
+                    && !TextUtils.isEmpty(networkSelection)) {
+                if (!mSelectedUnavailableNotify) {
+                    showNetworkSelection(networkSelection);
+                    mSelectedUnavailableNotify = true;
+                }
+            } else {
+                if (mSelectedUnavailableNotify) {
+                    cancelNetworkSelection();
+                    mSelectedUnavailableNotify = false;
+                }
+            }
+        }
+    }
+
+    /* package */ void postTransientNotification(int notifyId, CharSequence msg) {
+        if (mToast != null) {
+            mToast.cancel();
+        }
+
+        mToast = Toast.makeText(mContext, msg, Toast.LENGTH_LONG);
+        mToast.show();
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/OtaStartupReceiver.java b/src/com/android/phone/OtaStartupReceiver.java
new file mode 100644
index 0000000..594b63a
--- /dev/null
+++ b/src/com/android/phone/OtaStartupReceiver.java
@@ -0,0 +1,177 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.PhoneStateListener;
+import android.telephony.ServiceState;
+import android.telephony.TelephonyManager;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+import android.util.Log;
+
+/*
+ * Handles OTA Start procedure at phone power up. At phone power up, if phone is not OTA
+ * provisioned (check MIN value of the Phone) and 'device_provisioned' is not set,
+ * OTA Activation screen is shown that helps user activate the phone
+ */
+public class OtaStartupReceiver extends BroadcastReceiver {
+    private static final String TAG = "OtaStartupReceiver";
+    private static final boolean DBG = false;
+    private static final int MIN_READY = 10;
+    private static final int SERVICE_STATE_CHANGED = 11;
+    private Context mContext;
+
+    /**
+     * For debug purposes we're listening for otaspChanged events as
+     * this may be be used in the future for deciding if OTASP is
+     * necessary.
+     */
+    private int mOtaspMode = -1;
+    private boolean mPhoneStateListenerRegistered = false;
+    private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+        @Override
+        public void onOtaspChanged(int otaspMode) {
+            mOtaspMode = otaspMode;
+            Log.v(TAG, "onOtaspChanged: mOtaspMode=" + mOtaspMode);
+        }
+    };
+
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MIN_READY:
+                    Log.v(TAG, "Attempting OtaActivation from handler, mOtaspMode=" + mOtaspMode);
+                    OtaUtils.maybeDoOtaCall(mContext, mHandler, MIN_READY);
+                    break;
+                case SERVICE_STATE_CHANGED: {
+                    ServiceState state = (ServiceState) ((AsyncResult) msg.obj).result;
+                    if (DBG) Log.d(TAG, "onServiceStateChanged()...  new state = " + state);
+
+                    // Possible service states:
+                    // - STATE_IN_SERVICE        // Normal operation
+                    // - STATE_OUT_OF_SERVICE    // Still searching for an operator to register to,
+                    //                           // or no radio signal
+                    // - STATE_EMERGENCY_ONLY    // Phone is locked; only emergency numbers are allowed
+                    // - STATE_POWER_OFF         // Radio is explicitly powered off (airplane mode)
+
+                    // Once we reach STATE_IN_SERVICE
+                    // it's finally OK to start OTA provisioning
+                    if (state.getState() == ServiceState.STATE_IN_SERVICE) {
+                        if (DBG) Log.d(TAG, "call OtaUtils.maybeDoOtaCall after network is available");
+                        Phone phone = PhoneGlobals.getPhone();
+                        phone.unregisterForServiceStateChanged(this);
+                        OtaUtils.maybeDoOtaCall(mContext, mHandler, MIN_READY);
+                    }
+                    break;
+                }
+            }
+
+        }
+    };
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        mContext = context;
+        if (DBG) {
+            Log.v(TAG, "onReceive: intent action=" + intent.getAction() +
+                    "  mOtaspMode=" + mOtaspMode);
+        }
+
+        PhoneGlobals globals = PhoneGlobals.getInstanceIfPrimary();
+        if (globals == null) {
+            if (DBG) Log.d(TAG, "Not primary user, nothing to do.");
+            return;
+        }
+
+        if (!TelephonyCapabilities.supportsOtasp(PhoneGlobals.getPhone())) {
+            if (DBG) Log.d(TAG, "OTASP not supported, nothing to do.");
+            return;
+        }
+
+        if (mPhoneStateListenerRegistered == false) {
+            if (DBG) Log.d(TAG, "Register our PhoneStateListener");
+            TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(
+                    Context.TELEPHONY_SERVICE);
+            telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_OTASP_CHANGED);
+            mPhoneStateListenerRegistered = true;
+        } else {
+            if (DBG) Log.d(TAG, "PhoneStateListener already registered");
+        }
+
+        if (shouldPostpone(context)) {
+            if (DBG) Log.d(TAG, "Postponing OTASP until wizard runs");
+            return;
+        }
+
+        // Delay OTA provisioning if network is not available yet
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        Phone phone = PhoneGlobals.getPhone();
+        if (app.mCM.getServiceState() != ServiceState.STATE_IN_SERVICE) {
+            if (DBG) Log.w(TAG, "Network is not ready. Registering to receive notification.");
+            phone.registerForServiceStateChanged(mHandler, SERVICE_STATE_CHANGED, null);
+            return;
+        }
+
+        // The following depends on the phone process being persistent. Normally we can't
+        // expect a BroadcastReceiver to persist after returning from this function but it does
+        // because the phone activity is persistent.
+        if (DBG) Log.d(TAG, "call OtaUtils.maybeDoOtaCall");
+        OtaUtils.maybeDoOtaCall(mContext, mHandler, MIN_READY);
+    }
+
+    /**
+     * On devices that provide a phone initialization wizard (such as Google Setup Wizard), we
+     * allow delaying CDMA OTA setup so it can be done in a single wizard. The wizard is responsible
+     * for (1) disabling itself once it has been run and/or (2) setting the 'device_provisioned'
+     * flag to something non-zero and (3) calling the OTA Setup with the action below.
+     *
+     * NB: Typical phone initialization wizards will install themselves as the homescreen
+     * (category "android.intent.category.HOME") with a priority higher than the default.
+     * The wizard should set 'device_provisioned' when it completes, disable itself with the
+     * PackageManager.setComponentEnabledSetting() and then start home screen.
+     *
+     * @return true if setup will be handled by wizard, false if it should be done now.
+     */
+    private boolean shouldPostpone(Context context) {
+        Intent intent = new Intent("android.intent.action.DEVICE_INITIALIZATION_WIZARD");
+        ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        boolean provisioned = Settings.Global.getInt(context.getContentResolver(),
+                Settings.Global.DEVICE_PROVISIONED, 0) != 0;
+        String mode = SystemProperties.get("ro.setupwizard.mode", "REQUIRED");
+        boolean runningSetupWizard = "REQUIRED".equals(mode) || "OPTIONAL".equals(mode);
+        if (DBG) {
+            Log.v(TAG, "resolvInfo = " + resolveInfo + ", provisioned = " + provisioned
+                    + ", runningSetupWizard = " + runningSetupWizard);
+        }
+        return resolveInfo != null && !provisioned && runningSetupWizard;
+    }
+}
diff --git a/src/com/android/phone/OtaUtils.java b/src/com/android/phone/OtaUtils.java
new file mode 100644
index 0000000..495df27
--- /dev/null
+++ b/src/com/android/phone/OtaUtils.java
@@ -0,0 +1,1645 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.internal.telephony.TelephonyProperties;
+import com.android.phone.OtaUtils.CdmaOtaInCallScreenUiState.State;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.AlertDialog;
+import android.app.PendingIntent;
+import android.app.PendingIntent.CanceledException;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.ProgressBar;
+import android.widget.ScrollView;
+import android.widget.TextView;
+import android.widget.ToggleButton;
+
+/**
+ * Handles all OTASP Call related logic and UI functionality.
+ * The InCallScreen interacts with this class to perform an OTASP Call.
+ *
+ * OTASP is a CDMA-specific feature:
+ *   OTA or OTASP == Over The Air service provisioning
+ *   SPC == Service Programming Code
+ *   TODO: Include pointer to more detailed documentation.
+ *
+ * TODO: This is Over The Air Service Provisioning (OTASP)
+ *       A better name would be OtaspUtils.java.
+ */
+public class OtaUtils {
+    private static final String LOG_TAG = "OtaUtils";
+    private static final boolean DBG = false;
+
+    public static final int OTA_SHOW_ACTIVATION_SCREEN_OFF = 0;
+    public static final int OTA_SHOW_ACTIVATION_SCREEN_ON = 1;
+    public static final int OTA_SHOW_LISTENING_SCREEN_OFF =0;
+    public static final int OTA_SHOW_LISTENING_SCREEN_ON =1;
+    public static final int OTA_SHOW_ACTIVATE_FAIL_COUNT_OFF = 0;
+    public static final int OTA_SHOW_ACTIVATE_FAIL_COUNT_THREE = 3;
+    public static final int OTA_PLAY_SUCCESS_FAILURE_TONE_OFF = 0;
+    public static final int OTA_PLAY_SUCCESS_FAILURE_TONE_ON = 1;
+
+    // SPC Timeout is 60 seconds
+    public final int OTA_SPC_TIMEOUT = 60;
+    public final int OTA_FAILURE_DIALOG_TIMEOUT = 2;
+
+    // Constants for OTASP-related Intents and intent extras.
+    // Watch out: these must agree with the corresponding constants in
+    // apps/SetupWizard!
+
+    // Intent action to launch an OTASP call.
+    public static final String ACTION_PERFORM_CDMA_PROVISIONING =
+           "com.android.phone.PERFORM_CDMA_PROVISIONING";
+
+    // Intent action to launch activation on a non-voice capable device
+    public static final String ACTION_PERFORM_VOICELESS_CDMA_PROVISIONING =
+            "com.android.phone.PERFORM_VOICELESS_CDMA_PROVISIONING";
+
+    // Intent action to display the InCallScreen in the OTASP "activation" state.
+    public static final String ACTION_DISPLAY_ACTIVATION_SCREEN =
+            "com.android.phone.DISPLAY_ACTIVATION_SCREEN";
+
+    // boolean voiceless provisioning extra that enables a "don't show this again" checkbox
+    // the user can check to never see the activity upon bootup again
+    public static final String EXTRA_VOICELESS_PROVISIONING_OFFER_DONTSHOW =
+            "com.android.phone.VOICELESS_PROVISIONING_OFFER_DONTSHOW";
+
+    // Activity result codes for the ACTION_PERFORM_CDMA_PROVISIONING intent
+    // (see the InCallScreenShowActivation activity.)
+    //
+    // Note: currently, our caller won't ever actually receive the
+    // RESULT_INTERACTIVE_OTASP_STARTED result code; see comments in
+    // InCallScreenShowActivation.onCreate() for details.
+
+    public static final int RESULT_INTERACTIVE_OTASP_STARTED = Activity.RESULT_FIRST_USER;
+    public static final int RESULT_NONINTERACTIVE_OTASP_STARTED = Activity.RESULT_FIRST_USER + 1;
+    public static final int RESULT_NONINTERACTIVE_OTASP_FAILED = Activity.RESULT_FIRST_USER + 2;
+
+    // Testing: Extra for the ACTION_PERFORM_CDMA_PROVISIONING intent that
+    // allows the caller to manually enable/disable "interactive mode" for
+    // the OTASP call.   Only available in userdebug or eng builds.
+    public static final String EXTRA_OVERRIDE_INTERACTIVE_MODE =
+            "ota_override_interactive_mode";
+
+    // Extra for the ACTION_PERFORM_CDMA_PROVISIONING intent, holding a
+    // PendingIntent which the phone app can use to send a result code
+    // back to the caller.
+    public static final String EXTRA_OTASP_RESULT_CODE_PENDING_INTENT =
+            "otasp_result_code_pending_intent";
+
+    // Extra attached to the above PendingIntent that indicates
+    // success or failure.
+    public static final String EXTRA_OTASP_RESULT_CODE =
+            "otasp_result_code";
+    public static final int OTASP_UNKNOWN = 0;
+    public static final int OTASP_USER_SKIPPED = 1;  // Only meaningful with interactive OTASP
+    public static final int OTASP_SUCCESS = 2;
+    public static final int OTASP_FAILURE = 3;
+    // failed due to CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED
+    public static final int OTASP_FAILURE_SPC_RETRIES = 4;
+    // TODO: Distinguish between interactive and non-interactive success
+    // and failure.  Then, have the PendingIntent be sent after
+    // interactive OTASP as well (so the caller can find out definitively
+    // when interactive OTASP completes.)
+
+    private static final String OTASP_NUMBER = "*228";
+    private static final String OTASP_NUMBER_NON_INTERACTIVE = "*22899";
+
+    private InCallScreen mInCallScreen;
+    private Context mContext;
+    private PhoneGlobals mApplication;
+    private OtaWidgetData mOtaWidgetData;
+    private ViewGroup mInCallTouchUi;  // UI controls for regular calls
+    private CallCard mCallCard;
+
+    // The DTMFTwelveKeyDialer instance.   We create this in
+    // initOtaInCallScreen(), and attach it to the DTMFTwelveKeyDialerView
+    // ("otaDtmfDialerView") that comes from otacall_card.xml.
+    private DTMFTwelveKeyDialer mOtaCallCardDtmfDialer;
+
+    private static boolean sIsWizardMode = true;
+
+    // How many times do we retry maybeDoOtaCall() if the LTE state is not known yet,
+    // and how long do we wait between retries
+    private static final int OTA_CALL_LTE_RETRIES_MAX = 5;
+    private static final int OTA_CALL_LTE_RETRY_PERIOD = 3000;
+    private static int sOtaCallLteRetries = 0;
+
+    // In "interactive mode", the OtaUtils object is tied to an
+    // InCallScreen instance, where we display a bunch of UI specific to
+    // the OTASP call.  But on devices that are not "voice capable", the
+    // OTASP call runs in a non-interactive mode, and we don't have
+    // an InCallScreen or CallCard or any OTASP UI elements at all.
+    private boolean mInteractive = true;
+
+
+    /**
+     * OtaWidgetData class represent all OTA UI elements
+     *
+     * TODO(OTASP): It's really ugly for the OtaUtils object to reach into the
+     *     InCallScreen like this and directly manipulate its widgets.
+     *
+     *     Instead, the model/view separation should be more clear: OtaUtils
+     *     should only know about a higher-level abstraction of the
+     *     OTASP-specific UI state (just like how the CallController uses the
+     *     InCallUiState object), and the InCallScreen itself should translate
+     *     that higher-level abstraction into actual onscreen views and widgets.
+     */
+    private class OtaWidgetData {
+        public Button otaEndButton;
+        public Button otaActivateButton;
+        public Button otaSkipButton;
+        public Button otaNextButton;
+        public ToggleButton otaSpeakerButton;
+        public ViewGroup otaUpperWidgets;
+        public View callCardOtaButtonsFailSuccess;
+        public ProgressBar otaTextProgressBar;
+        public TextView otaTextSuccessFail;
+        public View callCardOtaButtonsActivate;
+        public View callCardOtaButtonsListenProgress;
+        public TextView otaTextActivate;
+        public TextView otaTextListenProgress;
+        public AlertDialog spcErrorDialog;
+        public AlertDialog otaFailureDialog;
+        public AlertDialog otaSkipConfirmationDialog;
+        public TextView otaTitle;
+        public DTMFTwelveKeyDialerView otaDtmfDialerView;
+        public Button otaTryAgainButton;
+    }
+
+    /**
+     * OtaUtils constructor.
+     *
+     * @param context the Context of the calling Activity or Application
+     * @param interactive if true, use the InCallScreen to display the progress
+     *                    and result of the OTASP call.  In practice this is
+     *                    true IFF the current device is a voice-capable phone.
+     *
+     * Note if interactive is true, you must also call updateUiWidgets() as soon
+     * as the InCallScreen instance is ready.
+     */
+    public OtaUtils(Context context, boolean interactive) {
+        if (DBG) log("OtaUtils constructor...");
+        mApplication = PhoneGlobals.getInstance();
+        mContext = context;
+        mInteractive = interactive;
+    }
+
+    /**
+     * Updates the OtaUtils object's references to some UI elements belonging to
+     * the InCallScreen.  This is used only in interactive mode.
+     *
+     * Use clearUiWidgets() to clear out these references.  (The InCallScreen
+     * is responsible for doing this from its onDestroy() method.)
+     *
+     * This method has no effect if the UI widgets have already been set up.
+     * (In other words, it's safe to call this every time through
+     * InCallScreen.onResume().)
+     */
+    public void updateUiWidgets(InCallScreen inCallScreen,
+            ViewGroup inCallTouchUi, CallCard callCard) {
+        if (DBG) log("updateUiWidgets()...  mInCallScreen = " + mInCallScreen);
+
+        if (!mInteractive) {
+            throw new IllegalStateException("updateUiWidgets() called in non-interactive mode");
+        }
+
+        if (mInCallScreen != null) {
+            if (DBG) log("updateUiWidgets(): widgets already set up, nothing to do...");
+            return;
+        }
+
+        mInCallScreen = inCallScreen;
+        mInCallTouchUi = inCallTouchUi;
+        mCallCard = callCard;
+        mOtaWidgetData = new OtaWidgetData();
+
+        // Inflate OTASP-specific UI elements:
+        ViewStub otaCallCardStub = (ViewStub) mInCallScreen.findViewById(R.id.otaCallCardStub);
+        if (otaCallCardStub != null) {
+            // If otaCallCardStub is null here, that means it's already been
+            // inflated (which could have happened in the current InCallScreen
+            // instance for a *prior* OTASP call.)
+            otaCallCardStub.inflate();
+        }
+
+        readXmlSettings();
+        initOtaInCallScreen();
+    }
+
+    /**
+     * Clear out the OtaUtils object's references to any InCallScreen UI
+     * elements.  This is the opposite of updateUiWidgets().
+     */
+    public void clearUiWidgets() {
+        mInCallScreen = null;
+        mInCallTouchUi = null;
+        mCallCard = null;
+        mOtaWidgetData = null;
+    }
+
+    /**
+     * Starts the OTA provisioning call.  If the MIN isn't available yet, it returns false and adds
+     * an event to return the request to the calling app when it becomes available.
+     *
+     * @param context
+     * @param handler
+     * @param request
+     * @return true if we were able to launch Ota activity or it's not required; false otherwise
+     */
+    public static boolean maybeDoOtaCall(Context context, Handler handler, int request) {
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        Phone phone = app.phone;
+
+        if (ActivityManager.isRunningInTestHarness()) {
+            Log.i(LOG_TAG, "Don't run provisioning when in test harness");
+            return true;
+        }
+
+        if (!TelephonyCapabilities.supportsOtasp(phone)) {
+            // Presumably not a CDMA phone.
+            if (DBG) log("maybeDoOtaCall: OTASP not supported on this device");
+            return true;  // Nothing to do here.
+        }
+
+        if (!phone.isMinInfoReady()) {
+            if (DBG) log("MIN is not ready. Registering to receive notification.");
+            phone.registerForSubscriptionInfoReady(handler, request, null);
+            return false;
+        }
+        phone.unregisterForSubscriptionInfoReady(handler);
+
+        if (getLteOnCdmaMode(context) == PhoneConstants.LTE_ON_CDMA_UNKNOWN) {
+            if (sOtaCallLteRetries < OTA_CALL_LTE_RETRIES_MAX) {
+                if (DBG) log("maybeDoOtaCall: LTE state still unknown: retrying");
+                handler.sendEmptyMessageDelayed(request, OTA_CALL_LTE_RETRY_PERIOD);
+                sOtaCallLteRetries++;
+                return false;
+            } else {
+                Log.w(LOG_TAG, "maybeDoOtaCall: LTE state still unknown: giving up");
+                return true;
+            }
+        }
+
+        boolean phoneNeedsActivation = phone.needsOtaServiceProvisioning();
+        if (DBG) log("phoneNeedsActivation is set to " + phoneNeedsActivation);
+
+        int otaShowActivationScreen = context.getResources().getInteger(
+                R.integer.OtaShowActivationScreen);
+        if (DBG) log("otaShowActivationScreen: " + otaShowActivationScreen);
+
+        // Run the OTASP call in "interactive" mode only if
+        // this is a non-LTE "voice capable" device.
+        if (PhoneGlobals.sVoiceCapable && getLteOnCdmaMode(context) == PhoneConstants.LTE_ON_CDMA_FALSE) {
+            if (phoneNeedsActivation
+                    && (otaShowActivationScreen == OTA_SHOW_ACTIVATION_SCREEN_ON)) {
+                app.cdmaOtaProvisionData.isOtaCallIntentProcessed = false;
+                sIsWizardMode = false;
+
+                if (DBG) Log.d(LOG_TAG, "==> Starting interactive CDMA provisioning...");
+                OtaUtils.startInteractiveOtasp(context);
+
+                if (DBG) log("maybeDoOtaCall: voice capable; activation started.");
+            } else {
+                if (DBG) log("maybeDoOtaCall: voice capable; activation NOT started.");
+            }
+        } else {
+            if (phoneNeedsActivation) {
+                app.cdmaOtaProvisionData.isOtaCallIntentProcessed = false;
+                Intent newIntent = new Intent(ACTION_PERFORM_VOICELESS_CDMA_PROVISIONING);
+                newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                newIntent.putExtra(EXTRA_VOICELESS_PROVISIONING_OFFER_DONTSHOW, true);
+                try {
+                    context.startActivity(newIntent);
+                } catch (ActivityNotFoundException e) {
+                    loge("No activity Handling PERFORM_VOICELESS_CDMA_PROVISIONING!");
+                    return false;
+                }
+                if (DBG) log("maybeDoOtaCall: non-interactive; activation intent sent.");
+            } else {
+                if (DBG) log("maybeDoOtaCall: non-interactive, no need for OTASP.");
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Starts a normal "interactive" OTASP call (i.e. CDMA activation
+     * for regular voice-capable phone devices.)
+     *
+     * This method is called from the InCallScreenShowActivation activity when
+     * handling the ACTION_PERFORM_CDMA_PROVISIONING intent.
+     */
+    public static void startInteractiveOtasp(Context context) {
+        if (DBG) log("startInteractiveOtasp()...");
+        PhoneGlobals app = PhoneGlobals.getInstance();
+
+        // There are two ways to start OTASP on voice-capable devices:
+        //
+        // (1) via the PERFORM_CDMA_PROVISIONING intent
+        //     - this is triggered by the "Activate device" button in settings,
+        //       or can be launched automatically upon boot if the device
+        //       thinks it needs to be provisioned.
+        //     - the intent is handled by InCallScreenShowActivation.onCreate(),
+        //       which calls this method
+        //     - we prepare for OTASP by initializing the OtaUtils object
+        //     - we bring up the InCallScreen in the ready-to-activate state
+        //     - when the user presses the "Activate" button we launch the
+        //       call by calling CallController.placeCall() via the
+        //       otaPerformActivation() method.
+        //
+        // (2) by manually making an outgoing call to a special OTASP number
+        //     like "*228" or "*22899".
+        //     - That sequence does NOT involve this method (OtaUtils.startInteractiveOtasp()).
+        //       Instead, the outgoing call request goes straight to CallController.placeCall().
+        //     - CallController.placeCall() notices that it's an OTASP
+        //       call, and initializes the OtaUtils object.
+        //     - The InCallScreen is launched (as the last step of
+        //       CallController.placeCall()).  The InCallScreen notices that
+        //       OTASP is active and shows the correct UI.
+
+        // Here, we start sequence (1):
+        // Do NOT immediately start the call.  Instead, bring up the InCallScreen
+        // in the special "activate" state (see OtaUtils.otaShowActivateScreen()).
+        // We won't actually make the call until the user presses the "Activate"
+        // button.
+
+        Intent activationScreenIntent = new Intent().setClass(context, InCallScreen.class)
+                .setAction(ACTION_DISPLAY_ACTIVATION_SCREEN);
+
+        // Watch out: in the scenario where OTASP gets triggered from the
+        // BOOT_COMPLETED broadcast (see OtaStartupReceiver.java), we might be
+        // running in the PhoneApp's context right now.
+        // So the FLAG_ACTIVITY_NEW_TASK flag is required here.
+        activationScreenIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        // We're about to start the OTASP sequence, so create and initialize the
+        // OtaUtils instance.  (This needs to happen before bringing up the
+        // InCallScreen.)
+        OtaUtils.setupOtaspCall(activationScreenIntent);
+
+        // And bring up the InCallScreen...
+        Log.i(LOG_TAG, "startInteractiveOtasp: launching InCallScreen in 'activate' state: "
+              + activationScreenIntent);
+        context.startActivity(activationScreenIntent);
+    }
+
+    /**
+     * Starts the OTASP call *without* involving the InCallScreen or
+     * displaying any UI.
+     *
+     * This is used on data-only devices, which don't support any kind of
+     * in-call phone UI.
+     *
+     * @return PhoneUtils.CALL_STATUS_DIALED if we successfully
+     *         dialed the OTASP number, or one of the other
+     *         CALL_STATUS_* constants if there was a failure.
+     */
+    public static int startNonInteractiveOtasp(Context context) {
+        if (DBG) log("startNonInteractiveOtasp()...");
+        PhoneGlobals app = PhoneGlobals.getInstance();
+
+        if (app.otaUtils != null) {
+            // An OtaUtils instance already exists, presumably from a previous OTASP call.
+            Log.i(LOG_TAG, "startNonInteractiveOtasp: "
+                  + "OtaUtils already exists; nuking the old one and starting again...");
+        }
+
+        // Create the OtaUtils instance.
+        app.otaUtils = new OtaUtils(context, false /* non-interactive mode */);
+        if (DBG) log("- created OtaUtils: " + app.otaUtils);
+
+        // ... and kick off the OTASP call.
+        // TODO(InCallScreen redesign): This should probably go through
+        // the CallController, rather than directly calling
+        // PhoneUtils.placeCall().
+        Phone phone = PhoneGlobals.getPhone();
+        String number = OTASP_NUMBER_NON_INTERACTIVE;
+        Log.i(LOG_TAG, "startNonInteractiveOtasp: placing call to '" + number + "'...");
+        int callStatus = PhoneUtils.placeCall(context,
+                                              phone,
+                                              number,
+                                              null,  // contactRef
+                                              false,  //isEmergencyCall
+                                              null);  // gatewayUri
+
+        if (callStatus == PhoneUtils.CALL_STATUS_DIALED) {
+            if (DBG) log("  ==> successful return from placeCall(): callStatus = " + callStatus);
+        } else {
+            Log.w(LOG_TAG, "Failure from placeCall() for OTA number '"
+                  + number + "': code " + callStatus);
+            return callStatus;
+        }
+
+        // TODO: Any other special work to do here?
+        // Such as:
+        //
+        // - manually kick off progress updates, either using TelephonyRegistry
+        //   or else by sending PendingIntents directly to our caller?
+        //
+        // - manually silence the in-call audio?  (Probably unnecessary
+        //   if Stingray truly has no audio path from phone baseband
+        //   to the device's speakers.)
+        //
+
+        return callStatus;
+    }
+
+    /**
+     * @return true if the specified Intent is a CALL action that's an attempt
+     * to initate an OTASP call.
+     *
+     * OTASP is a CDMA-specific concept, so this method will always return false
+     * on GSM phones.
+     *
+     * This code was originally part of the InCallScreen.checkIsOtaCall() method.
+     */
+    public static boolean isOtaspCallIntent(Intent intent) {
+        if (DBG) log("isOtaspCallIntent(" + intent + ")...");
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        Phone phone = app.mCM.getDefaultPhone();
+
+        if (intent == null) {
+            return false;
+        }
+        if (!TelephonyCapabilities.supportsOtasp(phone)) {
+            return false;
+        }
+
+        String action = intent.getAction();
+        if (action == null) {
+            return false;
+        }
+        if (!action.equals(Intent.ACTION_CALL)) {
+            if (DBG) log("isOtaspCallIntent: not a CALL action: '" + action + "' ==> not OTASP");
+            return false;
+        }
+
+        if ((app.cdmaOtaScreenState == null) || (app.cdmaOtaProvisionData == null)) {
+            // Uh oh -- something wrong with our internal OTASP state.
+            // (Since this is an OTASP-capable device, these objects
+            // *should* have already been created by PhoneApp.onCreate().)
+            throw new IllegalStateException("isOtaspCallIntent: "
+                                            + "app.cdmaOta* objects(s) not initialized");
+        }
+
+        // This is an OTASP call iff the number we're trying to dial is one of
+        // the magic OTASP numbers.
+        String number;
+        try {
+            number = PhoneUtils.getInitialNumber(intent);
+        } catch (PhoneUtils.VoiceMailNumberMissingException ex) {
+            // This was presumably a "voicemail:" intent, so it's
+            // obviously not an OTASP number.
+            if (DBG) log("isOtaspCallIntent: VoiceMailNumberMissingException => not OTASP");
+            return false;
+        }
+        if (phone.isOtaSpNumber(number)) {
+            if (DBG) log("isOtaSpNumber: ACTION_CALL to '" + number + "' ==> OTASP call!");
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Set up for an OTASP call.
+     *
+     * This method is called as part of the CallController placeCall() sequence
+     * before initiating an outgoing OTASP call.
+     *
+     * The purpose of this method is mainly to create and initialize the
+     * OtaUtils instance, along with some other misc pre-OTASP cleanup.
+     */
+    public static void setupOtaspCall(Intent intent) {
+        if (DBG) log("setupOtaspCall(): preparing for OTASP call to " + intent);
+        PhoneGlobals app = PhoneGlobals.getInstance();
+
+        if (app.otaUtils != null) {
+            // An OtaUtils instance already exists, presumably from a prior OTASP call.
+            // Nuke the old one and start this call with a fresh instance.
+            Log.i(LOG_TAG, "setupOtaspCall: "
+                  + "OtaUtils already exists; replacing with new instance...");
+        }
+
+        // Create the OtaUtils instance.
+        app.otaUtils = new OtaUtils(app.getApplicationContext(), true /* interactive */);
+        if (DBG) log("- created OtaUtils: " + app.otaUtils);
+
+        // NOTE we still need to call OtaUtils.updateUiWidgets() once the
+        // InCallScreen instance is ready; see InCallScreen.checkOtaspStateOnResume()
+
+        // Make sure the InCallScreen knows that it needs to switch into OTASP mode.
+        //
+        // NOTE in gingerbread and earlier, we used to do
+        //     setInCallScreenMode(InCallScreenMode.OTA_NORMAL);
+        // directly in the InCallScreen, back when this check happened inside the InCallScreen.
+        //
+        // But now, set the global CdmaOtaInCallScreenUiState object into
+        // NORMAL mode, which will then cause the InCallScreen (when it
+        // comes up) to realize that an OTA call is active.
+
+        app.otaUtils.setCdmaOtaInCallScreenUiState(
+            OtaUtils.CdmaOtaInCallScreenUiState.State.NORMAL);
+
+        // TODO(OTASP): note app.inCallUiState.inCallScreenMode and
+        // app.cdmaOtaInCallScreenUiState.state are mostly redundant.  Combine them.
+        app.inCallUiState.inCallScreenMode = InCallUiState.InCallScreenMode.OTA_NORMAL;
+
+        // TODO(OTASP / bug 5092031): we ideally should call
+        // otaShowListeningScreen() here to make sure that the DTMF dialpad
+        // becomes visible at the start of the "*228" call:
+        //
+        //  // ...and get the OTASP-specific UI into the right state.
+        //  app.otaUtils.otaShowListeningScreen();
+        //  if (app.otaUtils.mInCallScreen != null) {
+        //      app.otaUtils.mInCallScreen.requestUpdateScreen();
+        //  }
+        //
+        // But this doesn't actually work; the call to otaShowListeningScreen()
+        // *doesn't* actually bring up the listening screen, since the
+        // cdmaOtaConfigData.otaShowListeningScreen config parameter hasn't been
+        // initialized (we haven't run readXmlSettings() yet at this point!)
+
+        // Also, since the OTA call is now just starting, clear out
+        // the "committed" flag in app.cdmaOtaProvisionData.
+        if (app.cdmaOtaProvisionData != null) {
+            app.cdmaOtaProvisionData.isOtaCallCommitted = false;
+        }
+    }
+
+    private void setSpeaker(boolean state) {
+        if (DBG) log("setSpeaker : " + state );
+
+        if (!mInteractive) {
+            if (DBG) log("non-interactive mode, ignoring setSpeaker.");
+            return;
+        }
+
+        if (state == PhoneUtils.isSpeakerOn(mContext)) {
+            if (DBG) log("no change. returning");
+            return;
+        }
+
+        if (state && mInCallScreen.isBluetoothAvailable()
+                && mInCallScreen.isBluetoothAudioConnected()) {
+            mInCallScreen.disconnectBluetoothAudio();
+        }
+        PhoneUtils.turnOnSpeaker(mContext, state, true);
+    }
+
+    /**
+     * Handles OTA Provision events from the telephony layer.
+     * These events come in to this method whether or not
+     * the InCallScreen is visible.
+     *
+     * Possible events are:
+     * OTA Commit Event - OTA provisioning was successful
+     * SPC retries exceeded - SPC failure retries has exceeded, and Phone needs to
+     *    power down.
+     */
+    public void onOtaProvisionStatusChanged(AsyncResult r) {
+        int OtaStatus[] = (int[]) r.result;
+        if (DBG) log("Provision status event!");
+        if (DBG) log("onOtaProvisionStatusChanged(): status = "
+                     + OtaStatus[0] + " ==> " + otaProvisionStatusToString(OtaStatus[0]));
+
+        // In practice, in a normal successful OTASP call, events come in as follows:
+        //   - SPL_UNLOCKED within a couple of seconds after the call starts
+        //   - then a delay of around 45 seconds
+        //   - then PRL_DOWNLOADED and MDN_DOWNLOADED and COMMITTED within a span of 2 seconds
+
+        switch(OtaStatus[0]) {
+            case Phone.CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED:
+                if (DBG) log("onOtaProvisionStatusChanged(): RETRIES EXCEEDED");
+                updateOtaspProgress();
+                mApplication.cdmaOtaProvisionData.otaSpcUptime = SystemClock.elapsedRealtime();
+                if (mInteractive) {
+                    otaShowSpcErrorNotice(OTA_SPC_TIMEOUT);
+                } else {
+                    sendOtaspResult(OTASP_FAILURE_SPC_RETRIES);
+                }
+                // Power.shutdown();
+                break;
+
+            case Phone.CDMA_OTA_PROVISION_STATUS_COMMITTED:
+                if (DBG) {
+                    log("onOtaProvisionStatusChanged(): DONE, isOtaCallCommitted set to true");
+                }
+                mApplication.cdmaOtaProvisionData.isOtaCallCommitted = true;
+                if (mApplication.cdmaOtaScreenState.otaScreenState !=
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED) {
+                    updateOtaspProgress();
+                }
+
+                break;
+
+            case Phone.CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_SSD_UPDATED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED:
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED:
+                // Only update progress when OTA call is in normal state
+                if (getCdmaOtaInCallScreenUiState() == CdmaOtaInCallScreenUiState.State.NORMAL) {
+                    if (DBG) log("onOtaProvisionStatusChanged(): change to ProgressScreen");
+                    updateOtaspProgress();
+                }
+                break;
+
+            default:
+                if (DBG) log("onOtaProvisionStatusChanged(): Ignoring OtaStatus " + OtaStatus[0]);
+                break;
+        }
+    }
+
+    /**
+     * Handle a disconnect event from the OTASP call.
+     */
+    public void onOtaspDisconnect() {
+        if (DBG) log("onOtaspDisconnect()...");
+        // We only handle this event explicitly in non-interactive mode.
+        // (In interactive mode, the InCallScreen does any post-disconnect
+        // cleanup.)
+        if (!mInteractive) {
+            // Send a success or failure indication back to our caller.
+            updateNonInteractiveOtaSuccessFailure();
+        }
+    }
+
+    private void otaShowHome() {
+        if (DBG) log("otaShowHome()...");
+        mApplication.cdmaOtaScreenState.otaScreenState =
+                CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED;
+        mInCallScreen.endInCallScreenSession();
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.addCategory (Intent.CATEGORY_HOME);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+        return;
+    }
+
+    private void otaSkipActivation() {
+        if (DBG) log("otaSkipActivation()...");
+
+        sendOtaspResult(OTASP_USER_SKIPPED);
+
+        if (mInteractive) mInCallScreen.finish();
+        return;
+    }
+
+    /**
+     * Actually initiate the OTASP call.  This method is triggered by the
+     * onscreen "Activate" button, and is only used in interactive mode.
+     */
+    private void otaPerformActivation() {
+        if (DBG) log("otaPerformActivation()...");
+        if (!mInteractive) {
+            // We shouldn't ever get here in non-interactive mode!
+            Log.w(LOG_TAG, "otaPerformActivation: not interactive!");
+            return;
+        }
+
+        if (!mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            // Place an outgoing call to the special OTASP number:
+            Intent newIntent = new Intent(Intent.ACTION_CALL);
+            newIntent.setData(Uri.fromParts(Constants.SCHEME_TEL, OTASP_NUMBER, null));
+
+            // Initiate the outgoing call:
+            mApplication.callController.placeCall(newIntent);
+
+            // ...and get the OTASP-specific UI into the right state.
+            otaShowListeningScreen();
+            mInCallScreen.requestUpdateScreen();
+        }
+        return;
+    }
+
+    /**
+     * Show Activation Screen when phone powers up and OTA provision is
+     * required. Also shown when activation fails and user needs
+     * to re-attempt it. Contains ACTIVATE and SKIP buttons
+     * which allow user to start OTA activation or skip the activation process.
+     */
+    public void otaShowActivateScreen() {
+        if (DBG) log("otaShowActivateScreen()...");
+        if (mApplication.cdmaOtaConfigData.otaShowActivationScreen
+                == OTA_SHOW_ACTIVATION_SCREEN_ON) {
+            if (DBG) log("otaShowActivateScreen(): show activation screen");
+            if (!isDialerOpened()) {
+                otaScreenInitialize();
+                mOtaWidgetData.otaSkipButton.setVisibility(sIsWizardMode ?
+                        View.VISIBLE : View.INVISIBLE);
+                mOtaWidgetData.otaTextActivate.setVisibility(View.VISIBLE);
+                mOtaWidgetData.callCardOtaButtonsActivate.setVisibility(View.VISIBLE);
+            }
+            mApplication.cdmaOtaScreenState.otaScreenState =
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION;
+        } else {
+            if (DBG) log("otaShowActivateScreen(): show home screen");
+            otaShowHome();
+        }
+     }
+
+    /**
+     * Show "Listen for Instruction" screen during OTA call. Shown when OTA Call
+     * is initiated and user needs to listen for network instructions and press
+     * appropriate DTMF digits to proceed to the "Programming in Progress" phase.
+     */
+    private void otaShowListeningScreen() {
+        if (DBG) log("otaShowListeningScreen()...");
+        if (!mInteractive) {
+            // We shouldn't ever get here in non-interactive mode!
+            Log.w(LOG_TAG, "otaShowListeningScreen: not interactive!");
+            return;
+        }
+
+        if (mApplication.cdmaOtaConfigData.otaShowListeningScreen
+                == OTA_SHOW_LISTENING_SCREEN_ON) {
+            if (DBG) log("otaShowListeningScreen(): show listening screen");
+            if (!isDialerOpened()) {
+                otaScreenInitialize();
+                mOtaWidgetData.otaTextListenProgress.setVisibility(View.VISIBLE);
+                mOtaWidgetData.otaTextListenProgress.setText(R.string.ota_listen);
+                mOtaWidgetData.otaDtmfDialerView.setVisibility(View.VISIBLE);
+                mOtaWidgetData.callCardOtaButtonsListenProgress.setVisibility(View.VISIBLE);
+                mOtaWidgetData.otaSpeakerButton.setVisibility(View.VISIBLE);
+                boolean speakerOn = PhoneUtils.isSpeakerOn(mContext);
+                mOtaWidgetData.otaSpeakerButton.setChecked(speakerOn);
+            }
+            mApplication.cdmaOtaScreenState.otaScreenState =
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_LISTENING;
+        } else {
+            if (DBG) log("otaShowListeningScreen(): show progress screen");
+            otaShowInProgressScreen();
+        }
+    }
+
+    /**
+     * Do any necessary updates (of onscreen UI, for example)
+     * based on the latest status of the OTASP call.
+     */
+    private void updateOtaspProgress() {
+        if (DBG) log("updateOtaspProgress()...  mInteractive = " + mInteractive);
+        if (mInteractive) {
+            // On regular phones we just call through to
+            // otaShowInProgressScreen(), which updates the
+            // InCallScreen's onscreen UI.
+            otaShowInProgressScreen();
+        } else {
+            // We're not using the InCallScreen to show OTA progress.
+
+            // For now, at least, there's nothing to do here.
+            // The overall "success" or "failure" indication we send back
+            // (to our caller) is triggered by the DISCONNECT event;
+            // see updateNonInteractiveOtaSuccessFailure().
+
+            // But if we ever need to send *intermediate* progress updates back
+            // to our caller, we'd do that here, possbily using the same
+            // PendingIntent that we already use to indicate success or failure.
+        }
+    }
+
+    /**
+     * When a non-interactive OTASP call completes, send a success or
+     * failure indication back to our caller.
+     *
+     * This is basically the non-interactive equivalent of
+     * otaShowSuccessFailure().
+     */
+    private void updateNonInteractiveOtaSuccessFailure() {
+        // This is basically the same logic as otaShowSuccessFailure(): we
+        // check the isOtaCallCommitted bit, and if that's true it means
+        // that activation was successful.
+
+        if (DBG) log("updateNonInteractiveOtaSuccessFailure(): isOtaCallCommitted = "
+                     + mApplication.cdmaOtaProvisionData.isOtaCallCommitted);
+        int resultCode =
+                mApplication.cdmaOtaProvisionData.isOtaCallCommitted
+                ? OTASP_SUCCESS : OTASP_FAILURE;
+        sendOtaspResult(resultCode);
+    }
+
+    /**
+     * Sends the specified OTASP result code back to our caller (presumably
+     * SetupWizard) via the PendingIntent that they originally sent along with
+     * the ACTION_PERFORM_CDMA_PROVISIONING intent.
+     */
+    private void sendOtaspResult(int resultCode) {
+        if (DBG) log("sendOtaspResult: resultCode = " + resultCode);
+
+        // Pass the success or failure indication back to our caller by
+        // adding an additional extra to the PendingIntent we already
+        // have.
+        // (NB: there's a PendingIntent send() method that takes a resultCode
+        // directly, but we can't use that here since that call is only
+        // meaningful for pending intents that are actually used as activity
+        // results.)
+
+        Intent extraStuff = new Intent();
+        extraStuff.putExtra(EXTRA_OTASP_RESULT_CODE, resultCode);
+        // When we call PendingIntent.send() below, the extras from this
+        // intent will get merged with any extras already present in
+        // cdmaOtaScreenState.otaspResultCodePendingIntent.
+
+        if (mApplication.cdmaOtaScreenState == null) {
+            Log.e(LOG_TAG, "updateNonInteractiveOtaSuccessFailure: no cdmaOtaScreenState object!");
+            return;
+        }
+        if (mApplication.cdmaOtaScreenState.otaspResultCodePendingIntent == null) {
+            Log.w(LOG_TAG, "updateNonInteractiveOtaSuccessFailure: "
+                  + "null otaspResultCodePendingIntent!");
+            return;
+        }
+
+        try {
+            if (DBG) log("- sendOtaspResult:  SENDING PENDING INTENT: " +
+                         mApplication.cdmaOtaScreenState.otaspResultCodePendingIntent);
+            mApplication.cdmaOtaScreenState.otaspResultCodePendingIntent.send(
+                    mContext,
+                    0, /* resultCode (unused) */
+                    extraStuff);
+        } catch (CanceledException e) {
+            // should never happen because no code cancels the pending intent right now,
+            Log.e(LOG_TAG, "PendingIntent send() failed: " + e);
+        }
+    }
+
+    /**
+     * Show "Programming In Progress" screen during OTA call. Shown when OTA
+     * provisioning is in progress after user has selected an option.
+     */
+    private void otaShowInProgressScreen() {
+        if (DBG) log("otaShowInProgressScreen()...");
+        if (!mInteractive) {
+            // We shouldn't ever get here in non-interactive mode!
+            Log.w(LOG_TAG, "otaShowInProgressScreen: not interactive!");
+            return;
+        }
+
+        mApplication.cdmaOtaScreenState.otaScreenState =
+            CdmaOtaScreenState.OtaScreenState.OTA_STATUS_PROGRESS;
+
+        if ((mOtaWidgetData == null) || (mInCallScreen == null)) {
+            Log.w(LOG_TAG, "otaShowInProgressScreen: UI widgets not set up yet!");
+
+            // TODO(OTASP): our CdmaOtaScreenState is now correct; we just set
+            // it to OTA_STATUS_PROGRESS.  But we still need to make sure that
+            // when the InCallScreen eventually comes to the foreground, it
+            // notices that state and does all the same UI updating we do below.
+            return;
+        }
+
+        if (!isDialerOpened()) {
+            otaScreenInitialize();
+            mOtaWidgetData.otaTextListenProgress.setVisibility(View.VISIBLE);
+            mOtaWidgetData.otaTextListenProgress.setText(R.string.ota_progress);
+            mOtaWidgetData.otaTextProgressBar.setVisibility(View.VISIBLE);
+            mOtaWidgetData.callCardOtaButtonsListenProgress.setVisibility(View.VISIBLE);
+            mOtaWidgetData.otaSpeakerButton.setVisibility(View.VISIBLE);
+            boolean speakerOn = PhoneUtils.isSpeakerOn(mContext);
+            mOtaWidgetData.otaSpeakerButton.setChecked(speakerOn);
+        }
+    }
+
+    /**
+     * Show programming failure dialog when OTA provisioning fails.
+     * If OTA provisioning attempts fail more than 3 times, then unsuccessful
+     * dialog is shown. Otherwise a two-second notice is shown with unsuccessful
+     * information. When notice expires, phone returns to activation screen.
+     */
+    private void otaShowProgramFailure(int length) {
+        if (DBG) log("otaShowProgramFailure()...");
+        mApplication.cdmaOtaProvisionData.activationCount++;
+        if ((mApplication.cdmaOtaProvisionData.activationCount <
+                mApplication.cdmaOtaConfigData.otaShowActivateFailTimes)
+                && (mApplication.cdmaOtaConfigData.otaShowActivationScreen ==
+                OTA_SHOW_ACTIVATION_SCREEN_ON)) {
+            if (DBG) log("otaShowProgramFailure(): activationCount"
+                    + mApplication.cdmaOtaProvisionData.activationCount);
+            if (DBG) log("otaShowProgramFailure(): show failure notice");
+            otaShowProgramFailureNotice(length);
+        } else {
+            if (DBG) log("otaShowProgramFailure(): show failure dialog");
+            otaShowProgramFailureDialog();
+        }
+    }
+
+    /**
+     * Show either programming success dialog when OTA provisioning succeeds, or
+     * programming failure dialog when it fails. See {@link #otaShowProgramFailure}
+     * for more details.
+     */
+    public void otaShowSuccessFailure() {
+        if (DBG) log("otaShowSuccessFailure()...");
+        if (!mInteractive) {
+            // We shouldn't ever get here in non-interactive mode!
+            Log.w(LOG_TAG, "otaShowSuccessFailure: not interactive!");
+            return;
+        }
+
+        otaScreenInitialize();
+        if (DBG) log("otaShowSuccessFailure(): isOtaCallCommitted"
+                + mApplication.cdmaOtaProvisionData.isOtaCallCommitted);
+        if (mApplication.cdmaOtaProvisionData.isOtaCallCommitted) {
+            if (DBG) log("otaShowSuccessFailure(), show success dialog");
+            otaShowProgramSuccessDialog();
+        } else {
+            if (DBG) log("otaShowSuccessFailure(), show failure dialog");
+            otaShowProgramFailure(OTA_FAILURE_DIALOG_TIMEOUT);
+        }
+        return;
+    }
+
+    /**
+     * Show programming failure dialog when OTA provisioning fails more than 3
+     * times.
+     */
+    private void otaShowProgramFailureDialog() {
+        if (DBG) log("otaShowProgramFailureDialog()...");
+        mApplication.cdmaOtaScreenState.otaScreenState =
+                CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG;
+        mOtaWidgetData.otaTitle.setText(R.string.ota_title_problem_with_activation);
+        mOtaWidgetData.otaTextSuccessFail.setVisibility(View.VISIBLE);
+        mOtaWidgetData.otaTextSuccessFail.setText(R.string.ota_unsuccessful);
+        mOtaWidgetData.callCardOtaButtonsFailSuccess.setVisibility(View.VISIBLE);
+        mOtaWidgetData.otaTryAgainButton.setVisibility(View.VISIBLE);
+        //close the dialer if open
+        if (isDialerOpened()) {
+            mOtaCallCardDtmfDialer.closeDialer(false);
+        }
+    }
+
+    /**
+     * Show programming success dialog when OTA provisioning succeeds.
+     */
+    private void otaShowProgramSuccessDialog() {
+        if (DBG) log("otaShowProgramSuccessDialog()...");
+        mApplication.cdmaOtaScreenState.otaScreenState =
+                CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG;
+        mOtaWidgetData.otaTitle.setText(R.string.ota_title_activate_success);
+        mOtaWidgetData.otaTextSuccessFail.setVisibility(View.VISIBLE);
+        mOtaWidgetData.otaTextSuccessFail.setText(R.string.ota_successful);
+        mOtaWidgetData.callCardOtaButtonsFailSuccess.setVisibility(View.VISIBLE);
+        mOtaWidgetData.otaNextButton.setVisibility(View.VISIBLE);
+        //close the dialer if open
+        if (isDialerOpened()) {
+            mOtaCallCardDtmfDialer.closeDialer(false);
+        }
+    }
+
+    /**
+     * Show SPC failure notice when SPC attempts exceed 15 times.
+     * During OTA provisioning, if SPC code is incorrect OTA provisioning will
+     * fail. When SPC attempts are over 15, it shows SPC failure notice for one minute and
+     * then phone will power down.
+     */
+    private void otaShowSpcErrorNotice(int length) {
+        if (DBG) log("otaShowSpcErrorNotice()...");
+        if (mOtaWidgetData.spcErrorDialog == null) {
+            mApplication.cdmaOtaProvisionData.inOtaSpcState = true;
+            DialogInterface.OnKeyListener keyListener;
+            keyListener = new DialogInterface.OnKeyListener() {
+                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
+                    log("Ignoring key events...");
+                    return true;
+                }};
+            mOtaWidgetData.spcErrorDialog = new AlertDialog.Builder(mInCallScreen)
+                    .setMessage(R.string.ota_spc_failure)
+                    .setOnKeyListener(keyListener)
+                    .create();
+            mOtaWidgetData.spcErrorDialog.getWindow().addFlags(
+                    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+            mOtaWidgetData.spcErrorDialog.show();
+            //close the dialer if open
+            if (isDialerOpened()) {
+                mOtaCallCardDtmfDialer.closeDialer(false);
+            }
+            long noticeTime = length*1000;
+            if (DBG) log("otaShowSpcErrorNotice(), remaining SPC noticeTime" + noticeTime);
+            mInCallScreen.requestCloseSpcErrorNotice(noticeTime);
+        }
+    }
+
+    /**
+     * When SPC notice times out, force phone to power down.
+     */
+    public void onOtaCloseSpcNotice() {
+        if (DBG) log("onOtaCloseSpcNotice(), send shutdown intent");
+        Intent shutdown = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
+        shutdown.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
+        shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        mContext.startActivity(shutdown);
+    }
+
+    /**
+     * Show two-second notice when OTA provisioning fails and number of failed attempts
+     * is less then 3.
+     */
+    private void otaShowProgramFailureNotice(int length) {
+        if (DBG) log("otaShowProgramFailureNotice()...");
+        if (mOtaWidgetData.otaFailureDialog == null) {
+            mOtaWidgetData.otaFailureDialog = new AlertDialog.Builder(mInCallScreen)
+                    .setMessage(R.string.ota_failure)
+                    .create();
+            mOtaWidgetData.otaFailureDialog.getWindow().addFlags(
+                    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+            mOtaWidgetData.otaFailureDialog.show();
+
+            long noticeTime = length*1000;
+            mInCallScreen.requestCloseOtaFailureNotice(noticeTime);
+        }
+    }
+
+    /**
+     * Handle OTA unsuccessful notice expiry. Dismisses the
+     * two-second notice and shows the activation screen.
+     */
+    public void onOtaCloseFailureNotice() {
+        if (DBG) log("onOtaCloseFailureNotice()...");
+        if (mOtaWidgetData.otaFailureDialog != null) {
+            mOtaWidgetData.otaFailureDialog.dismiss();
+            mOtaWidgetData.otaFailureDialog = null;
+        }
+        otaShowActivateScreen();
+    }
+
+    /**
+     * Initialize all OTA UI elements to be gone. Also set inCallPanel,
+     * callCard and the dialpad handle to be gone. This is called before any OTA screen
+     * gets drawn.
+     */
+    private void otaScreenInitialize() {
+        if (DBG) log("otaScreenInitialize()...");
+
+        if (!mInteractive) {
+            // We should never be doing anything with UI elements in
+            // non-interactive mode.
+            Log.w(LOG_TAG, "otaScreenInitialize: not interactive!");
+            return;
+        }
+
+        if (mInCallTouchUi != null) mInCallTouchUi.setVisibility(View.GONE);
+        if (mCallCard != null) {
+            mCallCard.setVisibility(View.GONE);
+            // TODO: try removing this.
+            mCallCard.hideCallCardElements();
+        }
+
+        mOtaWidgetData.otaTitle.setText(R.string.ota_title_activate);
+        mOtaWidgetData.otaTextActivate.setVisibility(View.GONE);
+        mOtaWidgetData.otaTextListenProgress.setVisibility(View.GONE);
+        mOtaWidgetData.otaTextProgressBar.setVisibility(View.GONE);
+        mOtaWidgetData.otaTextSuccessFail.setVisibility(View.GONE);
+        mOtaWidgetData.callCardOtaButtonsActivate.setVisibility(View.GONE);
+        mOtaWidgetData.callCardOtaButtonsListenProgress.setVisibility(View.GONE);
+        mOtaWidgetData.callCardOtaButtonsFailSuccess.setVisibility(View.GONE);
+        mOtaWidgetData.otaDtmfDialerView.setVisibility(View.GONE);
+        mOtaWidgetData.otaSpeakerButton.setVisibility(View.GONE);
+        mOtaWidgetData.otaTryAgainButton.setVisibility(View.GONE);
+        mOtaWidgetData.otaNextButton.setVisibility(View.GONE);
+        mOtaWidgetData.otaUpperWidgets.setVisibility(View.VISIBLE);
+        mOtaWidgetData.otaSkipButton.setVisibility(View.VISIBLE);
+    }
+
+    public void hideOtaScreen() {
+        if (DBG) log("hideOtaScreen()...");
+
+        mOtaWidgetData.callCardOtaButtonsActivate.setVisibility(View.GONE);
+        mOtaWidgetData.callCardOtaButtonsListenProgress.setVisibility(View.GONE);
+        mOtaWidgetData.callCardOtaButtonsFailSuccess.setVisibility(View.GONE);
+        mOtaWidgetData.otaUpperWidgets.setVisibility(View.GONE);
+    }
+
+    public boolean isDialerOpened() {
+        boolean retval = (mOtaCallCardDtmfDialer != null && mOtaCallCardDtmfDialer.isOpened());
+        if (DBG) log("- isDialerOpened() ==> " + retval);
+        return retval;
+    }
+
+    /**
+     * Show the appropriate OTA screen based on the current state of OTA call.
+     *
+     * This is called from the InCallScreen when the screen needs to be
+     * refreshed (and thus is only ever used in interactive mode.)
+     *
+     * Since this is called as part of the InCallScreen.updateScreen() sequence,
+     * this method does *not* post an mInCallScreen.requestUpdateScreen()
+     * request.
+     */
+    public void otaShowProperScreen() {
+        if (DBG) log("otaShowProperScreen()...");
+        if (!mInteractive) {
+            // We shouldn't ever get here in non-interactive mode!
+            Log.w(LOG_TAG, "otaShowProperScreen: not interactive!");
+            return;
+        }
+
+        if ((mInCallScreen != null) && mInCallScreen.isForegroundActivity()) {
+            if (DBG) log("otaShowProperScreen(): InCallScreen in foreground, currentstate = "
+                    + mApplication.cdmaOtaScreenState.otaScreenState);
+            if (mInCallTouchUi != null) {
+                mInCallTouchUi.setVisibility(View.GONE);
+            }
+            if (mCallCard != null) {
+                mCallCard.setVisibility(View.GONE);
+            }
+            if (mApplication.cdmaOtaScreenState.otaScreenState
+                    == CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION) {
+                otaShowActivateScreen();
+            } else if (mApplication.cdmaOtaScreenState.otaScreenState
+                    == CdmaOtaScreenState.OtaScreenState.OTA_STATUS_LISTENING) {
+                otaShowListeningScreen();
+            } else if (mApplication.cdmaOtaScreenState.otaScreenState
+                    == CdmaOtaScreenState.OtaScreenState.OTA_STATUS_PROGRESS) {
+                otaShowInProgressScreen();
+            }
+
+            if (mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+                otaShowSpcErrorNotice(getOtaSpcDisplayTime());
+            }
+        }
+    }
+
+    /**
+     * Read configuration values for each OTA screen from config.xml.
+     * These configuration values control visibility of each screen.
+     */
+    private void readXmlSettings() {
+        if (DBG) log("readXmlSettings()...");
+        if (mApplication.cdmaOtaConfigData.configComplete) {
+            return;
+        }
+
+        mApplication.cdmaOtaConfigData.configComplete = true;
+        int tmpOtaShowActivationScreen =
+                mContext.getResources().getInteger(R.integer.OtaShowActivationScreen);
+        mApplication.cdmaOtaConfigData.otaShowActivationScreen = tmpOtaShowActivationScreen;
+        if (DBG) log("readXmlSettings(), otaShowActivationScreen = "
+                + mApplication.cdmaOtaConfigData.otaShowActivationScreen);
+
+        int tmpOtaShowListeningScreen =
+                mContext.getResources().getInteger(R.integer.OtaShowListeningScreen);
+        mApplication.cdmaOtaConfigData.otaShowListeningScreen = tmpOtaShowListeningScreen;
+        if (DBG) log("readXmlSettings(), otaShowListeningScreen = "
+                + mApplication.cdmaOtaConfigData.otaShowListeningScreen);
+
+        int tmpOtaShowActivateFailTimes =
+                mContext.getResources().getInteger(R.integer.OtaShowActivateFailTimes);
+        mApplication.cdmaOtaConfigData.otaShowActivateFailTimes = tmpOtaShowActivateFailTimes;
+        if (DBG) log("readXmlSettings(), otaShowActivateFailTimes = "
+                + mApplication.cdmaOtaConfigData.otaShowActivateFailTimes);
+
+        int tmpOtaPlaySuccessFailureTone =
+                mContext.getResources().getInteger(R.integer.OtaPlaySuccessFailureTone);
+        mApplication.cdmaOtaConfigData.otaPlaySuccessFailureTone = tmpOtaPlaySuccessFailureTone;
+        if (DBG) log("readXmlSettings(), otaPlaySuccessFailureTone = "
+                + mApplication.cdmaOtaConfigData.otaPlaySuccessFailureTone);
+    }
+
+    /**
+     * Handle the click events for OTA buttons.
+     */
+    public void onClickHandler(int id) {
+        switch (id) {
+            case R.id.otaEndButton:
+                onClickOtaEndButton();
+                break;
+
+            case R.id.otaSpeakerButton:
+                onClickOtaSpeakerButton();
+                break;
+
+            case R.id.otaActivateButton:
+                onClickOtaActivateButton();
+                break;
+
+            case R.id.otaSkipButton:
+                onClickOtaActivateSkipButton();
+                break;
+
+            case R.id.otaNextButton:
+                onClickOtaActivateNextButton();
+                break;
+
+            case R.id.otaTryAgainButton:
+                onClickOtaTryAgainButton();
+                break;
+
+            default:
+                if (DBG) log ("onClickHandler: received a click event for unrecognized id");
+                break;
+        }
+    }
+
+    private void onClickOtaTryAgainButton() {
+        if (DBG) log("Activation Try Again Clicked!");
+        if (!mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            otaShowActivateScreen();
+        }
+    }
+
+    private void onClickOtaEndButton() {
+        if (DBG) log("Activation End Call Button Clicked!");
+        if (!mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            if (PhoneUtils.hangup(mApplication.mCM) == false) {
+                // If something went wrong when placing the OTA call,
+                // the screen is not updated by the call disconnect
+                // handler and we have to do it here
+                setSpeaker(false);
+                mInCallScreen.handleOtaCallEnd();
+            }
+        }
+    }
+
+    private void onClickOtaSpeakerButton() {
+        if (DBG) log("OTA Speaker button Clicked!");
+        if (!mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            boolean isChecked = !PhoneUtils.isSpeakerOn(mContext);
+            setSpeaker(isChecked);
+        }
+    }
+
+    private void onClickOtaActivateButton() {
+        if (DBG) log("Call Activation Clicked!");
+        otaPerformActivation();
+    }
+
+    private void onClickOtaActivateSkipButton() {
+        if (DBG) log("Activation Skip Clicked!");
+        DialogInterface.OnKeyListener keyListener;
+        keyListener = new DialogInterface.OnKeyListener() {
+            public boolean onKey(DialogInterface dialog, int keyCode,
+                    KeyEvent event) {
+                if (DBG) log("Ignoring key events...");
+                return true;
+            }
+        };
+        mOtaWidgetData.otaSkipConfirmationDialog = new AlertDialog.Builder(mInCallScreen)
+                .setTitle(R.string.ota_skip_activation_dialog_title)
+                .setMessage(R.string.ota_skip_activation_dialog_message)
+                .setPositiveButton(
+                    android.R.string.ok,
+                    // "OK" means "skip activation".
+                    new AlertDialog.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int which) {
+                            otaSkipActivation();
+                        }
+                    })
+                .setNegativeButton(
+                    android.R.string.cancel,
+                    // "Cancel" means just dismiss the dialog.
+                    // Don't actually start an activation call.
+                    null)
+                .setOnKeyListener(keyListener)
+                .create();
+        mOtaWidgetData.otaSkipConfirmationDialog.show();
+    }
+
+    private void onClickOtaActivateNextButton() {
+        if (DBG) log("Dialog Next Clicked!");
+        if (!mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            mApplication.cdmaOtaScreenState.otaScreenState =
+                    CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED;
+            otaShowHome();
+        }
+    }
+
+    public void dismissAllOtaDialogs() {
+        if (mOtaWidgetData != null) {
+            if (mOtaWidgetData.spcErrorDialog != null) {
+                if (DBG) log("- DISMISSING mSpcErrorDialog.");
+                mOtaWidgetData.spcErrorDialog.dismiss();
+                mOtaWidgetData.spcErrorDialog = null;
+            }
+            if (mOtaWidgetData.otaFailureDialog != null) {
+                if (DBG) log("- DISMISSING mOtaFailureDialog.");
+                mOtaWidgetData.otaFailureDialog.dismiss();
+                mOtaWidgetData.otaFailureDialog = null;
+            }
+        }
+    }
+
+    private int getOtaSpcDisplayTime() {
+        if (DBG) log("getOtaSpcDisplayTime()...");
+        int tmpSpcTime = 1;
+        if (mApplication.cdmaOtaProvisionData.inOtaSpcState) {
+            long tmpOtaSpcRunningTime = 0;
+            long tmpOtaSpcLeftTime = 0;
+            tmpOtaSpcRunningTime = SystemClock.elapsedRealtime();
+            tmpOtaSpcLeftTime =
+                tmpOtaSpcRunningTime - mApplication.cdmaOtaProvisionData.otaSpcUptime;
+            if (tmpOtaSpcLeftTime >= OTA_SPC_TIMEOUT*1000) {
+                tmpSpcTime = 1;
+            } else {
+                tmpSpcTime = OTA_SPC_TIMEOUT - (int)tmpOtaSpcLeftTime/1000;
+            }
+        }
+        if (DBG) log("getOtaSpcDisplayTime(), time for SPC error notice: " + tmpSpcTime);
+        return tmpSpcTime;
+    }
+
+    /**
+     * Initialize the OTA widgets for all OTA screens.
+     */
+    private void initOtaInCallScreen() {
+        if (DBG) log("initOtaInCallScreen()...");
+        mOtaWidgetData.otaTitle = (TextView) mInCallScreen.findViewById(R.id.otaTitle);
+        mOtaWidgetData.otaTextActivate = (TextView) mInCallScreen.findViewById(R.id.otaActivate);
+        mOtaWidgetData.otaTextActivate.setVisibility(View.GONE);
+        mOtaWidgetData.otaTextListenProgress =
+                (TextView) mInCallScreen.findViewById(R.id.otaListenProgress);
+        mOtaWidgetData.otaTextProgressBar =
+                (ProgressBar) mInCallScreen.findViewById(R.id.progress_large);
+        mOtaWidgetData.otaTextProgressBar.setIndeterminate(true);
+        mOtaWidgetData.otaTextSuccessFail =
+                (TextView) mInCallScreen.findViewById(R.id.otaSuccessFailStatus);
+
+        mOtaWidgetData.otaUpperWidgets =
+                (ViewGroup) mInCallScreen.findViewById(R.id.otaUpperWidgets);
+        mOtaWidgetData.callCardOtaButtonsListenProgress =
+                (View) mInCallScreen.findViewById(R.id.callCardOtaListenProgress);
+        mOtaWidgetData.callCardOtaButtonsActivate =
+                (View) mInCallScreen.findViewById(R.id.callCardOtaActivate);
+        mOtaWidgetData.callCardOtaButtonsFailSuccess =
+                (View) mInCallScreen.findViewById(R.id.callCardOtaFailOrSuccessful);
+
+        mOtaWidgetData.otaEndButton = (Button) mInCallScreen.findViewById(R.id.otaEndButton);
+        mOtaWidgetData.otaEndButton.setOnClickListener(mInCallScreen);
+        mOtaWidgetData.otaSpeakerButton =
+                (ToggleButton) mInCallScreen.findViewById(R.id.otaSpeakerButton);
+        mOtaWidgetData.otaSpeakerButton.setOnClickListener(mInCallScreen);
+        mOtaWidgetData.otaActivateButton =
+                (Button) mInCallScreen.findViewById(R.id.otaActivateButton);
+        mOtaWidgetData.otaActivateButton.setOnClickListener(mInCallScreen);
+        mOtaWidgetData.otaSkipButton = (Button) mInCallScreen.findViewById(R.id.otaSkipButton);
+        mOtaWidgetData.otaSkipButton.setOnClickListener(mInCallScreen);
+        mOtaWidgetData.otaNextButton = (Button) mInCallScreen.findViewById(R.id.otaNextButton);
+        mOtaWidgetData.otaNextButton.setOnClickListener(mInCallScreen);
+        mOtaWidgetData.otaTryAgainButton =
+                (Button) mInCallScreen.findViewById(R.id.otaTryAgainButton);
+        mOtaWidgetData.otaTryAgainButton.setOnClickListener(mInCallScreen);
+
+        mOtaWidgetData.otaDtmfDialerView =
+                (DTMFTwelveKeyDialerView) mInCallScreen.findViewById(R.id.otaDtmfDialerView);
+        // Sanity-check: the otaDtmfDialerView widget should *always* be present.
+        if (mOtaWidgetData.otaDtmfDialerView == null) {
+            throw new IllegalStateException("initOtaInCallScreen: couldn't find otaDtmfDialerView");
+        }
+
+        // Create a new DTMFTwelveKeyDialer instance purely for use by the
+        // DTMFTwelveKeyDialerView ("otaDtmfDialerView") that comes from
+        // otacall_card.xml.
+        mOtaCallCardDtmfDialer = new DTMFTwelveKeyDialer(mInCallScreen,
+                                                         mOtaWidgetData.otaDtmfDialerView);
+
+        // Initialize the new DTMFTwelveKeyDialer instance.  This is
+        // needed to play local DTMF tones.
+        mOtaCallCardDtmfDialer.startDialerSession();
+
+        mOtaWidgetData.otaDtmfDialerView.setDialer(mOtaCallCardDtmfDialer);
+    }
+
+    /**
+     * Clear out all OTA UI widget elements. Needs to get called
+     * when OTA call ends or InCallScreen is destroyed.
+     * @param disableSpeaker parameter control whether Speaker should be turned off.
+     */
+    public void cleanOtaScreen(boolean disableSpeaker) {
+        if (DBG) log("OTA ends, cleanOtaScreen!");
+
+        mApplication.cdmaOtaScreenState.otaScreenState =
+                CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED;
+        mApplication.cdmaOtaProvisionData.isOtaCallCommitted = false;
+        mApplication.cdmaOtaProvisionData.isOtaCallIntentProcessed = false;
+        mApplication.cdmaOtaProvisionData.inOtaSpcState = false;
+        mApplication.cdmaOtaProvisionData.activationCount = 0;
+        mApplication.cdmaOtaProvisionData.otaSpcUptime = 0;
+        mApplication.cdmaOtaInCallScreenUiState.state = State.UNDEFINED;
+
+        if (mInteractive && (mOtaWidgetData != null)) {
+            if (mInCallTouchUi != null) mInCallTouchUi.setVisibility(View.VISIBLE);
+            if (mCallCard != null) {
+                mCallCard.setVisibility(View.VISIBLE);
+                mCallCard.hideCallCardElements();
+            }
+
+            // Free resources from the DTMFTwelveKeyDialer instance we created
+            // in initOtaInCallScreen().
+            if (mOtaCallCardDtmfDialer != null) {
+                mOtaCallCardDtmfDialer.stopDialerSession();
+            }
+
+            mOtaWidgetData.otaTextActivate.setVisibility(View.GONE);
+            mOtaWidgetData.otaTextListenProgress.setVisibility(View.GONE);
+            mOtaWidgetData.otaTextProgressBar.setVisibility(View.GONE);
+            mOtaWidgetData.otaTextSuccessFail.setVisibility(View.GONE);
+            mOtaWidgetData.callCardOtaButtonsActivate.setVisibility(View.GONE);
+            mOtaWidgetData.callCardOtaButtonsListenProgress.setVisibility(View.GONE);
+            mOtaWidgetData.callCardOtaButtonsFailSuccess.setVisibility(View.GONE);
+            mOtaWidgetData.otaUpperWidgets.setVisibility(View.GONE);
+            mOtaWidgetData.otaDtmfDialerView.setVisibility(View.GONE);
+            mOtaWidgetData.otaNextButton.setVisibility(View.GONE);
+            mOtaWidgetData.otaTryAgainButton.setVisibility(View.GONE);
+        }
+
+        // turn off the speaker in case it was turned on
+        // but the OTA call could not be completed
+        if (disableSpeaker) {
+            setSpeaker(false);
+        }
+    }
+
+    /**
+     * Defines OTA information that needs to be maintained during
+     * an OTA call when display orientation changes.
+     */
+    public static class CdmaOtaProvisionData {
+        public boolean isOtaCallCommitted;
+        public boolean isOtaCallIntentProcessed;
+        public boolean inOtaSpcState;
+        public int activationCount;
+        public long otaSpcUptime;
+    }
+
+    /**
+     * Defines OTA screen configuration items read from config.xml
+     * and used to control OTA display.
+     */
+    public static class CdmaOtaConfigData {
+        public int otaShowActivationScreen;
+        public int otaShowListeningScreen;
+        public int otaShowActivateFailTimes;
+        public int otaPlaySuccessFailureTone;
+        public boolean configComplete;
+        public CdmaOtaConfigData() {
+            if (DBG) log("CdmaOtaConfigData constructor!");
+            otaShowActivationScreen = OTA_SHOW_ACTIVATION_SCREEN_OFF;
+            otaShowListeningScreen = OTA_SHOW_LISTENING_SCREEN_OFF;
+            otaShowActivateFailTimes = OTA_SHOW_ACTIVATE_FAIL_COUNT_OFF;
+            otaPlaySuccessFailureTone = OTA_PLAY_SUCCESS_FAILURE_TONE_OFF;
+        }
+    }
+
+    /**
+     * The state of the OTA InCallScreen UI.
+     */
+    public static class CdmaOtaInCallScreenUiState {
+        public enum State {
+            UNDEFINED,
+            NORMAL,
+            ENDED
+        }
+
+        public State state;
+
+        public CdmaOtaInCallScreenUiState() {
+            if (DBG) log("CdmaOtaInCallScreenState: constructor init to UNDEFINED");
+            state = CdmaOtaInCallScreenUiState.State.UNDEFINED;
+        }
+    }
+
+    /**
+     * Save the Ota InCallScreen UI state
+     */
+    public void setCdmaOtaInCallScreenUiState(CdmaOtaInCallScreenUiState.State state) {
+        if (DBG) log("setCdmaOtaInCallScreenState: " + state);
+        mApplication.cdmaOtaInCallScreenUiState.state = state;
+    }
+
+    /**
+     * Get the Ota InCallScreen UI state
+     */
+    public CdmaOtaInCallScreenUiState.State getCdmaOtaInCallScreenUiState() {
+        if (DBG) log("getCdmaOtaInCallScreenState: "
+                     + mApplication.cdmaOtaInCallScreenUiState.state);
+        return mApplication.cdmaOtaInCallScreenUiState.state;
+    }
+
+    /**
+     * The OTA screen state machine.
+     */
+    public static class CdmaOtaScreenState {
+        public enum OtaScreenState {
+            OTA_STATUS_UNDEFINED,
+            OTA_STATUS_ACTIVATION,
+            OTA_STATUS_LISTENING,
+            OTA_STATUS_PROGRESS,
+            OTA_STATUS_SUCCESS_FAILURE_DLG
+        }
+
+        public OtaScreenState otaScreenState;
+
+        public CdmaOtaScreenState() {
+            otaScreenState = OtaScreenState.OTA_STATUS_UNDEFINED;
+        }
+
+        /**
+         * {@link PendingIntent} used to report an OTASP result status code
+         * back to our caller. Can be null.
+         *
+         * Our caller (presumably SetupWizard) may create this PendingIntent,
+         * pointing back at itself, and passes it along as an extra with the
+         * ACTION_PERFORM_CDMA_PROVISIONING intent.  Then, when there's an
+         * OTASP result to report, we send that PendingIntent back, adding an
+         * extra called EXTRA_OTASP_RESULT_CODE to indicate the result.
+         *
+         * Possible result values are the OTASP_RESULT_* constants.
+         */
+        public PendingIntent otaspResultCodePendingIntent;
+    }
+
+    /** @see com.android.internal.telephony.Phone */
+    private static String otaProvisionStatusToString(int status) {
+        switch (status) {
+            case Phone.CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED:
+                return "SPL_UNLOCKED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED:
+                return "SPC_RETRIES_EXCEEDED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED:
+                return "A_KEY_EXCHANGED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_SSD_UPDATED:
+                return "SSD_UPDATED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED:
+                return "NAM_DOWNLOADED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED:
+                return "MDN_DOWNLOADED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED:
+                return "IMSI_DOWNLOADED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED:
+                return "PRL_DOWNLOADED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_COMMITTED:
+                return "COMMITTED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED:
+                return "OTAPA_STARTED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED:
+                return "OTAPA_STOPPED";
+            case Phone.CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED:
+                return "OTAPA_ABORTED";
+            default:
+                return "<unknown status" + status + ">";
+        }
+    }
+
+    private static int getLteOnCdmaMode(Context context) {
+        final TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(
+                Context.TELEPHONY_SERVICE);
+        // If the telephony manager is not available yet, or if it doesn't know the answer yet,
+        // try falling back on the system property that may or may not be there
+        if (telephonyManager == null
+                || telephonyManager.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_UNKNOWN) {
+            return SystemProperties.getInt(TelephonyProperties.PROPERTY_LTE_ON_CDMA_DEVICE,
+                    PhoneConstants.LTE_ON_CDMA_UNKNOWN);
+        }
+        return telephonyManager.getLteOnCdmaMode();
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    private static void loge(String msg) {
+        Log.e(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/OutgoingCallBroadcaster.java b/src/com/android/phone/OutgoingCallBroadcaster.java
new file mode 100644
index 0000000..fbec3a9
--- /dev/null
+++ b/src/com/android/phone/OutgoingCallBroadcaster.java
@@ -0,0 +1,750 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.ActivityManagerNative;
+import android.app.AlertDialog;
+import android.app.AppOpsManager;
+import android.app.Dialog;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.ProgressBar;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+
+/**
+ * OutgoingCallBroadcaster receives CALL and CALL_PRIVILEGED Intents, and
+ * broadcasts the ACTION_NEW_OUTGOING_CALL intent which allows other
+ * applications to monitor, redirect, or prevent the outgoing call.
+
+ * After the other applications have had a chance to see the
+ * ACTION_NEW_OUTGOING_CALL intent, it finally reaches the
+ * {@link OutgoingCallReceiver}, which passes the (possibly modified)
+ * intent on to the {@link SipCallOptionHandler}, which will
+ * ultimately start the call using the CallController.placeCall() API.
+ *
+ * Emergency calls and calls where no number is present (like for a CDMA
+ * "empty flash" or a nonexistent voicemail number) are exempt from being
+ * broadcast.
+ */
+public class OutgoingCallBroadcaster extends Activity
+        implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
+
+    private static final String PERMISSION = android.Manifest.permission.PROCESS_OUTGOING_CALLS;
+    private static final String TAG = "OutgoingCallBroadcaster";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    // Do not check in with VDBG = true, since that may write PII to the system log.
+    private static final boolean VDBG = false;
+
+    public static final String ACTION_SIP_SELECT_PHONE = "com.android.phone.SIP_SELECT_PHONE";
+    public static final String EXTRA_ALREADY_CALLED = "android.phone.extra.ALREADY_CALLED";
+    public static final String EXTRA_ORIGINAL_URI = "android.phone.extra.ORIGINAL_URI";
+    public static final String EXTRA_NEW_CALL_INTENT = "android.phone.extra.NEW_CALL_INTENT";
+    public static final String EXTRA_SIP_PHONE_URI = "android.phone.extra.SIP_PHONE_URI";
+    public static final String EXTRA_ACTUAL_NUMBER_TO_DIAL =
+            "android.phone.extra.ACTUAL_NUMBER_TO_DIAL";
+
+    /**
+     * Identifier for intent extra for sending an empty Flash message for
+     * CDMA networks. This message is used by the network to simulate a
+     * press/depress of the "hookswitch" of a landline phone. Aka "empty flash".
+     *
+     * TODO: Receiving an intent extra to tell the phone to send this flash is a
+     * temporary measure. To be replaced with an external ITelephony call in the future.
+     * TODO: Keep in sync with the string defined in TwelveKeyDialer.java in Contacts app
+     * until this is replaced with the ITelephony API.
+     */
+    public static final String EXTRA_SEND_EMPTY_FLASH =
+            "com.android.phone.extra.SEND_EMPTY_FLASH";
+
+    // Dialog IDs
+    private static final int DIALOG_NOT_VOICE_CAPABLE = 1;
+
+    /** Note message codes < 100 are reserved for the PhoneApp. */
+    private static final int EVENT_OUTGOING_CALL_TIMEOUT = 101;
+    private static final int OUTGOING_CALL_TIMEOUT_THRESHOLD = 2000; // msec
+    /**
+     * ProgressBar object with "spinner" style, which will be shown if we take more than
+     * {@link #EVENT_OUTGOING_CALL_TIMEOUT} msec to handle the incoming Intent.
+     */
+    private ProgressBar mWaitingSpinner;
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == EVENT_OUTGOING_CALL_TIMEOUT) {
+                Log.i(TAG, "Outgoing call takes too long. Showing the spinner.");
+                mWaitingSpinner.setVisibility(View.VISIBLE);
+            } else {
+                Log.wtf(TAG, "Unknown message id: " + msg.what);
+            }
+        }
+    };
+
+    /**
+     * OutgoingCallReceiver finishes NEW_OUTGOING_CALL broadcasts, starting
+     * the InCallScreen if the broadcast has not been canceled, possibly with
+     * a modified phone number and optional provider info (uri + package name + remote views.)
+     */
+    public class OutgoingCallReceiver extends BroadcastReceiver {
+        private static final String TAG = "OutgoingCallReceiver";
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            mHandler.removeMessages(EVENT_OUTGOING_CALL_TIMEOUT);
+            doReceive(context, intent);
+            if (DBG) Log.v(TAG, "OutgoingCallReceiver is going to finish the Activity itself.");
+            finish();
+        }
+
+        public void doReceive(Context context, Intent intent) {
+            if (DBG) Log.v(TAG, "doReceive: " + intent);
+
+            boolean alreadyCalled;
+            String number;
+            String originalUri;
+
+            alreadyCalled = intent.getBooleanExtra(
+                    OutgoingCallBroadcaster.EXTRA_ALREADY_CALLED, false);
+            if (alreadyCalled) {
+                if (DBG) Log.v(TAG, "CALL already placed -- returning.");
+                return;
+            }
+
+            // Once the NEW_OUTGOING_CALL broadcast is finished, the resultData
+            // is used as the actual number to call. (If null, no call will be
+            // placed.)
+
+            number = getResultData();
+            if (VDBG) Log.v(TAG, "- got number from resultData: '" + number + "'");
+
+            final PhoneGlobals app = PhoneGlobals.getInstance();
+
+            // OTASP-specific checks.
+            // TODO: This should probably all happen in
+            // OutgoingCallBroadcaster.onCreate(), since there's no reason to
+            // even bother with the NEW_OUTGOING_CALL broadcast if we're going
+            // to disallow the outgoing call anyway...
+            if (TelephonyCapabilities.supportsOtasp(app.phone)) {
+                boolean activateState = (app.cdmaOtaScreenState.otaScreenState
+                        == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION);
+                boolean dialogState = (app.cdmaOtaScreenState.otaScreenState
+                        == OtaUtils.CdmaOtaScreenState.OtaScreenState
+                        .OTA_STATUS_SUCCESS_FAILURE_DLG);
+                boolean isOtaCallActive = false;
+
+                // TODO: Need cleaner way to check if OTA is active.
+                // Also, this check seems to be broken in one obscure case: if
+                // you interrupt an OTASP call by pressing Back then Skip,
+                // otaScreenState somehow gets left in either PROGRESS or
+                // LISTENING.
+                if ((app.cdmaOtaScreenState.otaScreenState
+                        == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_PROGRESS)
+                        || (app.cdmaOtaScreenState.otaScreenState
+                        == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_LISTENING)) {
+                    isOtaCallActive = true;
+                }
+
+                if (activateState || dialogState) {
+                    // The OTASP sequence is active, but either (1) the call
+                    // hasn't started yet, or (2) the call has ended and we're
+                    // showing the success/failure screen.  In either of these
+                    // cases it's OK to make a new outgoing call, but we need
+                    // to take down any OTASP-related UI first.
+                    if (dialogState) app.dismissOtaDialogs();
+                    app.clearOtaState();
+                    app.clearInCallScreenMode();
+                } else if (isOtaCallActive) {
+                    // The actual OTASP call is active.  Don't allow new
+                    // outgoing calls at all from this state.
+                    Log.w(TAG, "OTASP call is active: disallowing a new outgoing call.");
+                    return;
+                }
+            }
+
+            if (number == null) {
+                if (DBG) Log.v(TAG, "CALL cancelled (null number), returning...");
+                return;
+            } else if (TelephonyCapabilities.supportsOtasp(app.phone)
+                    && (app.phone.getState() != PhoneConstants.State.IDLE)
+                    && (app.phone.isOtaSpNumber(number))) {
+                if (DBG) Log.v(TAG, "Call is active, a 2nd OTA call cancelled -- returning.");
+                return;
+            } else if (PhoneNumberUtils.isPotentialLocalEmergencyNumber(number, context)) {
+                // Just like 3rd-party apps aren't allowed to place emergency
+                // calls via the ACTION_CALL intent, we also don't allow 3rd
+                // party apps to use the NEW_OUTGOING_CALL broadcast to rewrite
+                // an outgoing call into an emergency number.
+                Log.w(TAG, "Cannot modify outgoing call to emergency number " + number + ".");
+                return;
+            }
+
+            originalUri = intent.getStringExtra(
+                    OutgoingCallBroadcaster.EXTRA_ORIGINAL_URI);
+            if (originalUri == null) {
+                Log.e(TAG, "Intent is missing EXTRA_ORIGINAL_URI -- returning.");
+                return;
+            }
+
+            Uri uri = Uri.parse(originalUri);
+
+            // We already called convertKeypadLettersToDigits() and
+            // stripSeparators() way back in onCreate(), before we sent out the
+            // NEW_OUTGOING_CALL broadcast.  But we need to do it again here
+            // too, since the number might have been modified/rewritten during
+            // the broadcast (and may now contain letters or separators again.)
+            number = PhoneNumberUtils.convertKeypadLettersToDigits(number);
+            number = PhoneNumberUtils.stripSeparators(number);
+
+            if (DBG) Log.v(TAG, "doReceive: proceeding with call...");
+            if (VDBG) Log.v(TAG, "- uri: " + uri);
+            if (VDBG) Log.v(TAG, "- actual number to dial: '" + number + "'");
+
+            startSipCallOptionHandler(context, intent, uri, number);
+        }
+    }
+
+    /**
+     * Launch the SipCallOptionHandler, which is the next step(*) in the
+     * outgoing-call sequence after the outgoing call broadcast is
+     * complete.
+     *
+     * (*) We now know exactly what phone number we need to dial, so the next
+     *     step is for the SipCallOptionHandler to decide which Phone type (SIP
+     *     or PSTN) should be used.  (Depending on the user's preferences, this
+     *     decision may also involve popping up a dialog to ask the user to
+     *     choose what type of call this should be.)
+     *
+     * @param context used for the startActivity() call
+     *
+     * @param intent the intent from the previous step of the outgoing-call
+     *   sequence.  Normally this will be the NEW_OUTGOING_CALL broadcast intent
+     *   that came in to the OutgoingCallReceiver, although it can also be the
+     *   original ACTION_CALL intent that started the whole sequence (in cases
+     *   where we don't do the NEW_OUTGOING_CALL broadcast at all, like for
+     *   emergency numbers or SIP addresses).
+     *
+     * @param uri the data URI from the original CALL intent, presumably either
+     *   a tel: or sip: URI.  For tel: URIs, note that the scheme-specific part
+     *   does *not* necessarily have separators and keypad letters stripped (so
+     *   we might see URIs like "tel:(650)%20555-1234" or "tel:1-800-GOOG-411"
+     *   here.)
+     *
+     * @param number the actual number (or SIP address) to dial.  This is
+     *   guaranteed to be either a PSTN phone number with separators stripped
+     *   out and keypad letters converted to digits (like "16505551234"), or a
+     *   raw SIP address (like "user@example.com").
+     */
+    private void startSipCallOptionHandler(Context context, Intent intent,
+            Uri uri, String number) {
+        if (VDBG) {
+            Log.i(TAG, "startSipCallOptionHandler...");
+            Log.i(TAG, "- intent: " + intent);
+            Log.i(TAG, "- uri: " + uri);
+            Log.i(TAG, "- number: " + number);
+        }
+
+        // Create a copy of the original CALL intent that started the whole
+        // outgoing-call sequence.  This intent will ultimately be passed to
+        // CallController.placeCall() after the SipCallOptionHandler step.
+
+        Intent newIntent = new Intent(Intent.ACTION_CALL, uri);
+        newIntent.putExtra(EXTRA_ACTUAL_NUMBER_TO_DIAL, number);
+        PhoneUtils.checkAndCopyPhoneProviderExtras(intent, newIntent);
+
+        // Finally, launch the SipCallOptionHandler, with the copy of the
+        // original CALL intent stashed away in the EXTRA_NEW_CALL_INTENT
+        // extra.
+
+        Intent selectPhoneIntent = new Intent(ACTION_SIP_SELECT_PHONE, uri);
+        selectPhoneIntent.setClass(context, SipCallOptionHandler.class);
+        selectPhoneIntent.putExtra(EXTRA_NEW_CALL_INTENT, newIntent);
+        selectPhoneIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        if (DBG) {
+            Log.v(TAG, "startSipCallOptionHandler(): " +
+                    "calling startActivity: " + selectPhoneIntent);
+        }
+        context.startActivity(selectPhoneIntent);
+        // ...and see SipCallOptionHandler.onCreate() for the next step of the sequence.
+    }
+
+    /**
+     * This method is the single point of entry for the CALL intent, which is used (by built-in
+     * apps like Contacts / Dialer, as well as 3rd-party apps) to initiate an outgoing voice call.
+     *
+     *
+     */
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.outgoing_call_broadcaster);
+        mWaitingSpinner = (ProgressBar) findViewById(R.id.spinner);
+
+        Intent intent = getIntent();
+        if (DBG) {
+            final Configuration configuration = getResources().getConfiguration();
+            Log.v(TAG, "onCreate: this = " + this + ", icicle = " + icicle);
+            Log.v(TAG, " - getIntent() = " + intent);
+            Log.v(TAG, " - configuration = " + configuration);
+        }
+
+        if (icicle != null) {
+            // A non-null icicle means that this activity is being
+            // re-initialized after previously being shut down.
+            //
+            // In practice this happens very rarely (because the lifetime
+            // of this activity is so short!), but it *can* happen if the
+            // framework detects a configuration change at exactly the
+            // right moment; see bug 2202413.
+            //
+            // In this case, do nothing.  Our onCreate() method has already
+            // run once (with icicle==null the first time), which means
+            // that the NEW_OUTGOING_CALL broadcast for this new call has
+            // already been sent.
+            Log.i(TAG, "onCreate: non-null icicle!  "
+                  + "Bailing out, not sending NEW_OUTGOING_CALL broadcast...");
+
+            // No need to finish() here, since the OutgoingCallReceiver from
+            // our original instance will do that.  (It'll actually call
+            // finish() on our original instance, which apparently works fine
+            // even though the ActivityManager has already shut that instance
+            // down.  And note that if we *do* call finish() here, that just
+            // results in an "ActivityManager: Duplicate finish request"
+            // warning when the OutgoingCallReceiver runs.)
+
+            return;
+        }
+
+        processIntent(intent);
+
+        // isFinishing() return false when 1. broadcast is still ongoing, or 2. dialog is being
+        // shown. Otherwise finish() is called inside processIntent(), is isFinishing() here will
+        // return true.
+        if (DBG) Log.v(TAG, "At the end of onCreate(). isFinishing(): " + isFinishing());
+    }
+
+    /**
+     * Interprets a given Intent and starts something relevant to the Intent.
+     *
+     * This method will handle three kinds of actions:
+     *
+     * - CALL (action for usual outgoing voice calls)
+     * - CALL_PRIVILEGED (can come from built-in apps like contacts / voice dialer / bluetooth)
+     * - CALL_EMERGENCY (from the EmergencyDialer that's reachable from the lockscreen.)
+     *
+     * The exact behavior depends on the intent's data:
+     *
+     * - The most typical is a tel: URI, which we handle by starting the
+     *   NEW_OUTGOING_CALL broadcast.  That broadcast eventually triggers
+     *   the sequence OutgoingCallReceiver -> SipCallOptionHandler ->
+     *   InCallScreen.
+     *
+     * - Or, with a sip: URI we skip the NEW_OUTGOING_CALL broadcast and
+     *   go directly to SipCallOptionHandler, which then leads to the
+     *   InCallScreen.
+     *
+     * - voicemail: URIs take the same path as regular tel: URIs.
+     *
+     * Other special cases:
+     *
+     * - Outgoing calls are totally disallowed on non-voice-capable
+     *   devices (see handleNonVoiceCapable()).
+     *
+     * - A CALL intent with the EXTRA_SEND_EMPTY_FLASH extra (and
+     *   presumably no data at all) means "send an empty flash" (which
+     *   is only meaningful on CDMA devices while a call is already
+     *   active.)
+     *
+     */
+    private void processIntent(Intent intent) {
+        if (DBG) {
+            Log.v(TAG, "processIntent() = " + intent + ", thread: " + Thread.currentThread());
+        }
+        final Configuration configuration = getResources().getConfiguration();
+
+        // Outgoing phone calls are only allowed on "voice-capable" devices.
+        if (!PhoneGlobals.sVoiceCapable) {
+            Log.i(TAG, "This device is detected as non-voice-capable device.");
+            handleNonVoiceCapable(intent);
+            return;
+        }
+
+        String action = intent.getAction();
+        String number = PhoneNumberUtils.getNumberFromIntent(intent, this);
+        // Check the number, don't convert for sip uri
+        // TODO put uriNumber under PhoneNumberUtils
+        if (number != null) {
+            if (!PhoneNumberUtils.isUriNumber(number)) {
+                number = PhoneNumberUtils.convertKeypadLettersToDigits(number);
+                number = PhoneNumberUtils.stripSeparators(number);
+            }
+        } else {
+            Log.w(TAG, "The number obtained from Intent is null.");
+        }
+
+        AppOpsManager appOps = (AppOpsManager)getSystemService(Context.APP_OPS_SERVICE);
+        int launchedFromUid;
+        String launchedFromPackage;
+        try {
+            launchedFromUid = ActivityManagerNative.getDefault().getLaunchedFromUid(
+                    getActivityToken());
+            launchedFromPackage = ActivityManagerNative.getDefault().getLaunchedFromPackage(
+                    getActivityToken());
+        } catch (RemoteException e) {
+            launchedFromUid = -1;
+            launchedFromPackage = null;
+        }
+        if (appOps.noteOp(AppOpsManager.OP_CALL_PHONE, launchedFromUid, launchedFromPackage)
+                != AppOpsManager.MODE_ALLOWED) {
+            Log.w(TAG, "Rejecting call from uid " + launchedFromUid + " package "
+                    + launchedFromPackage);
+            finish();
+            return;
+        }
+
+        // If true, this flag will indicate that the current call is a special kind
+        // of call (most likely an emergency number) that 3rd parties aren't allowed
+        // to intercept or affect in any way.  (In that case, we start the call
+        // immediately rather than going through the NEW_OUTGOING_CALL sequence.)
+        boolean callNow;
+
+        if (getClass().getName().equals(intent.getComponent().getClassName())) {
+            // If we were launched directly from the OutgoingCallBroadcaster,
+            // not one of its more privileged aliases, then make sure that
+            // only the non-privileged actions are allowed.
+            if (!Intent.ACTION_CALL.equals(intent.getAction())) {
+                Log.w(TAG, "Attempt to deliver non-CALL action; forcing to CALL");
+                intent.setAction(Intent.ACTION_CALL);
+            }
+        }
+
+        // Check whether or not this is an emergency number, in order to
+        // enforce the restriction that only the CALL_PRIVILEGED and
+        // CALL_EMERGENCY intents are allowed to make emergency calls.
+        //
+        // (Note that the ACTION_CALL check below depends on the result of
+        // isPotentialLocalEmergencyNumber() rather than just plain
+        // isLocalEmergencyNumber(), to be 100% certain that we *don't*
+        // allow 3rd party apps to make emergency calls by passing in an
+        // "invalid" number like "9111234" that isn't technically an
+        // emergency number but might still result in an emergency call
+        // with some networks.)
+        final boolean isExactEmergencyNumber =
+                (number != null) && PhoneNumberUtils.isLocalEmergencyNumber(number, this);
+        final boolean isPotentialEmergencyNumber =
+                (number != null) && PhoneNumberUtils.isPotentialLocalEmergencyNumber(number, this);
+        if (VDBG) {
+            Log.v(TAG, " - Checking restrictions for number '" + number + "':");
+            Log.v(TAG, "     isExactEmergencyNumber     = " + isExactEmergencyNumber);
+            Log.v(TAG, "     isPotentialEmergencyNumber = " + isPotentialEmergencyNumber);
+        }
+
+        /* Change CALL_PRIVILEGED into CALL or CALL_EMERGENCY as needed. */
+        // TODO: This code is redundant with some code in InCallScreen: refactor.
+        if (Intent.ACTION_CALL_PRIVILEGED.equals(action)) {
+            // We're handling a CALL_PRIVILEGED intent, so we know this request came
+            // from a trusted source (like the built-in dialer.)  So even a number
+            // that's *potentially* an emergency number can safely be promoted to
+            // CALL_EMERGENCY (since we *should* allow you to dial "91112345" from
+            // the dialer if you really want to.)
+            if (isPotentialEmergencyNumber) {
+                Log.i(TAG, "ACTION_CALL_PRIVILEGED is used while the number is a potential"
+                        + " emergency number. Use ACTION_CALL_EMERGENCY as an action instead.");
+                action = Intent.ACTION_CALL_EMERGENCY;
+            } else {
+                action = Intent.ACTION_CALL;
+            }
+            if (DBG) Log.v(TAG, " - updating action from CALL_PRIVILEGED to " + action);
+            intent.setAction(action);
+        }
+
+        if (Intent.ACTION_CALL.equals(action)) {
+            if (isPotentialEmergencyNumber) {
+                Log.w(TAG, "Cannot call potential emergency number '" + number
+                        + "' with CALL Intent " + intent + ".");
+                Log.i(TAG, "Launching default dialer instead...");
+
+                Intent invokeFrameworkDialer = new Intent();
+
+                // TwelveKeyDialer is in a tab so we really want
+                // DialtactsActivity.  Build the intent 'manually' to
+                // use the java resolver to find the dialer class (as
+                // opposed to a Context which look up known android
+                // packages only)
+                invokeFrameworkDialer.setClassName("com.android.dialer",
+                                                   "com.android.dialer.DialtactsActivity");
+                invokeFrameworkDialer.setAction(Intent.ACTION_DIAL);
+                invokeFrameworkDialer.setData(intent.getData());
+
+                if (DBG) Log.v(TAG, "onCreate(): calling startActivity for Dialer: "
+                               + invokeFrameworkDialer);
+                startActivity(invokeFrameworkDialer);
+                finish();
+                return;
+            }
+            callNow = false;
+        } else if (Intent.ACTION_CALL_EMERGENCY.equals(action)) {
+            // ACTION_CALL_EMERGENCY case: this is either a CALL_PRIVILEGED
+            // intent that we just turned into a CALL_EMERGENCY intent (see
+            // above), or else it really is an CALL_EMERGENCY intent that
+            // came directly from some other app (e.g. the EmergencyDialer
+            // activity built in to the Phone app.)
+            // Make sure it's at least *possible* that this is really an
+            // emergency number.
+            if (!isPotentialEmergencyNumber) {
+                Log.w(TAG, "Cannot call non-potential-emergency number " + number
+                        + " with EMERGENCY_CALL Intent " + intent + "."
+                        + " Finish the Activity immediately.");
+                finish();
+                return;
+            }
+            callNow = true;
+        } else {
+            Log.e(TAG, "Unhandled Intent " + intent + ". Finish the Activity immediately.");
+            finish();
+            return;
+        }
+
+        // Make sure the screen is turned on.  This is probably the right
+        // thing to do, and more importantly it works around an issue in the
+        // activity manager where we will not launch activities consistently
+        // when the screen is off (since it is trying to keep them paused
+        // and has...  issues).
+        //
+        // Also, this ensures the device stays awake while doing the following
+        // broadcast; technically we should be holding a wake lock here
+        // as well.
+        PhoneGlobals.getInstance().wakeUpScreen();
+
+        // If number is null, we're probably trying to call a non-existent voicemail number,
+        // send an empty flash or something else is fishy.  Whatever the problem, there's no
+        // number, so there's no point in allowing apps to modify the number.
+        if (TextUtils.isEmpty(number)) {
+            if (intent.getBooleanExtra(EXTRA_SEND_EMPTY_FLASH, false)) {
+                Log.i(TAG, "onCreate: SEND_EMPTY_FLASH...");
+                PhoneUtils.sendEmptyFlash(PhoneGlobals.getPhone());
+                finish();
+                return;
+            } else {
+                Log.i(TAG, "onCreate: null or empty number, setting callNow=true...");
+                callNow = true;
+            }
+        }
+
+        if (callNow) {
+            // This is a special kind of call (most likely an emergency number)
+            // that 3rd parties aren't allowed to intercept or affect in any way.
+            // So initiate the outgoing call immediately.
+
+            Log.i(TAG, "onCreate(): callNow case! Calling placeCall(): " + intent);
+
+            // Initiate the outgoing call, and simultaneously launch the
+            // InCallScreen to display the in-call UI:
+            PhoneGlobals.getInstance().callController.placeCall(intent);
+
+            // Note we do *not* "return" here, but instead continue and
+            // send the ACTION_NEW_OUTGOING_CALL broadcast like for any
+            // other outgoing call.  (But when the broadcast finally
+            // reaches the OutgoingCallReceiver, we'll know not to
+            // initiate the call again because of the presence of the
+            // EXTRA_ALREADY_CALLED extra.)
+        }
+
+        // Remember the call origin so that users will be able to see an appropriate screen
+        // after the phone call. This should affect both phone calls and SIP calls.
+        final String callOrigin = intent.getStringExtra(PhoneGlobals.EXTRA_CALL_ORIGIN);
+        if (callOrigin != null) {
+            if (DBG) Log.v(TAG, " - Call origin is passed (" + callOrigin + ")");
+            PhoneGlobals.getInstance().setLatestActiveCallOrigin(callOrigin);
+        } else {
+            if (DBG) Log.v(TAG, " - Call origin is not passed. Reset current one.");
+            PhoneGlobals.getInstance().resetLatestActiveCallOrigin();
+        }
+
+        // For now, SIP calls will be processed directly without a
+        // NEW_OUTGOING_CALL broadcast.
+        //
+        // TODO: In the future, though, 3rd party apps *should* be allowed to
+        // intercept outgoing calls to SIP addresses as well.  To do this, we should
+        // (1) update the NEW_OUTGOING_CALL intent documentation to explain this
+        // case, and (2) pass the outgoing SIP address by *not* overloading the
+        // EXTRA_PHONE_NUMBER extra, but instead using a new separate extra to hold
+        // the outgoing SIP address.  (Be sure to document whether it's a URI or just
+        // a plain address, whether it could be a tel: URI, etc.)
+        Uri uri = intent.getData();
+        String scheme = uri.getScheme();
+        if (Constants.SCHEME_SIP.equals(scheme) || PhoneNumberUtils.isUriNumber(number)) {
+            Log.i(TAG, "The requested number was detected as SIP call.");
+            startSipCallOptionHandler(this, intent, uri, number);
+            finish();
+            return;
+
+            // TODO: if there's ever a way for SIP calls to trigger a
+            // "callNow=true" case (see above), we'll need to handle that
+            // case here too (most likely by just doing nothing at all.)
+        }
+
+        Intent broadcastIntent = new Intent(Intent.ACTION_NEW_OUTGOING_CALL);
+        if (number != null) {
+            broadcastIntent.putExtra(Intent.EXTRA_PHONE_NUMBER, number);
+        }
+        PhoneUtils.checkAndCopyPhoneProviderExtras(intent, broadcastIntent);
+        broadcastIntent.putExtra(EXTRA_ALREADY_CALLED, callNow);
+        broadcastIntent.putExtra(EXTRA_ORIGINAL_URI, uri.toString());
+        // Need to raise foreground in-call UI as soon as possible while allowing 3rd party app
+        // to intercept the outgoing call.
+        broadcastIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+        if (DBG) Log.v(TAG, " - Broadcasting intent: " + broadcastIntent + ".");
+
+        // Set a timer so that we can prepare for unexpected delay introduced by the broadcast.
+        // If it takes too much time, the timer will show "waiting" spinner.
+        // This message will be removed when OutgoingCallReceiver#onReceive() is called before the
+        // timeout.
+        mHandler.sendEmptyMessageDelayed(EVENT_OUTGOING_CALL_TIMEOUT,
+                OUTGOING_CALL_TIMEOUT_THRESHOLD);
+        sendOrderedBroadcastAsUser(broadcastIntent, UserHandle.OWNER,
+                PERMISSION, new OutgoingCallReceiver(),
+                null,  // scheduler
+                Activity.RESULT_OK,  // initialCode
+                number,  // initialData: initial value for the result data
+                null);  // initialExtras
+    }
+
+    @Override
+    protected void onStop() {
+        // Clean up (and dismiss if necessary) any managed dialogs.
+        //
+        // We don't do this in onPause() since we can be paused/resumed
+        // due to orientation changes (in which case we don't want to
+        // disturb the dialog), but we *do* need it here in onStop() to be
+        // sure we clean up if the user hits HOME while the dialog is up.
+        //
+        // Note it's safe to call removeDialog() even if there's no dialog
+        // associated with that ID.
+        removeDialog(DIALOG_NOT_VOICE_CAPABLE);
+
+        super.onStop();
+    }
+
+    /**
+     * Handle the specified CALL or CALL_* intent on a non-voice-capable
+     * device.
+     *
+     * This method may launch a different intent (if there's some useful
+     * alternative action to take), or otherwise display an error dialog,
+     * and in either case will finish() the current activity when done.
+     */
+    private void handleNonVoiceCapable(Intent intent) {
+        if (DBG) Log.v(TAG, "handleNonVoiceCapable: handling " + intent
+                       + " on non-voice-capable device...");
+        String action = intent.getAction();
+        Uri uri = intent.getData();
+        String scheme = uri.getScheme();
+
+        // Handle one special case: If this is a regular CALL to a tel: URI,
+        // bring up a UI letting you do something useful with the phone number
+        // (like "Add to contacts" if it isn't a contact yet.)
+        //
+        // This UI is provided by the contacts app in response to a DIAL
+        // intent, so we bring it up here by demoting this CALL to a DIAL and
+        // relaunching.
+        //
+        // TODO: it's strange and unintuitive to manually launch a DIAL intent
+        // to do this; it would be cleaner to have some shared UI component
+        // that we could bring up directly.  (But for now at least, since both
+        // Contacts and Phone are built-in apps, this implementation is fine.)
+
+        if (Intent.ACTION_CALL.equals(action) && (Constants.SCHEME_TEL.equals(scheme))) {
+            Intent newIntent = new Intent(Intent.ACTION_DIAL, uri);
+            if (DBG) Log.v(TAG, "- relaunching as a DIAL intent: " + newIntent);
+            startActivity(newIntent);
+            finish();
+            return;
+        }
+
+        // In all other cases, just show a generic "voice calling not
+        // supported" dialog.
+        showDialog(DIALOG_NOT_VOICE_CAPABLE);
+        // ...and we'll eventually finish() when the user dismisses
+        // or cancels the dialog.
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        Dialog dialog;
+        switch(id) {
+            case DIALOG_NOT_VOICE_CAPABLE:
+                dialog = new AlertDialog.Builder(this)
+                        .setTitle(R.string.not_voice_capable)
+                        .setIconAttribute(android.R.attr.alertDialogIcon)
+                        .setPositiveButton(android.R.string.ok, this)
+                        .setOnCancelListener(this)
+                        .create();
+                break;
+            default:
+                Log.w(TAG, "onCreateDialog: unexpected ID " + id);
+                dialog = null;
+                break;
+        }
+        return dialog;
+    }
+
+    /** DialogInterface.OnClickListener implementation */
+    @Override
+    public void onClick(DialogInterface dialog, int id) {
+        // DIALOG_NOT_VOICE_CAPABLE is the only dialog we ever use (so far
+        // at least), and its only button is "OK".
+        finish();
+    }
+
+    /** DialogInterface.OnCancelListener implementation */
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        // DIALOG_NOT_VOICE_CAPABLE is the only dialog we ever use (so far
+        // at least), and canceling it is just like hitting "OK".
+        finish();
+    }
+
+    /**
+     * Implement onConfigurationChanged() purely for debugging purposes,
+     * to make sure that the android:configChanges element in our manifest
+     * is working properly.
+     */
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        if (DBG) Log.v(TAG, "onConfigurationChanged: newConfig = " + newConfig);
+    }
+}
diff --git a/src/com/android/phone/PhoneApp.java b/src/com/android/phone/PhoneApp.java
new file mode 100644
index 0000000..e3d3fa9
--- /dev/null
+++ b/src/com/android/phone/PhoneApp.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.app.Application;
+import android.content.res.Configuration;
+import android.os.UserHandle;
+
+/**
+ * Top-level Application class for the Phone app.
+ */
+public class PhoneApp extends Application {
+    PhoneGlobals mPhoneGlobals;
+
+    public PhoneApp() {
+    }
+
+    @Override
+    public void onCreate() {
+        if (UserHandle.myUserId() == 0) {
+            // We are running as the primary user, so should bring up the
+            // global phone state.
+            mPhoneGlobals = new PhoneGlobals(this);
+            mPhoneGlobals.onCreate();
+        }
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (mPhoneGlobals != null) {
+            mPhoneGlobals.onConfigurationChanged(newConfig);
+        }
+        super.onConfigurationChanged(newConfig);
+    }
+}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
new file mode 100644
index 0000000..019c74a
--- /dev/null
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -0,0 +1,1859 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.KeyguardManager;
+import android.app.PendingIntent;
+import android.app.ProgressDialog;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.IBluetoothHeadsetPhone;
+import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.res.Configuration;
+import android.media.AudioManager;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.IPowerManager;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UpdateLock;
+import android.os.UserHandle;
+import android.preference.PreferenceManager;
+import android.provider.Settings.System;
+import android.telephony.ServiceState;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.Slog;
+import android.view.KeyEvent;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.IccCard;
+import com.android.internal.telephony.IccCardConstants;
+import com.android.internal.telephony.MmiCode;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.cdma.TtyIntent;
+import com.android.phone.common.CallLogAsync;
+import com.android.phone.OtaUtils.CdmaOtaScreenState;
+import com.android.server.sip.SipService;
+
+/**
+ * Global state for the telephony subsystem when running in the primary
+ * phone process.
+ */
+public class PhoneGlobals extends ContextWrapper
+        implements AccelerometerListener.OrientationListener {
+    /* package */ static final String LOG_TAG = "PhoneApp";
+
+    /**
+     * Phone app-wide debug level:
+     *   0 - no debug logging
+     *   1 - normal debug logging if ro.debuggable is set (which is true in
+     *       "eng" and "userdebug" builds but not "user" builds)
+     *   2 - ultra-verbose debug logging
+     *
+     * Most individual classes in the phone app have a local DBG constant,
+     * typically set to
+     *   (PhoneApp.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1)
+     * or else
+     *   (PhoneApp.DBG_LEVEL >= 2)
+     * depending on the desired verbosity.
+     *
+     * ***** DO NOT SUBMIT WITH DBG_LEVEL > 0 *************
+     */
+    /* package */ static final int DBG_LEVEL = 0;
+
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    private static final boolean VDBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    // Message codes; see mHandler below.
+    private static final int EVENT_SIM_NETWORK_LOCKED = 3;
+    private static final int EVENT_WIRED_HEADSET_PLUG = 7;
+    private static final int EVENT_SIM_STATE_CHANGED = 8;
+    private static final int EVENT_UPDATE_INCALL_NOTIFICATION = 9;
+    private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
+    private static final int EVENT_DATA_ROAMING_OK = 11;
+    private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 12;
+    private static final int EVENT_DOCK_STATE_CHANGED = 13;
+    private static final int EVENT_TTY_PREFERRED_MODE_CHANGED = 14;
+    private static final int EVENT_TTY_MODE_GET = 15;
+    private static final int EVENT_TTY_MODE_SET = 16;
+    private static final int EVENT_START_SIP_SERVICE = 17;
+
+    // The MMI codes are also used by the InCallScreen.
+    public static final int MMI_INITIATE = 51;
+    public static final int MMI_COMPLETE = 52;
+    public static final int MMI_CANCEL = 53;
+    // Don't use message codes larger than 99 here; those are reserved for
+    // the individual Activities of the Phone UI.
+
+    /**
+     * Allowable values for the wake lock code.
+     *   SLEEP means the device can be put to sleep.
+     *   PARTIAL means wake the processor, but we display can be kept off.
+     *   FULL means wake both the processor and the display.
+     */
+    public enum WakeState {
+        SLEEP,
+        PARTIAL,
+        FULL
+    }
+
+    /**
+     * Intent Action used for hanging up the current call from Notification bar. This will
+     * choose first ringing call, first active call, or first background call (typically in
+     * HOLDING state).
+     */
+    public static final String ACTION_HANG_UP_ONGOING_CALL =
+            "com.android.phone.ACTION_HANG_UP_ONGOING_CALL";
+
+    /**
+     * Intent Action used for making a phone call from Notification bar.
+     * This is for missed call notifications.
+     */
+    public static final String ACTION_CALL_BACK_FROM_NOTIFICATION =
+            "com.android.phone.ACTION_CALL_BACK_FROM_NOTIFICATION";
+
+    /**
+     * Intent Action used for sending a SMS from notification bar.
+     * This is for missed call notifications.
+     */
+    public static final String ACTION_SEND_SMS_FROM_NOTIFICATION =
+            "com.android.phone.ACTION_SEND_SMS_FROM_NOTIFICATION";
+
+    private static PhoneGlobals sMe;
+
+    // A few important fields we expose to the rest of the package
+    // directly (rather than thru set/get methods) for efficiency.
+    Phone phone;
+    CallController callController;
+    InCallUiState inCallUiState;
+    CallerInfoCache callerInfoCache;
+    CallNotifier notifier;
+    NotificationMgr notificationMgr;
+    Ringer ringer;
+    IBluetoothHeadsetPhone mBluetoothPhone;
+    PhoneInterfaceManager phoneMgr;
+    CallManager mCM;
+    CallStateMonitor callStateMonitor;
+    int mBluetoothHeadsetState = BluetoothProfile.STATE_DISCONNECTED;
+    int mBluetoothHeadsetAudioState = BluetoothHeadset.STATE_AUDIO_DISCONNECTED;
+    boolean mShowBluetoothIndication = false;
+    static int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
+    static boolean sVoiceCapable = true;
+
+    // Internal PhoneApp Call state tracker
+    CdmaPhoneCallState cdmaPhoneCallState;
+
+    // The InCallScreen instance (or null if the InCallScreen hasn't been
+    // created yet.)
+    private InCallScreen mInCallScreen;
+
+    // The currently-active PUK entry activity and progress dialog.
+    // Normally, these are the Emergency Dialer and the subsequent
+    // progress dialog.  null if there is are no such objects in
+    // the foreground.
+    private Activity mPUKEntryActivity;
+    private ProgressDialog mPUKEntryProgressDialog;
+
+    private boolean mIsSimPinEnabled;
+    private String mCachedSimPin;
+
+    // True if a wired headset is currently plugged in, based on the state
+    // from the latest Intent.ACTION_HEADSET_PLUG broadcast we received in
+    // mReceiver.onReceive().
+    private boolean mIsHeadsetPlugged;
+
+    // True if the keyboard is currently *not* hidden
+    // Gets updated whenever there is a Configuration change
+    private boolean mIsHardKeyboardOpen;
+
+    // True if we are beginning a call, but the phone state has not changed yet
+    private boolean mBeginningCall;
+
+    // Last phone state seen by updatePhoneState()
+    private PhoneConstants.State mLastPhoneState = PhoneConstants.State.IDLE;
+
+    private WakeState mWakeState = WakeState.SLEEP;
+
+    private PowerManager mPowerManager;
+    private IPowerManager mPowerManagerService;
+    private PowerManager.WakeLock mWakeLock;
+    private PowerManager.WakeLock mPartialWakeLock;
+    private PowerManager.WakeLock mProximityWakeLock;
+    private KeyguardManager mKeyguardManager;
+    private AccelerometerListener mAccelerometerListener;
+    private int mOrientation = AccelerometerListener.ORIENTATION_UNKNOWN;
+
+    private UpdateLock mUpdateLock;
+
+    // Broadcast receiver for various intent broadcasts (see onCreate())
+    private final BroadcastReceiver mReceiver = new PhoneAppBroadcastReceiver();
+
+    // Broadcast receiver purely for ACTION_MEDIA_BUTTON broadcasts
+    private final BroadcastReceiver mMediaButtonReceiver = new MediaButtonBroadcastReceiver();
+
+    /** boolean indicating restoring mute state on InCallScreen.onResume() */
+    private boolean mShouldRestoreMuteOnInCallResume;
+
+    /**
+     * The singleton OtaUtils instance used for OTASP calls.
+     *
+     * The OtaUtils instance is created lazily the first time we need to
+     * make an OTASP call, regardless of whether it's an interactive or
+     * non-interactive OTASP call.
+     */
+    public OtaUtils otaUtils;
+
+    // Following are the CDMA OTA information Objects used during OTA Call.
+    // cdmaOtaProvisionData object store static OTA information that needs
+    // to be maintained even during Slider open/close scenarios.
+    // cdmaOtaConfigData object stores configuration info to control visiblity
+    // of each OTA Screens.
+    // cdmaOtaScreenState object store OTA Screen State information.
+    public OtaUtils.CdmaOtaProvisionData cdmaOtaProvisionData;
+    public OtaUtils.CdmaOtaConfigData cdmaOtaConfigData;
+    public OtaUtils.CdmaOtaScreenState cdmaOtaScreenState;
+    public OtaUtils.CdmaOtaInCallScreenUiState cdmaOtaInCallScreenUiState;
+
+    // TTY feature enabled on this platform
+    private boolean mTtyEnabled;
+    // Current TTY operating mode selected by user
+    private int mPreferredTtyMode = Phone.TTY_MODE_OFF;
+
+    /**
+     * Set the restore mute state flag. Used when we are setting the mute state
+     * OUTSIDE of user interaction {@link PhoneUtils#startNewCall(Phone)}
+     */
+    /*package*/void setRestoreMuteOnInCallResume (boolean mode) {
+        mShouldRestoreMuteOnInCallResume = mode;
+    }
+
+    /**
+     * Get the restore mute state flag.
+     * This is used by the InCallScreen {@link InCallScreen#onResume()} to figure
+     * out if we need to restore the mute state for the current active call.
+     */
+    /*package*/boolean getRestoreMuteOnInCallResume () {
+        return mShouldRestoreMuteOnInCallResume;
+    }
+
+    Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            PhoneConstants.State phoneState;
+            switch (msg.what) {
+                // Starts the SIP service. It's a no-op if SIP API is not supported
+                // on the deivce.
+                // TODO: Having the phone process host the SIP service is only
+                // temporary. Will move it to a persistent communication process
+                // later.
+                case EVENT_START_SIP_SERVICE:
+                    SipService.start(getApplicationContext());
+                    break;
+
+                // TODO: This event should be handled by the lock screen, just
+                // like the "SIM missing" and "Sim locked" cases (bug 1804111).
+                case EVENT_SIM_NETWORK_LOCKED:
+                    if (getResources().getBoolean(R.bool.ignore_sim_network_locked_events)) {
+                        // Some products don't have the concept of a "SIM network lock"
+                        Log.i(LOG_TAG, "Ignoring EVENT_SIM_NETWORK_LOCKED event; "
+                              + "not showing 'SIM network unlock' PIN entry screen");
+                    } else {
+                        // Normal case: show the "SIM network unlock" PIN entry screen.
+                        // The user won't be able to do anything else until
+                        // they enter a valid SIM network PIN.
+                        Log.i(LOG_TAG, "show sim depersonal panel");
+                        IccNetworkDepersonalizationPanel ndpPanel =
+                                new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance());
+                        ndpPanel.show();
+                    }
+                    break;
+
+                case EVENT_UPDATE_INCALL_NOTIFICATION:
+                    // Tell the NotificationMgr to update the "ongoing
+                    // call" icon in the status bar, if necessary.
+                    // Currently, this is triggered by a bluetooth headset
+                    // state change (since the status bar icon needs to
+                    // turn blue when bluetooth is active.)
+                    if (DBG) Log.d (LOG_TAG, "- updating in-call notification from handler...");
+                    notificationMgr.updateInCallNotification();
+                    break;
+
+                case EVENT_DATA_ROAMING_DISCONNECTED:
+                    notificationMgr.showDataDisconnectedRoaming();
+                    break;
+
+                case EVENT_DATA_ROAMING_OK:
+                    notificationMgr.hideDataDisconnectedRoaming();
+                    break;
+
+                case MMI_COMPLETE:
+                    onMMIComplete((AsyncResult) msg.obj);
+                    break;
+
+                case MMI_CANCEL:
+                    PhoneUtils.cancelMmiCode(phone);
+                    break;
+
+                case EVENT_WIRED_HEADSET_PLUG:
+                    // Since the presence of a wired headset or bluetooth affects the
+                    // speakerphone, update the "speaker" state.  We ONLY want to do
+                    // this on the wired headset connect / disconnect events for now
+                    // though, so we're only triggering on EVENT_WIRED_HEADSET_PLUG.
+
+                    phoneState = mCM.getState();
+                    // Do not change speaker state if phone is not off hook
+                    if (phoneState == PhoneConstants.State.OFFHOOK && !isBluetoothHeadsetAudioOn()) {
+                        if (!isHeadsetPlugged()) {
+                            // if the state is "not connected", restore the speaker state.
+                            PhoneUtils.restoreSpeakerMode(getApplicationContext());
+                        } else {
+                            // if the state is "connected", force the speaker off without
+                            // storing the state.
+                            PhoneUtils.turnOnSpeaker(getApplicationContext(), false, false);
+                        }
+                    }
+                    // Update the Proximity sensor based on headset state
+                    updateProximitySensorMode(phoneState);
+
+                    // Force TTY state update according to new headset state
+                    if (mTtyEnabled) {
+                        sendMessage(obtainMessage(EVENT_TTY_PREFERRED_MODE_CHANGED, 0));
+                    }
+                    break;
+
+                case EVENT_SIM_STATE_CHANGED:
+                    // Marks the event where the SIM goes into ready state.
+                    // Right now, this is only used for the PUK-unlocking
+                    // process.
+                    if (msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_READY)) {
+                        // when the right event is triggered and there
+                        // are UI objects in the foreground, we close
+                        // them to display the lock panel.
+                        if (mPUKEntryActivity != null) {
+                            mPUKEntryActivity.finish();
+                            mPUKEntryActivity = null;
+                        }
+                        if (mPUKEntryProgressDialog != null) {
+                            mPUKEntryProgressDialog.dismiss();
+                            mPUKEntryProgressDialog = null;
+                        }
+                    }
+                    break;
+
+                case EVENT_UNSOL_CDMA_INFO_RECORD:
+                    //TODO: handle message here;
+                    break;
+
+                case EVENT_DOCK_STATE_CHANGED:
+                    // If the phone is docked/undocked during a call, and no wired or BT headset
+                    // is connected: turn on/off the speaker accordingly.
+                    boolean inDockMode = false;
+                    if (mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+                        inDockMode = true;
+                    }
+                    if (VDBG) Log.d(LOG_TAG, "received EVENT_DOCK_STATE_CHANGED. Phone inDock = "
+                            + inDockMode);
+
+                    phoneState = mCM.getState();
+                    if (phoneState == PhoneConstants.State.OFFHOOK &&
+                        !isHeadsetPlugged() && !isBluetoothHeadsetAudioOn()) {
+                        PhoneUtils.turnOnSpeaker(getApplicationContext(), inDockMode, true);
+                        updateInCallScreen();  // Has no effect if the InCallScreen isn't visible
+                    }
+                    break;
+
+                case EVENT_TTY_PREFERRED_MODE_CHANGED:
+                    // TTY mode is only applied if a headset is connected
+                    int ttyMode;
+                    if (isHeadsetPlugged()) {
+                        ttyMode = mPreferredTtyMode;
+                    } else {
+                        ttyMode = Phone.TTY_MODE_OFF;
+                    }
+                    phone.setTTYMode(ttyMode, mHandler.obtainMessage(EVENT_TTY_MODE_SET));
+                    break;
+
+                case EVENT_TTY_MODE_GET:
+                    handleQueryTTYModeResponse(msg);
+                    break;
+
+                case EVENT_TTY_MODE_SET:
+                    handleSetTTYModeResponse(msg);
+                    break;
+            }
+        }
+    };
+
+    public PhoneGlobals(Context context) {
+        super(context);
+        sMe = this;
+    }
+
+    public void onCreate() {
+        if (VDBG) Log.v(LOG_TAG, "onCreate()...");
+
+        ContentResolver resolver = getContentResolver();
+
+        // Cache the "voice capable" flag.
+        // This flag currently comes from a resource (which is
+        // overrideable on a per-product basis):
+        sVoiceCapable =
+                getResources().getBoolean(com.android.internal.R.bool.config_voice_capable);
+        // ...but this might eventually become a PackageManager "system
+        // feature" instead, in which case we'd do something like:
+        // sVoiceCapable =
+        //   getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_VOICE_CALLS);
+
+        if (phone == null) {
+            // Initialize the telephony framework
+            PhoneFactory.makeDefaultPhones(this);
+
+            // Get the default phone
+            phone = PhoneFactory.getDefaultPhone();
+
+            // Start TelephonyDebugService After the default phone is created.
+            Intent intent = new Intent(this, TelephonyDebugService.class);
+            startService(intent);
+
+            mCM = CallManager.getInstance();
+            mCM.registerPhone(phone);
+
+            // Create the NotificationMgr singleton, which is used to display
+            // status bar icons and control other status bar behavior.
+            notificationMgr = NotificationMgr.init(this);
+
+            phoneMgr = PhoneInterfaceManager.init(this, phone);
+
+            mHandler.sendEmptyMessage(EVENT_START_SIP_SERVICE);
+
+            int phoneType = phone.getPhoneType();
+
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                // Create an instance of CdmaPhoneCallState and initialize it to IDLE
+                cdmaPhoneCallState = new CdmaPhoneCallState();
+                cdmaPhoneCallState.CdmaPhoneCallStateInit();
+            }
+
+            if (BluetoothAdapter.getDefaultAdapter() != null) {
+                // Start BluetoothPhoneService even if device is not voice capable.
+                // The device can still support VOIP.
+                startService(new Intent(this, BluetoothPhoneService.class));
+                bindService(new Intent(this, BluetoothPhoneService.class),
+                            mBluetoothPhoneConnection, 0);
+            } else {
+                // Device is not bluetooth capable
+                mBluetoothPhone = null;
+            }
+
+            ringer = Ringer.init(this);
+
+            // before registering for phone state changes
+            mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
+            mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, LOG_TAG);
+            // lock used to keep the processor awake, when we don't care for the display.
+            mPartialWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
+                    | PowerManager.ON_AFTER_RELEASE, LOG_TAG);
+            // Wake lock used to control proximity sensor behavior.
+            if (mPowerManager.isWakeLockLevelSupported(
+                    PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
+                mProximityWakeLock = mPowerManager.newWakeLock(
+                        PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, LOG_TAG);
+            }
+            if (DBG) Log.d(LOG_TAG, "onCreate: mProximityWakeLock: " + mProximityWakeLock);
+
+            // create mAccelerometerListener only if we are using the proximity sensor
+            if (proximitySensorModeEnabled()) {
+                mAccelerometerListener = new AccelerometerListener(this, this);
+            }
+
+            mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
+
+            // get a handle to the service so that we can use it later when we
+            // want to set the poke lock.
+            mPowerManagerService = IPowerManager.Stub.asInterface(
+                    ServiceManager.getService("power"));
+
+            // Get UpdateLock to suppress system-update related events (e.g. dialog show-up)
+            // during phone calls.
+            mUpdateLock = new UpdateLock("phone");
+
+            if (DBG) Log.d(LOG_TAG, "onCreate: mUpdateLock: " + mUpdateLock);
+
+            CallLogger callLogger = new CallLogger(this, new CallLogAsync());
+
+            // Create the CallController singleton, which is the interface
+            // to the telephony layer for user-initiated telephony functionality
+            // (like making outgoing calls.)
+            callController = CallController.init(this, callLogger);
+            // ...and also the InCallUiState instance, used by the CallController to
+            // keep track of some "persistent state" of the in-call UI.
+            inCallUiState = InCallUiState.init(this);
+
+            // Create the CallerInfoCache singleton, which remembers custom ring tone and
+            // send-to-voicemail settings.
+            //
+            // The asynchronous caching will start just after this call.
+            callerInfoCache = CallerInfoCache.init(this);
+
+            // Monitors call activity from the telephony layer
+            callStateMonitor = new CallStateMonitor(mCM);
+
+            // Create the CallNotifer singleton, which handles
+            // asynchronous events from the telephony layer (like
+            // launching the incoming-call UI when an incoming call comes
+            // in.)
+            notifier = CallNotifier.init(this, phone, ringer, callLogger, callStateMonitor);
+
+            // register for ICC status
+            IccCard sim = phone.getIccCard();
+            if (sim != null) {
+                if (VDBG) Log.v(LOG_TAG, "register for ICC status");
+                sim.registerForNetworkLocked(mHandler, EVENT_SIM_NETWORK_LOCKED, null);
+            }
+
+            // register for MMI/USSD
+            mCM.registerForMmiComplete(mHandler, MMI_COMPLETE, null);
+
+            // register connection tracking to PhoneUtils
+            PhoneUtils.initializeConnectionHandler(mCM);
+
+            // Read platform settings for TTY feature
+            mTtyEnabled = getResources().getBoolean(R.bool.tty_enabled);
+
+            // Register for misc other intent broadcasts.
+            IntentFilter intentFilter =
+                    new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+            intentFilter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED);
+            intentFilter.addAction(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED);
+            intentFilter.addAction(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
+            intentFilter.addAction(Intent.ACTION_HEADSET_PLUG);
+            intentFilter.addAction(Intent.ACTION_DOCK_EVENT);
+            intentFilter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
+            intentFilter.addAction(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+            intentFilter.addAction(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED);
+            intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
+            if (mTtyEnabled) {
+                intentFilter.addAction(TtyIntent.TTY_PREFERRED_MODE_CHANGE_ACTION);
+            }
+            intentFilter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
+            registerReceiver(mReceiver, intentFilter);
+
+            // Use a separate receiver for ACTION_MEDIA_BUTTON broadcasts,
+            // since we need to manually adjust its priority (to make sure
+            // we get these intents *before* the media player.)
+            IntentFilter mediaButtonIntentFilter =
+                    new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
+            // TODO verify the independent priority doesn't need to be handled thanks to the
+            //  private intent handler registration
+            // Make sure we're higher priority than the media player's
+            // MediaButtonIntentReceiver (which currently has the default
+            // priority of zero; see apps/Music/AndroidManifest.xml.)
+            mediaButtonIntentFilter.setPriority(1);
+            //
+            registerReceiver(mMediaButtonReceiver, mediaButtonIntentFilter);
+            // register the component so it gets priority for calls
+            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+            am.registerMediaButtonEventReceiverForCalls(new ComponentName(this.getPackageName(),
+                    MediaButtonBroadcastReceiver.class.getName()));
+
+            //set the default values for the preferences in the phone.
+            PreferenceManager.setDefaultValues(this, R.xml.network_setting, false);
+
+            PreferenceManager.setDefaultValues(this, R.xml.call_feature_setting, false);
+
+            // Make sure the audio mode (along with some
+            // audio-mode-related state of our own) is initialized
+            // correctly, given the current state of the phone.
+            PhoneUtils.setAudioMode(mCM);
+        }
+
+        if (TelephonyCapabilities.supportsOtasp(phone)) {
+            cdmaOtaProvisionData = new OtaUtils.CdmaOtaProvisionData();
+            cdmaOtaConfigData = new OtaUtils.CdmaOtaConfigData();
+            cdmaOtaScreenState = new OtaUtils.CdmaOtaScreenState();
+            cdmaOtaInCallScreenUiState = new OtaUtils.CdmaOtaInCallScreenUiState();
+        }
+
+        // XXX pre-load the SimProvider so that it's ready
+        resolver.getType(Uri.parse("content://icc/adn"));
+
+        // start with the default value to set the mute state.
+        mShouldRestoreMuteOnInCallResume = false;
+
+        // TODO: Register for Cdma Information Records
+        // phone.registerCdmaInformationRecord(mHandler, EVENT_UNSOL_CDMA_INFO_RECORD, null);
+
+        // Read TTY settings and store it into BP NV.
+        // AP owns (i.e. stores) the TTY setting in AP settings database and pushes the setting
+        // to BP at power up (BP does not need to make the TTY setting persistent storage).
+        // This way, there is a single owner (i.e AP) for the TTY setting in the phone.
+        if (mTtyEnabled) {
+            mPreferredTtyMode = android.provider.Settings.Secure.getInt(
+                    phone.getContext().getContentResolver(),
+                    android.provider.Settings.Secure.PREFERRED_TTY_MODE,
+                    Phone.TTY_MODE_OFF);
+            mHandler.sendMessage(mHandler.obtainMessage(EVENT_TTY_PREFERRED_MODE_CHANGED, 0));
+        }
+        // Read HAC settings and configure audio hardware
+        if (getResources().getBoolean(R.bool.hac_enabled)) {
+            int hac = android.provider.Settings.System.getInt(phone.getContext().getContentResolver(),
+                                                              android.provider.Settings.System.HEARING_AID,
+                                                              0);
+            AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+            audioManager.setParameter(CallFeaturesSetting.HAC_KEY, hac != 0 ?
+                                      CallFeaturesSetting.HAC_VAL_ON :
+                                      CallFeaturesSetting.HAC_VAL_OFF);
+        }
+   }
+
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
+            mIsHardKeyboardOpen = true;
+        } else {
+            mIsHardKeyboardOpen = false;
+        }
+
+        // Update the Proximity sensor based on keyboard state
+        updateProximitySensorMode(mCM.getState());
+    }
+
+    /**
+     * Returns the singleton instance of the PhoneApp.
+     */
+    static PhoneGlobals getInstance() {
+        if (sMe == null) {
+            throw new IllegalStateException("No PhoneGlobals here!");
+        }
+        return sMe;
+    }
+
+    /**
+     * Returns the singleton instance of the PhoneApp if running as the
+     * primary user, otherwise null.
+     */
+    static PhoneGlobals getInstanceIfPrimary() {
+        return sMe;
+    }
+
+    /**
+     * Returns the Phone associated with this instance
+     */
+    static Phone getPhone() {
+        return getInstance().phone;
+    }
+
+    Ringer getRinger() {
+        return ringer;
+    }
+
+    IBluetoothHeadsetPhone getBluetoothPhoneService() {
+        return mBluetoothPhone;
+    }
+
+    boolean isBluetoothHeadsetAudioOn() {
+        return (mBluetoothHeadsetAudioState != BluetoothHeadset.STATE_AUDIO_DISCONNECTED);
+    }
+
+    /**
+     * Returns an Intent that can be used to go to the "Call log"
+     * UI (aka CallLogActivity) in the Contacts app.
+     *
+     * Watch out: there's no guarantee that the system has any activity to
+     * handle this intent.  (In particular there may be no "Call log" at
+     * all on on non-voice-capable devices.)
+     */
+    /* package */ static Intent createCallLogIntent() {
+        Intent intent = new Intent(Intent.ACTION_VIEW, null);
+        intent.setType("vnd.android.cursor.dir/calls");
+        return intent;
+    }
+
+    /**
+     * Return an Intent that can be used to bring up the in-call screen.
+     *
+     * This intent can only be used from within the Phone app, since the
+     * InCallScreen is not exported from our AndroidManifest.
+     */
+    /* package */ static Intent createInCallIntent() {
+        Intent intent = new Intent(Intent.ACTION_MAIN, null);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
+                | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
+        intent.setClassName("com.android.phone", getCallScreenClassName());
+        return intent;
+    }
+
+    /**
+     * Variation of createInCallIntent() that also specifies whether the
+     * DTMF dialpad should be initially visible when the InCallScreen
+     * comes up.
+     */
+    /* package */ static Intent createInCallIntent(boolean showDialpad) {
+        Intent intent = createInCallIntent();
+        intent.putExtra(InCallScreen.SHOW_DIALPAD_EXTRA, showDialpad);
+        return intent;
+    }
+
+    /**
+     * Returns PendingIntent for hanging up ongoing phone call. This will typically be used from
+     * Notification context.
+     */
+    /* package */ static PendingIntent createHangUpOngoingCallPendingIntent(Context context) {
+        Intent intent = new Intent(PhoneGlobals.ACTION_HANG_UP_ONGOING_CALL, null,
+                context, NotificationBroadcastReceiver.class);
+        return PendingIntent.getBroadcast(context, 0, intent, 0);
+    }
+
+    /* package */ static PendingIntent getCallBackPendingIntent(Context context, String number) {
+        Intent intent = new Intent(ACTION_CALL_BACK_FROM_NOTIFICATION,
+                Uri.fromParts(Constants.SCHEME_TEL, number, null),
+                context, NotificationBroadcastReceiver.class);
+        return PendingIntent.getBroadcast(context, 0, intent, 0);
+    }
+
+    /* package */ static PendingIntent getSendSmsFromNotificationPendingIntent(
+            Context context, String number) {
+        Intent intent = new Intent(ACTION_SEND_SMS_FROM_NOTIFICATION,
+                Uri.fromParts(Constants.SCHEME_SMSTO, number, null),
+                context, NotificationBroadcastReceiver.class);
+        return PendingIntent.getBroadcast(context, 0, intent, 0);
+    }
+
+    private static String getCallScreenClassName() {
+        return InCallScreen.class.getName();
+    }
+
+    /**
+     * Starts the InCallScreen Activity.
+     */
+    /* package */ void displayCallScreen() {
+        if (VDBG) Log.d(LOG_TAG, "displayCallScreen()...");
+
+        // On non-voice-capable devices we shouldn't ever be trying to
+        // bring up the InCallScreen in the first place.
+        if (!sVoiceCapable) {
+            Log.w(LOG_TAG, "displayCallScreen() not allowed: non-voice-capable device",
+                  new Throwable("stack dump"));  // Include a stack trace since this warning
+                                                 // indicates a bug in our caller
+            return;
+        }
+
+        try {
+            startActivity(createInCallIntent());
+        } catch (ActivityNotFoundException e) {
+            // It's possible that the in-call UI might not exist (like on
+            // non-voice-capable devices), so don't crash if someone
+            // accidentally tries to bring it up...
+            Log.w(LOG_TAG, "displayCallScreen: transition to InCallScreen failed: " + e);
+        }
+        Profiler.callScreenRequested();
+    }
+
+    boolean isSimPinEnabled() {
+        return mIsSimPinEnabled;
+    }
+
+    boolean authenticateAgainstCachedSimPin(String pin) {
+        return (mCachedSimPin != null && mCachedSimPin.equals(pin));
+    }
+
+    void setCachedSimPin(String pin) {
+        mCachedSimPin = pin;
+    }
+
+    void setInCallScreenInstance(InCallScreen inCallScreen) {
+        mInCallScreen = inCallScreen;
+    }
+
+    /**
+     * @return true if the in-call UI is running as the foreground
+     * activity.  (In other words, from the perspective of the
+     * InCallScreen activity, return true between onResume() and
+     * onPause().)
+     *
+     * Note this method will return false if the screen is currently off,
+     * even if the InCallScreen *was* in the foreground just before the
+     * screen turned off.  (This is because the foreground activity is
+     * always "paused" while the screen is off.)
+     */
+    boolean isShowingCallScreen() {
+        if (mInCallScreen == null) return false;
+        return mInCallScreen.isForegroundActivity();
+    }
+
+    /**
+     * @return true if the in-call UI is running as the foreground activity, or,
+     * it went to background due to screen being turned off. This might be useful
+     * to determine if the in-call screen went to background because of other
+     * activities, or its proximity sensor state or manual power-button press.
+     *
+     * Here are some examples.
+     *
+     * - If you want to know if the activity is in foreground or screen is turned off
+     *   from the in-call UI (i.e. though it is not "foreground" anymore it will become
+     *   so after screen being turned on), check
+     *   {@link #isShowingCallScreenForProximity()} is true or not.
+     *   {@link #updateProximitySensorMode(com.android.internal.telephony.PhoneConstants.State)} is
+     *   doing this.
+     *
+     * - If you want to know if the activity is not in foreground just because screen
+     *   is turned off (not due to other activity's interference), check
+     *   {@link #isShowingCallScreen()} is false *and* {@link #isShowingCallScreenForProximity()}
+     *   is true. InCallScreen#onDisconnect() is doing this check.
+     *
+     * @see #isShowingCallScreen()
+     *
+     * TODO: come up with better naming..
+     */
+    boolean isShowingCallScreenForProximity() {
+        if (mInCallScreen == null) return false;
+        return mInCallScreen.isForegroundActivityForProximity();
+    }
+
+    /**
+     * Dismisses the in-call UI.
+     *
+     * This also ensures that you won't be able to get back to the in-call
+     * UI via the BACK button (since this call removes the InCallScreen
+     * from the activity history.)
+     * For OTA Call, it call InCallScreen api to handle OTA Call End scenario
+     * to display OTA Call End screen.
+     */
+    /* package */ void dismissCallScreen() {
+        if (mInCallScreen != null) {
+            if ((TelephonyCapabilities.supportsOtasp(phone)) &&
+                    (mInCallScreen.isOtaCallInActiveState()
+                    || mInCallScreen.isOtaCallInEndState()
+                    || ((cdmaOtaScreenState != null)
+                    && (cdmaOtaScreenState.otaScreenState
+                            != CdmaOtaScreenState.OtaScreenState.OTA_STATUS_UNDEFINED)))) {
+                // TODO: During OTA Call, display should not become dark to
+                // allow user to see OTA UI update. Phone app needs to hold
+                // a SCREEN_DIM_WAKE_LOCK wake lock during the entire OTA call.
+                wakeUpScreen();
+                // If InCallScreen is not in foreground we resume it to show the OTA call end screen
+                // Fire off the InCallScreen intent
+                displayCallScreen();
+
+                mInCallScreen.handleOtaCallEnd();
+                return;
+            } else {
+                mInCallScreen.finish();
+            }
+        }
+    }
+
+    /**
+     * Handles OTASP-related events from the telephony layer.
+     *
+     * While an OTASP call is active, the CallNotifier forwards
+     * OTASP-related telephony events to this method.
+     */
+    void handleOtaspEvent(Message msg) {
+        if (DBG) Log.d(LOG_TAG, "handleOtaspEvent(message " + msg + ")...");
+
+        if (otaUtils == null) {
+            // We shouldn't be getting OTASP events without ever
+            // having started the OTASP call in the first place!
+            Log.w(LOG_TAG, "handleOtaEvents: got an event but otaUtils is null! "
+                  + "message = " + msg);
+            return;
+        }
+
+        otaUtils.onOtaProvisionStatusChanged((AsyncResult) msg.obj);
+    }
+
+    /**
+     * Similarly, handle the disconnect event of an OTASP call
+     * by forwarding it to the OtaUtils instance.
+     */
+    /* package */ void handleOtaspDisconnect() {
+        if (DBG) Log.d(LOG_TAG, "handleOtaspDisconnect()...");
+
+        if (otaUtils == null) {
+            // We shouldn't be getting OTASP events without ever
+            // having started the OTASP call in the first place!
+            Log.w(LOG_TAG, "handleOtaspDisconnect: otaUtils is null!");
+            return;
+        }
+
+        otaUtils.onOtaspDisconnect();
+    }
+
+    /**
+     * Sets the activity responsible for un-PUK-blocking the device
+     * so that we may close it when we receive a positive result.
+     * mPUKEntryActivity is also used to indicate to the device that
+     * we are trying to un-PUK-lock the phone. In other words, iff
+     * it is NOT null, then we are trying to unlock and waiting for
+     * the SIM to move to READY state.
+     *
+     * @param activity is the activity to close when PUK has
+     * finished unlocking. Can be set to null to indicate the unlock
+     * or SIM READYing process is over.
+     */
+    void setPukEntryActivity(Activity activity) {
+        mPUKEntryActivity = activity;
+    }
+
+    Activity getPUKEntryActivity() {
+        return mPUKEntryActivity;
+    }
+
+    /**
+     * Sets the dialog responsible for notifying the user of un-PUK-
+     * blocking - SIM READYing progress, so that we may dismiss it
+     * when we receive a positive result.
+     *
+     * @param dialog indicates the progress dialog informing the user
+     * of the state of the device.  Dismissed upon completion of
+     * READYing process
+     */
+    void setPukEntryProgressDialog(ProgressDialog dialog) {
+        mPUKEntryProgressDialog = dialog;
+    }
+
+    ProgressDialog getPUKEntryProgressDialog() {
+        return mPUKEntryProgressDialog;
+    }
+
+    /**
+     * Controls whether or not the screen is allowed to sleep.
+     *
+     * Once sleep is allowed (WakeState is SLEEP), it will rely on the
+     * settings for the poke lock to determine when to timeout and let
+     * the device sleep {@link PhoneGlobals#setScreenTimeout}.
+     *
+     * @param ws tells the device to how to wake.
+     */
+    /* package */ void requestWakeState(WakeState ws) {
+        if (VDBG) Log.d(LOG_TAG, "requestWakeState(" + ws + ")...");
+        synchronized (this) {
+            if (mWakeState != ws) {
+                switch (ws) {
+                    case PARTIAL:
+                        // acquire the processor wake lock, and release the FULL
+                        // lock if it is being held.
+                        mPartialWakeLock.acquire();
+                        if (mWakeLock.isHeld()) {
+                            mWakeLock.release();
+                        }
+                        break;
+                    case FULL:
+                        // acquire the full wake lock, and release the PARTIAL
+                        // lock if it is being held.
+                        mWakeLock.acquire();
+                        if (mPartialWakeLock.isHeld()) {
+                            mPartialWakeLock.release();
+                        }
+                        break;
+                    case SLEEP:
+                    default:
+                        // release both the PARTIAL and FULL locks.
+                        if (mWakeLock.isHeld()) {
+                            mWakeLock.release();
+                        }
+                        if (mPartialWakeLock.isHeld()) {
+                            mPartialWakeLock.release();
+                        }
+                        break;
+                }
+                mWakeState = ws;
+            }
+        }
+    }
+
+    /**
+     * If we are not currently keeping the screen on, then poke the power
+     * manager to wake up the screen for the user activity timeout duration.
+     */
+    /* package */ void wakeUpScreen() {
+        synchronized (this) {
+            if (mWakeState == WakeState.SLEEP) {
+                if (DBG) Log.d(LOG_TAG, "pulse screen lock");
+                mPowerManager.wakeUp(SystemClock.uptimeMillis());
+            }
+        }
+    }
+
+    /**
+     * Sets the wake state and screen timeout based on the current state
+     * of the phone, and the current state of the in-call UI.
+     *
+     * This method is a "UI Policy" wrapper around
+     * {@link PhoneGlobals#requestWakeState} and {@link PhoneGlobals#setScreenTimeout}.
+     *
+     * It's safe to call this method regardless of the state of the Phone
+     * (e.g. whether or not it's idle), and regardless of the state of the
+     * Phone UI (e.g. whether or not the InCallScreen is active.)
+     */
+    /* package */ void updateWakeState() {
+        PhoneConstants.State state = mCM.getState();
+
+        // True if the in-call UI is the foreground activity.
+        // (Note this will be false if the screen is currently off,
+        // since in that case *no* activity is in the foreground.)
+        boolean isShowingCallScreen = isShowingCallScreen();
+
+        // True if the InCallScreen's DTMF dialer is currently opened.
+        // (Note this does NOT imply whether or not the InCallScreen
+        // itself is visible.)
+        boolean isDialerOpened = (mInCallScreen != null) && mInCallScreen.isDialerOpened();
+
+        // True if the speakerphone is in use.  (If so, we *always* use
+        // the default timeout.  Since the user is obviously not holding
+        // the phone up to his/her face, we don't need to worry about
+        // false touches, and thus don't need to turn the screen off so
+        // aggressively.)
+        // Note that we need to make a fresh call to this method any
+        // time the speaker state changes.  (That happens in
+        // PhoneUtils.turnOnSpeaker().)
+        boolean isSpeakerInUse = (state == PhoneConstants.State.OFFHOOK) && PhoneUtils.isSpeakerOn(this);
+
+        // TODO (bug 1440854): The screen timeout *might* also need to
+        // depend on the bluetooth state, but this isn't as clear-cut as
+        // the speaker state (since while using BT it's common for the
+        // user to put the phone straight into a pocket, in which case the
+        // timeout should probably still be short.)
+
+        if (DBG) Log.d(LOG_TAG, "updateWakeState: callscreen " + isShowingCallScreen
+                       + ", dialer " + isDialerOpened
+                       + ", speaker " + isSpeakerInUse + "...");
+
+        //
+        // Decide whether to force the screen on or not.
+        //
+        // Force the screen to be on if the phone is ringing or dialing,
+        // or if we're displaying the "Call ended" UI for a connection in
+        // the "disconnected" state.
+        // However, if the phone is disconnected while the user is in the
+        // middle of selecting a quick response message, we should not force
+        // the screen to be on.
+        //
+        boolean isRinging = (state == PhoneConstants.State.RINGING);
+        boolean isDialing = (phone.getForegroundCall().getState() == Call.State.DIALING);
+        boolean showingQuickResponseDialog = (mInCallScreen != null) &&
+                mInCallScreen.isQuickResponseDialogShowing();
+        boolean showingDisconnectedConnection =
+                PhoneUtils.hasDisconnectedConnections(phone) && isShowingCallScreen;
+        boolean keepScreenOn = isRinging || isDialing ||
+                (showingDisconnectedConnection && !showingQuickResponseDialog);
+        if (DBG) Log.d(LOG_TAG, "updateWakeState: keepScreenOn = " + keepScreenOn
+                       + " (isRinging " + isRinging
+                       + ", isDialing " + isDialing
+                       + ", showingQuickResponse " + showingQuickResponseDialog
+                       + ", showingDisc " + showingDisconnectedConnection + ")");
+        // keepScreenOn == true means we'll hold a full wake lock:
+        requestWakeState(keepScreenOn ? WakeState.FULL : WakeState.SLEEP);
+    }
+
+    /**
+     * Manually pokes the PowerManager's userActivity method.  Since we
+     * set the {@link WindowManager.LayoutParams#INPUT_FEATURE_DISABLE_USER_ACTIVITY}
+     * flag while the InCallScreen is active when there is no proximity sensor,
+     * we need to do this for touch events that really do count as user activity
+     * (like pressing any onscreen UI elements.)
+     */
+    /* package */ void pokeUserActivity() {
+        if (VDBG) Log.d(LOG_TAG, "pokeUserActivity()...");
+        mPowerManager.userActivity(SystemClock.uptimeMillis(), false);
+    }
+
+    /**
+     * Set when a new outgoing call is beginning, so we can update
+     * the proximity sensor state.
+     * Cleared when the InCallScreen is no longer in the foreground,
+     * in case the call fails without changing the telephony state.
+     */
+    /* package */ void setBeginningCall(boolean beginning) {
+        // Note that we are beginning a new call, for proximity sensor support
+        mBeginningCall = beginning;
+        // Update the Proximity sensor based on mBeginningCall state
+        updateProximitySensorMode(mCM.getState());
+    }
+
+    /**
+     * Updates the wake lock used to control proximity sensor behavior,
+     * based on the current state of the phone.  This method is called
+     * from the CallNotifier on any phone state change.
+     *
+     * On devices that have a proximity sensor, to avoid false touches
+     * during a call, we hold a PROXIMITY_SCREEN_OFF_WAKE_LOCK wake lock
+     * whenever the phone is off hook.  (When held, that wake lock causes
+     * the screen to turn off automatically when the sensor detects an
+     * object close to the screen.)
+     *
+     * This method is a no-op for devices that don't have a proximity
+     * sensor.
+     *
+     * Note this method doesn't care if the InCallScreen is the foreground
+     * activity or not.  That's because we want the proximity sensor to be
+     * enabled any time the phone is in use, to avoid false cheek events
+     * for whatever app you happen to be running.
+     *
+     * Proximity wake lock will *not* be held if any one of the
+     * conditions is true while on a call:
+     * 1) If the audio is routed via Bluetooth
+     * 2) If a wired headset is connected
+     * 3) if the speaker is ON
+     * 4) If the slider is open(i.e. the hardkeyboard is *not* hidden)
+     *
+     * @param state current state of the phone (see {@link Phone#State})
+     */
+    /* package */ void updateProximitySensorMode(PhoneConstants.State state) {
+        if (VDBG) Log.d(LOG_TAG, "updateProximitySensorMode: state = " + state);
+
+        if (proximitySensorModeEnabled()) {
+            synchronized (mProximityWakeLock) {
+                // turn proximity sensor off and turn screen on immediately if
+                // we are using a headset, the keyboard is open, or the device
+                // is being held in a horizontal position.
+                boolean screenOnImmediately = (isHeadsetPlugged()
+                                               || PhoneUtils.isSpeakerOn(this)
+                                               || isBluetoothHeadsetAudioOn()
+                                               || mIsHardKeyboardOpen);
+
+                // We do not keep the screen off when the user is outside in-call screen and we are
+                // horizontal, but we do not force it on when we become horizontal until the
+                // proximity sensor goes negative.
+                boolean horizontal =
+                        (mOrientation == AccelerometerListener.ORIENTATION_HORIZONTAL);
+                screenOnImmediately |= !isShowingCallScreenForProximity() && horizontal;
+
+                // We do not keep the screen off when dialpad is visible, we are horizontal, and
+                // the in-call screen is being shown.
+                // At that moment we're pretty sure users want to use it, instead of letting the
+                // proximity sensor turn off the screen by their hands.
+                boolean dialpadVisible = false;
+                if (mInCallScreen != null) {
+                    dialpadVisible =
+                            mInCallScreen.getUpdatedInCallControlState().dialpadEnabled
+                            && mInCallScreen.getUpdatedInCallControlState().dialpadVisible
+                            && isShowingCallScreen();
+                }
+                screenOnImmediately |= dialpadVisible && horizontal;
+
+                if (((state == PhoneConstants.State.OFFHOOK) || mBeginningCall) && !screenOnImmediately) {
+                    // Phone is in use!  Arrange for the screen to turn off
+                    // automatically when the sensor detects a close object.
+                    if (!mProximityWakeLock.isHeld()) {
+                        if (DBG) Log.d(LOG_TAG, "updateProximitySensorMode: acquiring...");
+                        mProximityWakeLock.acquire();
+                    } else {
+                        if (VDBG) Log.d(LOG_TAG, "updateProximitySensorMode: lock already held.");
+                    }
+                } else {
+                    // Phone is either idle, or ringing.  We don't want any
+                    // special proximity sensor behavior in either case.
+                    if (mProximityWakeLock.isHeld()) {
+                        if (DBG) Log.d(LOG_TAG, "updateProximitySensorMode: releasing...");
+                        // Wait until user has moved the phone away from his head if we are
+                        // releasing due to the phone call ending.
+                        // Qtherwise, turn screen on immediately
+                        int flags =
+                            (screenOnImmediately ? 0 : PowerManager.WAIT_FOR_PROXIMITY_NEGATIVE);
+                        mProximityWakeLock.release(flags);
+                    } else {
+                        if (VDBG) {
+                            Log.d(LOG_TAG, "updateProximitySensorMode: lock already released.");
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Override
+    public void orientationChanged(int orientation) {
+        mOrientation = orientation;
+        updateProximitySensorMode(mCM.getState());
+    }
+
+    /**
+     * Notifies the phone app when the phone state changes.
+     *
+     * This method will updates various states inside Phone app (e.g. proximity sensor mode,
+     * accelerometer listener state, update-lock state, etc.)
+     */
+    /* package */ void updatePhoneState(PhoneConstants.State state) {
+        if (state != mLastPhoneState) {
+            mLastPhoneState = state;
+            updateProximitySensorMode(state);
+
+            // Try to acquire or release UpdateLock.
+            //
+            // Watch out: we don't release the lock here when the screen is still in foreground.
+            // At that time InCallScreen will release it on onPause().
+            if (state != PhoneConstants.State.IDLE) {
+                // UpdateLock is a recursive lock, while we may get "acquire" request twice and
+                // "release" request once for a single call (RINGING + OFFHOOK and IDLE).
+                // We need to manually ensure the lock is just acquired once for each (and this
+                // will prevent other possible buggy situations too).
+                if (!mUpdateLock.isHeld()) {
+                    mUpdateLock.acquire();
+                }
+            } else {
+                if (!isShowingCallScreen()) {
+                    if (!mUpdateLock.isHeld()) {
+                        mUpdateLock.release();
+                    }
+                } else {
+                    // For this case InCallScreen will take care of the release() call.
+                }
+            }
+
+            if (mAccelerometerListener != null) {
+                // use accelerometer to augment proximity sensor when in call
+                mOrientation = AccelerometerListener.ORIENTATION_UNKNOWN;
+                mAccelerometerListener.enable(state == PhoneConstants.State.OFFHOOK);
+            }
+            // clear our beginning call flag
+            mBeginningCall = false;
+            // While we are in call, the in-call screen should dismiss the keyguard.
+            // This allows the user to press Home to go directly home without going through
+            // an insecure lock screen.
+            // But we do not want to do this if there is no active call so we do not
+            // bypass the keyguard if the call is not answered or declined.
+            if (mInCallScreen != null) {
+                mInCallScreen.updateKeyguardPolicy(state == PhoneConstants.State.OFFHOOK);
+            }
+        }
+    }
+
+    /* package */ PhoneConstants.State getPhoneState() {
+        return mLastPhoneState;
+    }
+
+    /**
+     * Returns UpdateLock object.
+     */
+    /* package */ UpdateLock getUpdateLock() {
+        return mUpdateLock;
+    }
+
+    /**
+     * @return true if this device supports the "proximity sensor
+     * auto-lock" feature while in-call (see updateProximitySensorMode()).
+     */
+    /* package */ boolean proximitySensorModeEnabled() {
+        return (mProximityWakeLock != null);
+    }
+
+    KeyguardManager getKeyguardManager() {
+        return mKeyguardManager;
+    }
+
+    private void onMMIComplete(AsyncResult r) {
+        if (VDBG) Log.d(LOG_TAG, "onMMIComplete()...");
+        MmiCode mmiCode = (MmiCode) r.result;
+        PhoneUtils.displayMMIComplete(phone, getInstance(), mmiCode, null, null);
+    }
+
+    private void initForNewRadioTechnology() {
+        if (DBG) Log.d(LOG_TAG, "initForNewRadioTechnology...");
+
+         if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            // Create an instance of CdmaPhoneCallState and initialize it to IDLE
+            cdmaPhoneCallState = new CdmaPhoneCallState();
+            cdmaPhoneCallState.CdmaPhoneCallStateInit();
+        }
+        if (TelephonyCapabilities.supportsOtasp(phone)) {
+            //create instances of CDMA OTA data classes
+            if (cdmaOtaProvisionData == null) {
+                cdmaOtaProvisionData = new OtaUtils.CdmaOtaProvisionData();
+            }
+            if (cdmaOtaConfigData == null) {
+                cdmaOtaConfigData = new OtaUtils.CdmaOtaConfigData();
+            }
+            if (cdmaOtaScreenState == null) {
+                cdmaOtaScreenState = new OtaUtils.CdmaOtaScreenState();
+            }
+            if (cdmaOtaInCallScreenUiState == null) {
+                cdmaOtaInCallScreenUiState = new OtaUtils.CdmaOtaInCallScreenUiState();
+            }
+        } else {
+            //Clean up OTA data in GSM/UMTS. It is valid only for CDMA
+            clearOtaState();
+        }
+
+        ringer.updateRingerContextAfterRadioTechnologyChange(this.phone);
+        notifier.updateCallNotifierRegistrationsAfterRadioTechnologyChange();
+        callStateMonitor.updateAfterRadioTechnologyChange();
+
+        if (mBluetoothPhone != null) {
+            try {
+                mBluetoothPhone.updateBtHandsfreeAfterRadioTechnologyChange();
+            } catch (RemoteException e) {
+                Log.e(LOG_TAG, Log.getStackTraceString(new Throwable()));
+            }
+        }
+        if (mInCallScreen != null) {
+            mInCallScreen.updateAfterRadioTechnologyChange();
+        }
+
+        // Update registration for ICC status after radio technology change
+        IccCard sim = phone.getIccCard();
+        if (sim != null) {
+            if (DBG) Log.d(LOG_TAG, "Update registration for ICC status...");
+
+            //Register all events new to the new active phone
+            sim.registerForNetworkLocked(mHandler, EVENT_SIM_NETWORK_LOCKED, null);
+        }
+    }
+
+
+    /**
+     * @return true if a wired headset is currently plugged in.
+     *
+     * @see Intent.ACTION_HEADSET_PLUG (which we listen for in mReceiver.onReceive())
+     */
+    boolean isHeadsetPlugged() {
+        return mIsHeadsetPlugged;
+    }
+
+    /**
+     * @return true if the onscreen UI should currently be showing the
+     * special "bluetooth is active" indication in a couple of places (in
+     * which UI elements turn blue and/or show the bluetooth logo.)
+     *
+     * This depends on the BluetoothHeadset state *and* the current
+     * telephony state; see shouldShowBluetoothIndication().
+     *
+     * @see CallCard
+     * @see NotificationMgr.updateInCallNotification
+     */
+    /* package */ boolean showBluetoothIndication() {
+        return mShowBluetoothIndication;
+    }
+
+    /**
+     * Recomputes the mShowBluetoothIndication flag based on the current
+     * bluetooth state and current telephony state.
+     *
+     * This needs to be called any time the bluetooth headset state or the
+     * telephony state changes.
+     *
+     * @param forceUiUpdate if true, force the UI elements that care
+     *                      about this flag to update themselves.
+     */
+    /* package */ void updateBluetoothIndication(boolean forceUiUpdate) {
+        mShowBluetoothIndication = shouldShowBluetoothIndication(mBluetoothHeadsetState,
+                                                                 mBluetoothHeadsetAudioState,
+                                                                 mCM);
+        if (forceUiUpdate) {
+            // Post Handler messages to the various components that might
+            // need to be refreshed based on the new state.
+            if (isShowingCallScreen()) mInCallScreen.requestUpdateBluetoothIndication();
+            if (DBG) Log.d (LOG_TAG, "- updating in-call notification for BT state change...");
+            mHandler.sendEmptyMessage(EVENT_UPDATE_INCALL_NOTIFICATION);
+        }
+
+        // Update the Proximity sensor based on Bluetooth audio state
+        updateProximitySensorMode(mCM.getState());
+    }
+
+    /**
+     * UI policy helper function for the couple of places in the UI that
+     * have some way of indicating that "bluetooth is in use."
+     *
+     * @return true if the onscreen UI should indicate that "bluetooth is in use",
+     *         based on the specified bluetooth headset state, and the
+     *         current state of the phone.
+     * @see showBluetoothIndication()
+     */
+    private static boolean shouldShowBluetoothIndication(int bluetoothState,
+                                                         int bluetoothAudioState,
+                                                         CallManager cm) {
+        // We want the UI to indicate that "bluetooth is in use" in two
+        // slightly different cases:
+        //
+        // (a) The obvious case: if a bluetooth headset is currently in
+        //     use for an ongoing call.
+        //
+        // (b) The not-so-obvious case: if an incoming call is ringing,
+        //     and we expect that audio *will* be routed to a bluetooth
+        //     headset once the call is answered.
+
+        switch (cm.getState()) {
+            case OFFHOOK:
+                // This covers normal active calls, and also the case if
+                // the foreground call is DIALING or ALERTING.  In this
+                // case, bluetooth is considered "active" if a headset
+                // is connected *and* audio is being routed to it.
+                return ((bluetoothState == BluetoothHeadset.STATE_CONNECTED)
+                        && (bluetoothAudioState == BluetoothHeadset.STATE_AUDIO_CONNECTED));
+
+            case RINGING:
+                // If an incoming call is ringing, we're *not* yet routing
+                // audio to the headset (since there's no in-call audio
+                // yet!)  In this case, if a bluetooth headset is
+                // connected at all, we assume that it'll become active
+                // once the user answers the phone.
+                return (bluetoothState == BluetoothHeadset.STATE_CONNECTED);
+
+            default:  // Presumably IDLE
+                return false;
+        }
+    }
+
+
+    /**
+     * Receiver for misc intent broadcasts the Phone app cares about.
+     */
+    private class PhoneAppBroadcastReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
+                boolean enabled = System.getInt(getContentResolver(),
+                        System.AIRPLANE_MODE_ON, 0) == 0;
+                phone.setRadioPower(enabled);
+            } else if (action.equals(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED)) {
+                mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
+                                                          BluetoothHeadset.STATE_DISCONNECTED);
+                if (VDBG) Log.d(LOG_TAG, "mReceiver: HEADSET_STATE_CHANGED_ACTION");
+                if (VDBG) Log.d(LOG_TAG, "==> new state: " + mBluetoothHeadsetState);
+                updateBluetoothIndication(true);  // Also update any visible UI if necessary
+            } else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
+                mBluetoothHeadsetAudioState =
+                        intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
+                                           BluetoothHeadset.STATE_AUDIO_DISCONNECTED);
+                if (VDBG) Log.d(LOG_TAG, "mReceiver: HEADSET_AUDIO_STATE_CHANGED_ACTION");
+                if (VDBG) Log.d(LOG_TAG, "==> new state: " + mBluetoothHeadsetAudioState);
+                updateBluetoothIndication(true);  // Also update any visible UI if necessary
+            } else if (action.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
+                if (VDBG) Log.d(LOG_TAG, "mReceiver: ACTION_ANY_DATA_CONNECTION_STATE_CHANGED");
+                if (VDBG) Log.d(LOG_TAG, "- state: " + intent.getStringExtra(PhoneConstants.STATE_KEY));
+                if (VDBG) Log.d(LOG_TAG, "- reason: "
+                                + intent.getStringExtra(PhoneConstants.STATE_CHANGE_REASON_KEY));
+
+                // The "data disconnected due to roaming" notification is shown
+                // if (a) you have the "data roaming" feature turned off, and
+                // (b) you just lost data connectivity because you're roaming.
+                boolean disconnectedDueToRoaming =
+                        !phone.getDataRoamingEnabled()
+                        && "DISCONNECTED".equals(intent.getStringExtra(PhoneConstants.STATE_KEY))
+                        && Phone.REASON_ROAMING_ON.equals(
+                            intent.getStringExtra(PhoneConstants.STATE_CHANGE_REASON_KEY));
+                mHandler.sendEmptyMessage(disconnectedDueToRoaming
+                                          ? EVENT_DATA_ROAMING_DISCONNECTED
+                                          : EVENT_DATA_ROAMING_OK);
+            } else if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
+                if (VDBG) Log.d(LOG_TAG, "mReceiver: ACTION_HEADSET_PLUG");
+                if (VDBG) Log.d(LOG_TAG, "    state: " + intent.getIntExtra("state", 0));
+                if (VDBG) Log.d(LOG_TAG, "    name: " + intent.getStringExtra("name"));
+                mIsHeadsetPlugged = (intent.getIntExtra("state", 0) == 1);
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_WIRED_HEADSET_PLUG, 0));
+            } else if ((action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) &&
+                    (mPUKEntryActivity != null)) {
+                // if an attempt to un-PUK-lock the device was made, while we're
+                // receiving this state change notification, notify the handler.
+                // NOTE: This is ONLY triggered if an attempt to un-PUK-lock has
+                // been attempted.
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
+                        intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE)));
+            } else if (action.equals(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
+                String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
+                Log.d(LOG_TAG, "Radio technology switched. Now " + newPhone + " is active.");
+                initForNewRadioTechnology();
+            } else if (action.equals(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED)) {
+                handleServiceStateChanged(intent);
+            } else if (action.equals(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
+                if (TelephonyCapabilities.supportsEcm(phone)) {
+                    Log.d(LOG_TAG, "Emergency Callback Mode arrived in PhoneApp.");
+                    // Start Emergency Callback Mode service
+                    if (intent.getBooleanExtra("phoneinECMState", false)) {
+                        context.startService(new Intent(context,
+                                EmergencyCallbackModeService.class));
+                    }
+                } else {
+                    // It doesn't make sense to get ACTION_EMERGENCY_CALLBACK_MODE_CHANGED
+                    // on a device that doesn't support ECM in the first place.
+                    Log.e(LOG_TAG, "Got ACTION_EMERGENCY_CALLBACK_MODE_CHANGED, "
+                          + "but ECM isn't supported for phone: " + phone.getPhoneName());
+                }
+            } else if (action.equals(Intent.ACTION_DOCK_EVENT)) {
+                mDockState = intent.getIntExtra(Intent.EXTRA_DOCK_STATE,
+                        Intent.EXTRA_DOCK_STATE_UNDOCKED);
+                if (VDBG) Log.d(LOG_TAG, "ACTION_DOCK_EVENT -> mDockState = " + mDockState);
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_DOCK_STATE_CHANGED, 0));
+            } else if (action.equals(TtyIntent.TTY_PREFERRED_MODE_CHANGE_ACTION)) {
+                mPreferredTtyMode = intent.getIntExtra(TtyIntent.TTY_PREFFERED_MODE,
+                                                       Phone.TTY_MODE_OFF);
+                if (VDBG) Log.d(LOG_TAG, "mReceiver: TTY_PREFERRED_MODE_CHANGE_ACTION");
+                if (VDBG) Log.d(LOG_TAG, "    mode: " + mPreferredTtyMode);
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_TTY_PREFERRED_MODE_CHANGED, 0));
+            } else if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) {
+                int ringerMode = intent.getIntExtra(AudioManager.EXTRA_RINGER_MODE,
+                        AudioManager.RINGER_MODE_NORMAL);
+                if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
+                    notifier.silenceRinger();
+                }
+            }
+        }
+    }
+
+    /**
+     * Broadcast receiver for the ACTION_MEDIA_BUTTON broadcast intent.
+     *
+     * This functionality isn't lumped in with the other intents in
+     * PhoneAppBroadcastReceiver because we instantiate this as a totally
+     * separate BroadcastReceiver instance, since we need to manually
+     * adjust its IntentFilter's priority (to make sure we get these
+     * intents *before* the media player.)
+     */
+    private class MediaButtonBroadcastReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
+            if (VDBG) Log.d(LOG_TAG,
+                           "MediaButtonBroadcastReceiver.onReceive()...  event = " + event);
+            if ((event != null)
+                && (event.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK)) {
+                if (VDBG) Log.d(LOG_TAG, "MediaButtonBroadcastReceiver: HEADSETHOOK");
+                boolean consumed = PhoneUtils.handleHeadsetHook(phone, event);
+                if (VDBG) Log.d(LOG_TAG, "==> handleHeadsetHook(): consumed = " + consumed);
+                if (consumed) {
+                    // If a headset is attached and the press is consumed, also update
+                    // any UI items (such as an InCallScreen mute button) that may need to
+                    // be updated if their state changed.
+                    updateInCallScreen();  // Has no effect if the InCallScreen isn't visible
+                    abortBroadcast();
+                }
+            } else {
+                if (mCM.getState() != PhoneConstants.State.IDLE) {
+                    // If the phone is anything other than completely idle,
+                    // then we consume and ignore any media key events,
+                    // Otherwise it is too easy to accidentally start
+                    // playing music while a phone call is in progress.
+                    if (VDBG) Log.d(LOG_TAG, "MediaButtonBroadcastReceiver: consumed");
+                    abortBroadcast();
+                }
+            }
+        }
+    }
+
+    /**
+     * Accepts broadcast Intents which will be prepared by {@link NotificationMgr} and thus
+     * sent from framework's notification mechanism (which is outside Phone context).
+     * This should be visible from outside, but shouldn't be in "exported" state.
+     *
+     * TODO: If possible merge this into PhoneAppBroadcastReceiver.
+     */
+    public static class NotificationBroadcastReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            // TODO: use "if (VDBG)" here.
+            Log.d(LOG_TAG, "Broadcast from Notification: " + action);
+
+            if (action.equals(ACTION_HANG_UP_ONGOING_CALL)) {
+                PhoneUtils.hangup(PhoneGlobals.getInstance().mCM);
+            } else if (action.equals(ACTION_CALL_BACK_FROM_NOTIFICATION)) {
+                // Collapse the expanded notification and the notification item itself.
+                closeSystemDialogs(context);
+                clearMissedCallNotification(context);
+
+                Intent callIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED, intent.getData());
+                callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                        | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+                context.startActivity(callIntent);
+            } else if (action.equals(ACTION_SEND_SMS_FROM_NOTIFICATION)) {
+                // Collapse the expanded notification and the notification item itself.
+                closeSystemDialogs(context);
+                clearMissedCallNotification(context);
+
+                Intent smsIntent = new Intent(Intent.ACTION_SENDTO, intent.getData());
+                smsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                context.startActivity(smsIntent);
+            } else {
+                Log.w(LOG_TAG, "Received hang-up request from notification,"
+                        + " but there's no call the system can hang up.");
+            }
+        }
+
+        private void closeSystemDialogs(Context context) {
+            Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
+            context.sendBroadcastAsUser(intent, UserHandle.ALL);
+        }
+
+        private void clearMissedCallNotification(Context context) {
+            Intent clearIntent = new Intent(context, ClearMissedCallsService.class);
+            clearIntent.setAction(ClearMissedCallsService.ACTION_CLEAR_MISSED_CALLS);
+            context.startService(clearIntent);
+        }
+    }
+
+    private void handleServiceStateChanged(Intent intent) {
+        /**
+         * This used to handle updating EriTextWidgetProvider this routine
+         * and and listening for ACTION_SERVICE_STATE_CHANGED intents could
+         * be removed. But leaving just in case it might be needed in the near
+         * future.
+         */
+
+        // If service just returned, start sending out the queued messages
+        ServiceState ss = ServiceState.newFromBundle(intent.getExtras());
+
+        if (ss != null) {
+            int state = ss.getState();
+            notificationMgr.updateNetworkSelection(state);
+        }
+    }
+
+    public boolean isOtaCallInActiveState() {
+        boolean otaCallActive = false;
+        if (mInCallScreen != null) {
+            otaCallActive = mInCallScreen.isOtaCallInActiveState();
+        }
+        if (VDBG) Log.d(LOG_TAG, "- isOtaCallInActiveState " + otaCallActive);
+        return otaCallActive;
+    }
+
+    public boolean isOtaCallInEndState() {
+        boolean otaCallEnded = false;
+        if (mInCallScreen != null) {
+            otaCallEnded = mInCallScreen.isOtaCallInEndState();
+        }
+        if (VDBG) Log.d(LOG_TAG, "- isOtaCallInEndState " + otaCallEnded);
+        return otaCallEnded;
+    }
+
+    // it is safe to call clearOtaState() even if the InCallScreen isn't active
+    public void clearOtaState() {
+        if (DBG) Log.d(LOG_TAG, "- clearOtaState ...");
+        if ((mInCallScreen != null)
+                && (otaUtils != null)) {
+            otaUtils.cleanOtaScreen(true);
+            if (DBG) Log.d(LOG_TAG, "  - clearOtaState clears OTA screen");
+        }
+    }
+
+    // it is safe to call dismissOtaDialogs() even if the InCallScreen isn't active
+    public void dismissOtaDialogs() {
+        if (DBG) Log.d(LOG_TAG, "- dismissOtaDialogs ...");
+        if ((mInCallScreen != null)
+                && (otaUtils != null)) {
+            otaUtils.dismissAllOtaDialogs();
+            if (DBG) Log.d(LOG_TAG, "  - dismissOtaDialogs clears OTA dialogs");
+        }
+    }
+
+    // it is safe to call clearInCallScreenMode() even if the InCallScreen isn't active
+    public void clearInCallScreenMode() {
+        if (DBG) Log.d(LOG_TAG, "- clearInCallScreenMode ...");
+        if (mInCallScreen != null) {
+            mInCallScreen.resetInCallScreenMode();
+        }
+    }
+
+    /**
+     * Force the in-call UI to refresh itself, if it's currently visible.
+     *
+     * This method can be used any time there's a state change anywhere in
+     * the phone app that needs to be reflected in the onscreen UI.
+     *
+     * Note that it's *not* necessary to manually refresh the in-call UI
+     * (via this method) for regular telephony state changes like
+     * DIALING -> ALERTING -> ACTIVE, since the InCallScreen already
+     * listens for those state changes itself.
+     *
+     * This method does *not* force the in-call UI to come up if it's not
+     * already visible.  To do that, use displayCallScreen().
+     */
+    /* package */ void updateInCallScreen() {
+        if (DBG) Log.d(LOG_TAG, "- updateInCallScreen()...");
+        if (mInCallScreen != null) {
+            // Post an updateScreen() request.  Note that the
+            // updateScreen() call will end up being a no-op if the
+            // InCallScreen isn't the foreground activity.
+            mInCallScreen.requestUpdateScreen();
+        }
+    }
+
+    private void handleQueryTTYModeResponse(Message msg) {
+        AsyncResult ar = (AsyncResult) msg.obj;
+        if (ar.exception != null) {
+            if (DBG) Log.d(LOG_TAG, "handleQueryTTYModeResponse: Error getting TTY state.");
+        } else {
+            if (DBG) Log.d(LOG_TAG,
+                           "handleQueryTTYModeResponse: TTY enable state successfully queried.");
+
+            int ttymode = ((int[]) ar.result)[0];
+            if (DBG) Log.d(LOG_TAG, "handleQueryTTYModeResponse:ttymode=" + ttymode);
+
+            Intent ttyModeChanged = new Intent(TtyIntent.TTY_ENABLED_CHANGE_ACTION);
+            ttyModeChanged.putExtra("ttyEnabled", ttymode != Phone.TTY_MODE_OFF);
+            sendBroadcastAsUser(ttyModeChanged, UserHandle.ALL);
+
+            String audioTtyMode;
+            switch (ttymode) {
+            case Phone.TTY_MODE_FULL:
+                audioTtyMode = "tty_full";
+                break;
+            case Phone.TTY_MODE_VCO:
+                audioTtyMode = "tty_vco";
+                break;
+            case Phone.TTY_MODE_HCO:
+                audioTtyMode = "tty_hco";
+                break;
+            case Phone.TTY_MODE_OFF:
+            default:
+                audioTtyMode = "tty_off";
+                break;
+            }
+            AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+            audioManager.setParameters("tty_mode="+audioTtyMode);
+        }
+    }
+
+    private void handleSetTTYModeResponse(Message msg) {
+        AsyncResult ar = (AsyncResult) msg.obj;
+
+        if (ar.exception != null) {
+            if (DBG) Log.d (LOG_TAG,
+                    "handleSetTTYModeResponse: Error setting TTY mode, ar.exception"
+                    + ar.exception);
+        }
+        phone.queryTTYMode(mHandler.obtainMessage(EVENT_TTY_MODE_GET));
+    }
+
+    /**
+     * "Call origin" may be used by Contacts app to specify where the phone call comes from.
+     * Currently, the only permitted value for this extra is {@link #ALLOWED_EXTRA_CALL_ORIGIN}.
+     * Any other value will be ignored, to make sure that malicious apps can't trick the in-call
+     * UI into launching some random other app after a call ends.
+     *
+     * TODO: make this more generic. Note that we should let the "origin" specify its package
+     * while we are now assuming it is "com.android.contacts"
+     */
+    public static final String EXTRA_CALL_ORIGIN = "com.android.phone.CALL_ORIGIN";
+    private static final String DEFAULT_CALL_ORIGIN_PACKAGE = "com.android.dialer";
+    private static final String ALLOWED_EXTRA_CALL_ORIGIN =
+            "com.android.dialer.DialtactsActivity";
+    /**
+     * Used to determine if the preserved call origin is fresh enough.
+     */
+    private static final long CALL_ORIGIN_EXPIRATION_MILLIS = 30 * 1000;
+
+    public void setLatestActiveCallOrigin(String callOrigin) {
+        inCallUiState.latestActiveCallOrigin = callOrigin;
+        if (callOrigin != null) {
+            inCallUiState.latestActiveCallOriginTimeStamp = SystemClock.elapsedRealtime();
+        } else {
+            inCallUiState.latestActiveCallOriginTimeStamp = 0;
+        }
+    }
+
+    /**
+     * Reset call origin depending on its timestamp.
+     *
+     * See if the current call origin preserved by the app is fresh enough or not. If it is,
+     * previous call origin will be used as is. If not, call origin will be reset.
+     *
+     * This will be effective especially for 3rd party apps which want to bypass phone calls with
+     * their own telephone lines. In that case Phone app may finish the phone call once and make
+     * another for the external apps, which will drop call origin information in Intent.
+     * Even in that case we are sure the second phone call should be initiated just after the first
+     * phone call, so here we restore it from the previous information iff the second call is done
+     * fairly soon.
+     */
+    public void resetLatestActiveCallOrigin() {
+        final long callOriginTimestamp = inCallUiState.latestActiveCallOriginTimeStamp;
+        final long currentTimestamp = SystemClock.elapsedRealtime();
+        if (VDBG) {
+            Log.d(LOG_TAG, "currentTimeMillis: " + currentTimestamp
+                    + ", saved timestamp for call origin: " + callOriginTimestamp);
+        }
+        if (inCallUiState.latestActiveCallOriginTimeStamp > 0
+                && (currentTimestamp - callOriginTimestamp < CALL_ORIGIN_EXPIRATION_MILLIS)) {
+            if (VDBG) {
+                Log.d(LOG_TAG, "Resume previous call origin (" +
+                        inCallUiState.latestActiveCallOrigin + ")");
+            }
+            // Do nothing toward call origin itself but update the timestamp just in case.
+            inCallUiState.latestActiveCallOriginTimeStamp = currentTimestamp;
+        } else {
+            if (VDBG) Log.d(LOG_TAG, "Drop previous call origin and set the current one to null");
+            setLatestActiveCallOrigin(null);
+        }
+    }
+
+    /**
+     * @return Intent which will be used when in-call UI is shown and the phone call is hang up.
+     * By default CallLog screen will be introduced, but the destination may change depending on
+     * its latest call origin state.
+     */
+    public Intent createPhoneEndIntentUsingCallOrigin() {
+        if (TextUtils.equals(inCallUiState.latestActiveCallOrigin, ALLOWED_EXTRA_CALL_ORIGIN)) {
+            if (VDBG) Log.d(LOG_TAG, "Valid latestActiveCallOrigin("
+                    + inCallUiState.latestActiveCallOrigin + ") was found. "
+                    + "Go back to the previous screen.");
+            // Right now we just launch the Activity which launched in-call UI. Note that we're
+            // assuming the origin is from "com.android.dialer", which may be incorrect in the
+            // future.
+            final Intent intent = new Intent();
+            intent.setClassName(DEFAULT_CALL_ORIGIN_PACKAGE, inCallUiState.latestActiveCallOrigin);
+            return intent;
+        } else {
+            if (VDBG) Log.d(LOG_TAG, "Current latestActiveCallOrigin ("
+                    + inCallUiState.latestActiveCallOrigin + ") is not valid. "
+                    + "Just use CallLog as a default destination.");
+            return PhoneGlobals.createCallLogIntent();
+        }
+    }
+
+    /** Service connection */
+    private final ServiceConnection mBluetoothPhoneConnection = new ServiceConnection() {
+
+        /** Handle the task of binding the local object to the service */
+        public void onServiceConnected(ComponentName className, IBinder service) {
+            Log.i(LOG_TAG, "Headset phone created, binding local service.");
+            mBluetoothPhone = IBluetoothHeadsetPhone.Stub.asInterface(service);
+        }
+
+        /** Handle the task of cleaning up the local binding */
+        public void onServiceDisconnected(ComponentName className) {
+            Log.i(LOG_TAG, "Headset phone disconnected, cleaning local binding.");
+            mBluetoothPhone = null;
+        }
+    };
+}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
new file mode 100644
index 0000000..6600ae5
--- /dev/null
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -0,0 +1,884 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.ActivityManager;
+import android.app.AppOpsManager;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Process;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.telephony.NeighboringCellInfo;
+import android.telephony.CellInfo;
+import android.telephony.ServiceState;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.internal.telephony.DefaultPhoneNotifier;
+import com.android.internal.telephony.IccCard;
+import com.android.internal.telephony.ITelephony;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.PhoneConstants;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Implementation of the ITelephony interface.
+ */
+public class PhoneInterfaceManager extends ITelephony.Stub {
+    private static final String LOG_TAG = "PhoneInterfaceManager";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+    private static final boolean DBG_LOC = false;
+
+    // Message codes used with mMainThreadHandler
+    private static final int CMD_HANDLE_PIN_MMI = 1;
+    private static final int CMD_HANDLE_NEIGHBORING_CELL = 2;
+    private static final int EVENT_NEIGHBORING_CELL_DONE = 3;
+    private static final int CMD_ANSWER_RINGING_CALL = 4;
+    private static final int CMD_END_CALL = 5;  // not used yet
+    private static final int CMD_SILENCE_RINGER = 6;
+
+    /** The singleton instance. */
+    private static PhoneInterfaceManager sInstance;
+
+    PhoneGlobals mApp;
+    Phone mPhone;
+    CallManager mCM;
+    AppOpsManager mAppOps;
+    MainThreadHandler mMainThreadHandler;
+
+    /**
+     * A request object for use with {@link MainThreadHandler}. Requesters should wait() on the
+     * request after sending. The main thread will notify the request when it is complete.
+     */
+    private static final class MainThreadRequest {
+        /** The argument to use for the request */
+        public Object argument;
+        /** The result of the request that is run on the main thread */
+        public Object result;
+
+        public MainThreadRequest(Object argument) {
+            this.argument = argument;
+        }
+    }
+
+    /**
+     * A handler that processes messages on the main thread in the phone process. Since many
+     * of the Phone calls are not thread safe this is needed to shuttle the requests from the
+     * inbound binder threads to the main thread in the phone process.  The Binder thread
+     * may provide a {@link MainThreadRequest} object in the msg.obj field that they are waiting
+     * on, which will be notified when the operation completes and will contain the result of the
+     * request.
+     *
+     * <p>If a MainThreadRequest object is provided in the msg.obj field,
+     * note that request.result must be set to something non-null for the calling thread to
+     * unblock.
+     */
+    private final class MainThreadHandler extends Handler {
+        @Override
+        public void handleMessage(Message msg) {
+            MainThreadRequest request;
+            Message onCompleted;
+            AsyncResult ar;
+
+            switch (msg.what) {
+                case CMD_HANDLE_PIN_MMI:
+                    request = (MainThreadRequest) msg.obj;
+                    request.result = Boolean.valueOf(
+                            mPhone.handlePinMmi((String) request.argument));
+                    // Wake up the requesting thread
+                    synchronized (request) {
+                        request.notifyAll();
+                    }
+                    break;
+
+                case CMD_HANDLE_NEIGHBORING_CELL:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_NEIGHBORING_CELL_DONE,
+                            request);
+                    mPhone.getNeighboringCids(onCompleted);
+                    break;
+
+                case EVENT_NEIGHBORING_CELL_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null && ar.result != null) {
+                        request.result = ar.result;
+                    } else {
+                        // create an empty list to notify the waiting thread
+                        request.result = new ArrayList<NeighboringCellInfo>();
+                    }
+                    // Wake up the requesting thread
+                    synchronized (request) {
+                        request.notifyAll();
+                    }
+                    break;
+
+                case CMD_ANSWER_RINGING_CALL:
+                    answerRingingCallInternal();
+                    break;
+
+                case CMD_SILENCE_RINGER:
+                    silenceRingerInternal();
+                    break;
+
+                case CMD_END_CALL:
+                    request = (MainThreadRequest) msg.obj;
+                    boolean hungUp = false;
+                    int phoneType = mPhone.getPhoneType();
+                    if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                        // CDMA: If the user presses the Power button we treat it as
+                        // ending the complete call session
+                        hungUp = PhoneUtils.hangupRingingAndActive(mPhone);
+                    } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+                        // GSM: End the call as per the Phone state
+                        hungUp = PhoneUtils.hangup(mCM);
+                    } else {
+                        throw new IllegalStateException("Unexpected phone type: " + phoneType);
+                    }
+                    if (DBG) log("CMD_END_CALL: " + (hungUp ? "hung up!" : "no call to hang up"));
+                    request.result = hungUp;
+                    // Wake up the requesting thread
+                    synchronized (request) {
+                        request.notifyAll();
+                    }
+                    break;
+
+                default:
+                    Log.w(LOG_TAG, "MainThreadHandler: unexpected message code: " + msg.what);
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Posts the specified command to be executed on the main thread,
+     * waits for the request to complete, and returns the result.
+     * @see #sendRequestAsync
+     */
+    private Object sendRequest(int command, Object argument) {
+        if (Looper.myLooper() == mMainThreadHandler.getLooper()) {
+            throw new RuntimeException("This method will deadlock if called from the main thread.");
+        }
+
+        MainThreadRequest request = new MainThreadRequest(argument);
+        Message msg = mMainThreadHandler.obtainMessage(command, request);
+        msg.sendToTarget();
+
+        // Wait for the request to complete
+        synchronized (request) {
+            while (request.result == null) {
+                try {
+                    request.wait();
+                } catch (InterruptedException e) {
+                    // Do nothing, go back and wait until the request is complete
+                }
+            }
+        }
+        return request.result;
+    }
+
+    /**
+     * Asynchronous ("fire and forget") version of sendRequest():
+     * Posts the specified command to be executed on the main thread, and
+     * returns immediately.
+     * @see #sendRequest
+     */
+    private void sendRequestAsync(int command) {
+        mMainThreadHandler.sendEmptyMessage(command);
+    }
+
+    /**
+     * Initialize the singleton PhoneInterfaceManager instance.
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     */
+    /* package */ static PhoneInterfaceManager init(PhoneGlobals app, Phone phone) {
+        synchronized (PhoneInterfaceManager.class) {
+            if (sInstance == null) {
+                sInstance = new PhoneInterfaceManager(app, phone);
+            } else {
+                Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /** Private constructor; @see init() */
+    private PhoneInterfaceManager(PhoneGlobals app, Phone phone) {
+        mApp = app;
+        mPhone = phone;
+        mCM = PhoneGlobals.getInstance().mCM;
+        mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE);
+        mMainThreadHandler = new MainThreadHandler();
+        publish();
+    }
+
+    private void publish() {
+        if (DBG) log("publish: " + this);
+
+        ServiceManager.addService("phone", this);
+    }
+
+    //
+    // Implementation of the ITelephony interface.
+    //
+
+    public void dial(String number) {
+        if (DBG) log("dial: " + number);
+        // No permission check needed here: This is just a wrapper around the
+        // ACTION_DIAL intent, which is available to any app since it puts up
+        // the UI before it does anything.
+
+        String url = createTelUrl(number);
+        if (url == null) {
+            return;
+        }
+
+        // PENDING: should we just silently fail if phone is offhook or ringing?
+        PhoneConstants.State state = mCM.getState();
+        if (state != PhoneConstants.State.OFFHOOK && state != PhoneConstants.State.RINGING) {
+            Intent  intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            mApp.startActivity(intent);
+        }
+    }
+
+    public void call(String callingPackage, String number) {
+        if (DBG) log("call: " + number);
+
+        // This is just a wrapper around the ACTION_CALL intent, but we still
+        // need to do a permission check since we're calling startActivity()
+        // from the context of the phone app.
+        enforceCallPermission();
+
+        if (mAppOps.noteOp(AppOpsManager.OP_CALL_PHONE, Binder.getCallingUid(), callingPackage)
+                != AppOpsManager.MODE_ALLOWED) {
+            return;
+        }
+
+        String url = createTelUrl(number);
+        if (url == null) {
+            return;
+        }
+
+        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        mApp.startActivity(intent);
+    }
+
+    private boolean showCallScreenInternal(boolean specifyInitialDialpadState,
+                                           boolean initialDialpadState) {
+        if (!PhoneGlobals.sVoiceCapable) {
+            // Never allow the InCallScreen to appear on data-only devices.
+            return false;
+        }
+        if (isIdle()) {
+            return false;
+        }
+        // If the phone isn't idle then go to the in-call screen
+        long callingId = Binder.clearCallingIdentity();
+        try {
+            Intent intent;
+            if (specifyInitialDialpadState) {
+                intent = PhoneGlobals.createInCallIntent(initialDialpadState);
+            } else {
+                intent = PhoneGlobals.createInCallIntent();
+            }
+            try {
+                mApp.startActivity(intent);
+            } catch (ActivityNotFoundException e) {
+                // It's possible that the in-call UI might not exist
+                // (like on non-voice-capable devices), although we
+                // shouldn't be trying to bring up the InCallScreen on
+                // devices like that in the first place!
+                Log.w(LOG_TAG, "showCallScreenInternal: "
+                      + "transition to InCallScreen failed; intent = " + intent);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(callingId);
+        }
+        return true;
+    }
+
+    // Show the in-call screen without specifying the initial dialpad state.
+    public boolean showCallScreen() {
+        return showCallScreenInternal(false, false);
+    }
+
+    // The variation of showCallScreen() that specifies the initial dialpad state.
+    // (Ideally this would be called showCallScreen() too, just with a different
+    // signature, but AIDL doesn't allow that.)
+    public boolean showCallScreenWithDialpad(boolean showDialpad) {
+        return showCallScreenInternal(true, showDialpad);
+    }
+
+    /**
+     * End a call based on call state
+     * @return true is a call was ended
+     */
+    public boolean endCall() {
+        enforceCallPermission();
+        return (Boolean) sendRequest(CMD_END_CALL, null);
+    }
+
+    public void answerRingingCall() {
+        if (DBG) log("answerRingingCall...");
+        // TODO: there should eventually be a separate "ANSWER_PHONE" permission,
+        // but that can probably wait till the big TelephonyManager API overhaul.
+        // For now, protect this call with the MODIFY_PHONE_STATE permission.
+        enforceModifyPermission();
+        sendRequestAsync(CMD_ANSWER_RINGING_CALL);
+    }
+
+    /**
+     * Make the actual telephony calls to implement answerRingingCall().
+     * This should only be called from the main thread of the Phone app.
+     * @see #answerRingingCall
+     *
+     * TODO: it would be nice to return true if we answered the call, or
+     * false if there wasn't actually a ringing incoming call, or some
+     * other error occurred.  (In other words, pass back the return value
+     * from PhoneUtils.answerCall() or PhoneUtils.answerAndEndActive().)
+     * But that would require calling this method via sendRequest() rather
+     * than sendRequestAsync(), and right now we don't actually *need* that
+     * return value, so let's just return void for now.
+     */
+    private void answerRingingCallInternal() {
+        final boolean hasRingingCall = !mPhone.getRingingCall().isIdle();
+        if (hasRingingCall) {
+            final boolean hasActiveCall = !mPhone.getForegroundCall().isIdle();
+            final boolean hasHoldingCall = !mPhone.getBackgroundCall().isIdle();
+            if (hasActiveCall && hasHoldingCall) {
+                // Both lines are in use!
+                // TODO: provide a flag to let the caller specify what
+                // policy to use if both lines are in use.  (The current
+                // behavior is hardwired to "answer incoming, end ongoing",
+                // which is how the CALL button is specced to behave.)
+                PhoneUtils.answerAndEndActive(mCM, mCM.getFirstActiveRingingCall());
+                return;
+            } else {
+                // answerCall() will automatically hold the current active
+                // call, if there is one.
+                PhoneUtils.answerCall(mCM.getFirstActiveRingingCall());
+                return;
+            }
+        } else {
+            // No call was ringing.
+            return;
+        }
+    }
+
+    public void silenceRinger() {
+        if (DBG) log("silenceRinger...");
+        // TODO: find a more appropriate permission to check here.
+        // (That can probably wait till the big TelephonyManager API overhaul.
+        // For now, protect this call with the MODIFY_PHONE_STATE permission.)
+        enforceModifyPermission();
+        sendRequestAsync(CMD_SILENCE_RINGER);
+    }
+
+    /**
+     * Internal implemenation of silenceRinger().
+     * This should only be called from the main thread of the Phone app.
+     * @see #silenceRinger
+     */
+    private void silenceRingerInternal() {
+        if ((mCM.getState() == PhoneConstants.State.RINGING)
+            && mApp.notifier.isRinging()) {
+            // Ringer is actually playing, so silence it.
+            if (DBG) log("silenceRingerInternal: silencing...");
+            mApp.notifier.silenceRinger();
+        }
+    }
+
+    public boolean isOffhook() {
+        return (mCM.getState() == PhoneConstants.State.OFFHOOK);
+    }
+
+    public boolean isRinging() {
+        return (mCM.getState() == PhoneConstants.State.RINGING);
+    }
+
+    public boolean isIdle() {
+        return (mCM.getState() == PhoneConstants.State.IDLE);
+    }
+
+    public boolean isSimPinEnabled() {
+        enforceReadPermission();
+        return (PhoneGlobals.getInstance().isSimPinEnabled());
+    }
+
+    public boolean supplyPin(String pin) {
+        enforceModifyPermission();
+        final UnlockSim checkSimPin = new UnlockSim(mPhone.getIccCard());
+        checkSimPin.start();
+        return checkSimPin.unlockSim(null, pin);
+    }
+
+    public boolean supplyPuk(String puk, String pin) {
+        enforceModifyPermission();
+        final UnlockSim checkSimPuk = new UnlockSim(mPhone.getIccCard());
+        checkSimPuk.start();
+        return checkSimPuk.unlockSim(puk, pin);
+    }
+
+    /**
+     * Helper thread to turn async call to {@link SimCard#supplyPin} into
+     * a synchronous one.
+     */
+    private static class UnlockSim extends Thread {
+
+        private final IccCard mSimCard;
+
+        private boolean mDone = false;
+        private boolean mResult = false;
+
+        // For replies from SimCard interface
+        private Handler mHandler;
+
+        // For async handler to identify request type
+        private static final int SUPPLY_PIN_COMPLETE = 100;
+
+        public UnlockSim(IccCard simCard) {
+            mSimCard = simCard;
+        }
+
+        @Override
+        public void run() {
+            Looper.prepare();
+            synchronized (UnlockSim.this) {
+                mHandler = new Handler() {
+                    @Override
+                    public void handleMessage(Message msg) {
+                        AsyncResult ar = (AsyncResult) msg.obj;
+                        switch (msg.what) {
+                            case SUPPLY_PIN_COMPLETE:
+                                Log.d(LOG_TAG, "SUPPLY_PIN_COMPLETE");
+                                synchronized (UnlockSim.this) {
+                                    mResult = (ar.exception == null);
+                                    mDone = true;
+                                    UnlockSim.this.notifyAll();
+                                }
+                                break;
+                        }
+                    }
+                };
+                UnlockSim.this.notifyAll();
+            }
+            Looper.loop();
+        }
+
+        /*
+         * Use PIN or PUK to unlock SIM card
+         *
+         * If PUK is null, unlock SIM card with PIN
+         *
+         * If PUK is not null, unlock SIM card with PUK and set PIN code
+         */
+        synchronized boolean unlockSim(String puk, String pin) {
+
+            while (mHandler == null) {
+                try {
+                    wait();
+                } catch (InterruptedException e) {
+                    Thread.currentThread().interrupt();
+                }
+            }
+            Message callback = Message.obtain(mHandler, SUPPLY_PIN_COMPLETE);
+
+            if (puk == null) {
+                mSimCard.supplyPin(pin, callback);
+            } else {
+                mSimCard.supplyPuk(puk, pin, callback);
+            }
+
+            while (!mDone) {
+                try {
+                    Log.d(LOG_TAG, "wait for done");
+                    wait();
+                } catch (InterruptedException e) {
+                    // Restore the interrupted status
+                    Thread.currentThread().interrupt();
+                }
+            }
+            Log.d(LOG_TAG, "done");
+            return mResult;
+        }
+    }
+
+    public void updateServiceLocation() {
+        // No permission check needed here: this call is harmless, and it's
+        // needed for the ServiceState.requestStateUpdate() call (which is
+        // already intentionally exposed to 3rd parties.)
+        mPhone.updateServiceLocation();
+    }
+
+    public boolean isRadioOn() {
+        return mPhone.getServiceState().getVoiceRegState() != ServiceState.STATE_POWER_OFF;
+    }
+
+    public void toggleRadioOnOff() {
+        enforceModifyPermission();
+        mPhone.setRadioPower(!isRadioOn());
+    }
+    public boolean setRadio(boolean turnOn) {
+        enforceModifyPermission();
+        if ((mPhone.getServiceState().getVoiceRegState() != ServiceState.STATE_POWER_OFF) != turnOn) {
+            toggleRadioOnOff();
+        }
+        return true;
+    }
+    public boolean setRadioPower(boolean turnOn) {
+        enforceModifyPermission();
+        mPhone.setRadioPower(turnOn);
+        return true;
+    }
+
+    public boolean enableDataConnectivity() {
+        enforceModifyPermission();
+        ConnectivityManager cm =
+                (ConnectivityManager)mApp.getSystemService(Context.CONNECTIVITY_SERVICE);
+        cm.setMobileDataEnabled(true);
+        return true;
+    }
+
+    public int enableApnType(String type) {
+        enforceModifyPermission();
+        return mPhone.enableApnType(type);
+    }
+
+    public int disableApnType(String type) {
+        enforceModifyPermission();
+        return mPhone.disableApnType(type);
+    }
+
+    public boolean disableDataConnectivity() {
+        enforceModifyPermission();
+        ConnectivityManager cm =
+                (ConnectivityManager)mApp.getSystemService(Context.CONNECTIVITY_SERVICE);
+        cm.setMobileDataEnabled(false);
+        return true;
+    }
+
+    public boolean isDataConnectivityPossible() {
+        return mPhone.isDataConnectivityPossible();
+    }
+
+    public boolean handlePinMmi(String dialString) {
+        enforceModifyPermission();
+        return (Boolean) sendRequest(CMD_HANDLE_PIN_MMI, dialString);
+    }
+
+    public void cancelMissedCallsNotification() {
+        enforceModifyPermission();
+        mApp.notificationMgr.cancelMissedCallNotification();
+    }
+
+    public int getCallState() {
+        return DefaultPhoneNotifier.convertCallState(mCM.getState());
+    }
+
+    public int getDataState() {
+        return DefaultPhoneNotifier.convertDataState(mPhone.getDataConnectionState());
+    }
+
+    public int getDataActivity() {
+        return DefaultPhoneNotifier.convertDataActivityState(mPhone.getDataActivityState());
+    }
+
+    @Override
+    public Bundle getCellLocation() {
+        try {
+            mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.ACCESS_FINE_LOCATION, null);
+        } catch (SecurityException e) {
+            // If we have ACCESS_FINE_LOCATION permission, skip the check for ACCESS_COARSE_LOCATION
+            // A failure should throw the SecurityException from ACCESS_COARSE_LOCATION since this
+            // is the weaker precondition
+            mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
+        }
+
+        if (checkIfCallerIsSelfOrForegoundUser()) {
+            if (DBG_LOC) log("getCellLocation: is active user");
+            Bundle data = new Bundle();
+            mPhone.getCellLocation().fillInNotifierBundle(data);
+            return data;
+        } else {
+            if (DBG_LOC) log("getCellLocation: suppress non-active user");
+            return null;
+        }
+    }
+
+    @Override
+    public void enableLocationUpdates() {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.CONTROL_LOCATION_UPDATES, null);
+        mPhone.enableLocationUpdates();
+    }
+
+    @Override
+    public void disableLocationUpdates() {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.CONTROL_LOCATION_UPDATES, null);
+        mPhone.disableLocationUpdates();
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage) {
+        try {
+            mApp.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.ACCESS_FINE_LOCATION, null);
+        } catch (SecurityException e) {
+            // If we have ACCESS_FINE_LOCATION permission, skip the check
+            // for ACCESS_COARSE_LOCATION
+            // A failure should throw the SecurityException from
+            // ACCESS_COARSE_LOCATION since this is the weaker precondition
+            mApp.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
+        }
+
+        if (mAppOps.noteOp(AppOpsManager.OP_NEIGHBORING_CELLS, Binder.getCallingUid(),
+                callingPackage) != AppOpsManager.MODE_ALLOWED) {
+            return null;
+        }
+        if (checkIfCallerIsSelfOrForegoundUser()) {
+            if (DBG_LOC) log("getNeighboringCellInfo: is active user");
+
+            ArrayList<NeighboringCellInfo> cells = null;
+
+            try {
+                cells = (ArrayList<NeighboringCellInfo>) sendRequest(
+                        CMD_HANDLE_NEIGHBORING_CELL, null);
+            } catch (RuntimeException e) {
+                Log.e(LOG_TAG, "getNeighboringCellInfo " + e);
+            }
+            return cells;
+        } else {
+            if (DBG_LOC) log("getNeighboringCellInfo: suppress non-active user");
+            return null;
+        }
+    }
+
+
+    @Override
+    public List<CellInfo> getAllCellInfo() {
+        try {
+            mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.ACCESS_FINE_LOCATION, null);
+        } catch (SecurityException e) {
+            // If we have ACCESS_FINE_LOCATION permission, skip the check for ACCESS_COARSE_LOCATION
+            // A failure should throw the SecurityException from ACCESS_COARSE_LOCATION since this
+            // is the weaker precondition
+            mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
+        }
+
+        if (checkIfCallerIsSelfOrForegoundUser()) {
+            if (DBG_LOC) log("getAllCellInfo: is active user");
+            return mPhone.getAllCellInfo();
+        } else {
+            if (DBG_LOC) log("getAllCellInfo: suppress non-active user");
+            return null;
+        }
+    }
+
+    public void setCellInfoListRate(int rateInMillis) {
+        mPhone.setCellInfoListRate(rateInMillis);
+    }
+
+    //
+    // Internal helper methods.
+    //
+
+    private boolean checkIfCallerIsSelfOrForegoundUser() {
+        boolean ok;
+
+        boolean self = Binder.getCallingUid() == Process.myUid();
+        if (!self) {
+            // Get the caller's user id then clear the calling identity
+            // which will be restored in the finally clause.
+            int callingUser = UserHandle.getCallingUserId();
+            long ident = Binder.clearCallingIdentity();
+
+            try {
+                // With calling identity cleared the current user is the foreground user.
+                int foregroundUser = ActivityManager.getCurrentUser();
+                ok = (foregroundUser == callingUser);
+                if (DBG_LOC) {
+                    log("checkIfCallerIsSelfOrForegoundUser: foregroundUser=" + foregroundUser
+                            + " callingUser=" + callingUser + " ok=" + ok);
+                }
+            } catch (Exception ex) {
+                if (DBG_LOC) loge("checkIfCallerIsSelfOrForegoundUser: Exception ex=" + ex);
+                ok = false;
+            } finally {
+                Binder.restoreCallingIdentity(ident);
+            }
+        } else {
+            if (DBG_LOC) log("checkIfCallerIsSelfOrForegoundUser: is self");
+            ok = true;
+        }
+        if (DBG_LOC) log("checkIfCallerIsSelfOrForegoundUser: ret=" + ok);
+        return ok;
+    }
+
+    /**
+     * Make sure the caller has the READ_PHONE_STATE permission.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceReadPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE, null);
+    }
+
+    /**
+     * Make sure the caller has the MODIFY_PHONE_STATE permission.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceModifyPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE, null);
+    }
+
+    /**
+     * Make sure the caller has the CALL_PHONE permission.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceCallPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.CALL_PHONE, null);
+    }
+
+
+    private String createTelUrl(String number) {
+        if (TextUtils.isEmpty(number)) {
+            return null;
+        }
+
+        StringBuilder buf = new StringBuilder("tel:");
+        buf.append(number);
+        return buf.toString();
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[PhoneIntfMgr] " + msg);
+    }
+
+    private void loge(String msg) {
+        Log.e(LOG_TAG, "[PhoneIntfMgr] " + msg);
+    }
+
+    public int getActivePhoneType() {
+        return mPhone.getPhoneType();
+    }
+
+    /**
+     * Returns the CDMA ERI icon index to display
+     */
+    public int getCdmaEriIconIndex() {
+        return mPhone.getCdmaEriIconIndex();
+    }
+
+    /**
+     * Returns the CDMA ERI icon mode,
+     * 0 - ON
+     * 1 - FLASHING
+     */
+    public int getCdmaEriIconMode() {
+        return mPhone.getCdmaEriIconMode();
+    }
+
+    /**
+     * Returns the CDMA ERI text,
+     */
+    public String getCdmaEriText() {
+        return mPhone.getCdmaEriText();
+    }
+
+    /**
+     * Returns true if CDMA provisioning needs to run.
+     */
+    public boolean needsOtaServiceProvisioning() {
+        return mPhone.needsOtaServiceProvisioning();
+    }
+
+    /**
+     * Returns the unread count of voicemails
+     */
+    public int getVoiceMessageCount() {
+        return mPhone.getVoiceMessageCount();
+    }
+
+    /**
+     * Returns the data network type
+     *
+     * @Deprecated to be removed Q3 2013 use {@link #getDataNetworkType}.
+     */
+    @Override
+    public int getNetworkType() {
+        return mPhone.getServiceState().getDataNetworkType();
+    }
+
+    /**
+     * Returns the data network type
+     */
+    @Override
+    public int getDataNetworkType() {
+        return mPhone.getServiceState().getDataNetworkType();
+    }
+
+    /**
+     * Returns the data network type
+     */
+    @Override
+    public int getVoiceNetworkType() {
+        return mPhone.getServiceState().getVoiceNetworkType();
+    }
+
+    /**
+     * @return true if a ICC card is present
+     */
+    public boolean hasIccCard() {
+        return mPhone.getIccCard().hasIccCard();
+    }
+
+    /**
+     * Return if the current radio is LTE on CDMA. This
+     * is a tri-state return value as for a period of time
+     * the mode may be unknown.
+     *
+     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
+     * or {@link PHone#LTE_ON_CDMA_TRUE}
+     */
+    public int getLteOnCdmaMode() {
+        return mPhone.getLteOnCdmaMode();
+    }
+}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
new file mode 100644
index 0000000..4334962
--- /dev/null
+++ b/src/com/android/phone/PhoneUtils.java
@@ -0,0 +1,2717 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.bluetooth.IBluetoothHeadsetPhone;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
+import android.media.AudioManager;
+import android.net.Uri;
+import android.net.sip.SipManager;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.CallStateException;
+import com.android.internal.telephony.CallerInfo;
+import com.android.internal.telephony.CallerInfoAsyncQuery;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.MmiCode;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
+import com.android.internal.telephony.TelephonyProperties;
+import com.android.internal.telephony.cdma.CdmaConnection;
+import com.android.internal.telephony.sip.SipPhone;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Misc utilities for the Phone app.
+ */
+public class PhoneUtils {
+    private static final String LOG_TAG = "PhoneUtils";
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    // Do not check in with VDBG = true, since that may write PII to the system log.
+    private static final boolean VDBG = false;
+
+    /** Control stack trace for Audio Mode settings */
+    private static final boolean DBG_SETAUDIOMODE_STACK = false;
+
+    /** Identifier for the "Add Call" intent extra. */
+    static final String ADD_CALL_MODE_KEY = "add_call_mode";
+
+    // Return codes from placeCall()
+    static final int CALL_STATUS_DIALED = 0;  // The number was successfully dialed
+    static final int CALL_STATUS_DIALED_MMI = 1;  // The specified number was an MMI code
+    static final int CALL_STATUS_FAILED = 2;  // The call failed
+
+    // State of the Phone's audio modes
+    // Each state can move to the other states, but within the state only certain
+    //  transitions for AudioManager.setMode() are allowed.
+    static final int AUDIO_IDLE = 0;  /** audio behaviour at phone idle */
+    static final int AUDIO_RINGING = 1;  /** audio behaviour while ringing */
+    static final int AUDIO_OFFHOOK = 2;  /** audio behaviour while in call. */
+
+    // USSD string length for MMI operations
+    static final int MIN_USSD_LEN = 1;
+    static final int MAX_USSD_LEN = 160;
+
+    /** Speaker state, persisting between wired headset connection events */
+    private static boolean sIsSpeakerEnabled = false;
+
+    /** Hash table to store mute (Boolean) values based upon the connection.*/
+    private static Hashtable<Connection, Boolean> sConnectionMuteTable =
+        new Hashtable<Connection, Boolean>();
+
+    /** Static handler for the connection/mute tracking */
+    private static ConnectionHandler mConnectionHandler;
+
+    /** Phone state changed event*/
+    private static final int PHONE_STATE_CHANGED = -1;
+
+    /** Define for not a special CNAP string */
+    private static final int CNAP_SPECIAL_CASE_NO = -1;
+
+    /** Noise suppression status as selected by user */
+    private static boolean sIsNoiseSuppressionEnabled = true;
+
+    /**
+     * Handler that tracks the connections and updates the value of the
+     * Mute settings for each connection as needed.
+     */
+    private static class ConnectionHandler extends Handler {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+            switch (msg.what) {
+                case PHONE_STATE_CHANGED:
+                    if (DBG) log("ConnectionHandler: updating mute state for each connection");
+
+                    CallManager cm = (CallManager) ar.userObj;
+
+                    // update the foreground connections, if there are new connections.
+                    // Have to get all foreground calls instead of the active one
+                    // because there may two foreground calls co-exist in shore period
+                    // (a racing condition based on which phone changes firstly)
+                    // Otherwise the connection may get deleted.
+                    List<Connection> fgConnections = new ArrayList<Connection>();
+                    for (Call fgCall : cm.getForegroundCalls()) {
+                        if (!fgCall.isIdle()) {
+                            fgConnections.addAll(fgCall.getConnections());
+                        }
+                    }
+                    for (Connection cn : fgConnections) {
+                        if (sConnectionMuteTable.get(cn) == null) {
+                            sConnectionMuteTable.put(cn, Boolean.FALSE);
+                        }
+                    }
+
+                    // mute is connection based operation, we need loop over
+                    // all background calls instead of the first one to update
+                    // the background connections, if there are new connections.
+                    List<Connection> bgConnections = new ArrayList<Connection>();
+                    for (Call bgCall : cm.getBackgroundCalls()) {
+                        if (!bgCall.isIdle()) {
+                            bgConnections.addAll(bgCall.getConnections());
+                        }
+                    }
+                    for (Connection cn : bgConnections) {
+                        if (sConnectionMuteTable.get(cn) == null) {
+                          sConnectionMuteTable.put(cn, Boolean.FALSE);
+                        }
+                    }
+
+                    // Check to see if there are any lingering connections here
+                    // (disconnected connections), use old-school iterators to avoid
+                    // concurrent modification exceptions.
+                    Connection cn;
+                    for (Iterator<Connection> cnlist = sConnectionMuteTable.keySet().iterator();
+                            cnlist.hasNext();) {
+                        cn = cnlist.next();
+                        if (!fgConnections.contains(cn) && !bgConnections.contains(cn)) {
+                            if (DBG) log("connection '" + cn + "' not accounted for, removing.");
+                            cnlist.remove();
+                        }
+                    }
+
+                    // Restore the mute state of the foreground call if we're not IDLE,
+                    // otherwise just clear the mute state. This is really saying that
+                    // as long as there is one or more connections, we should update
+                    // the mute state with the earliest connection on the foreground
+                    // call, and that with no connections, we should be back to a
+                    // non-mute state.
+                    if (cm.getState() != PhoneConstants.State.IDLE) {
+                        restoreMuteState();
+                    } else {
+                        setMuteInternal(cm.getFgPhone(), false);
+                    }
+
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Register the ConnectionHandler with the phone, to receive connection events
+     */
+    public static void initializeConnectionHandler(CallManager cm) {
+        if (mConnectionHandler == null) {
+            mConnectionHandler = new ConnectionHandler();
+        }
+
+        // pass over cm as user.obj
+        cm.registerForPreciseCallStateChanged(mConnectionHandler, PHONE_STATE_CHANGED, cm);
+
+    }
+
+    /** This class is never instantiated. */
+    private PhoneUtils() {
+    }
+
+    /**
+     * Answer the currently-ringing call.
+     *
+     * @return true if we answered the call, or false if there wasn't
+     *         actually a ringing incoming call, or some other error occurred.
+     *
+     * @see #answerAndEndHolding(CallManager, Call)
+     * @see #answerAndEndActive(CallManager, Call)
+     */
+    /* package */ static boolean answerCall(Call ringingCall) {
+        log("answerCall(" + ringingCall + ")...");
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        final CallNotifier notifier = app.notifier;
+
+        // If the ringer is currently ringing and/or vibrating, stop it
+        // right now (before actually answering the call.)
+        notifier.silenceRinger();
+
+        final Phone phone = ringingCall.getPhone();
+        final boolean phoneIsCdma = (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA);
+        boolean answered = false;
+        IBluetoothHeadsetPhone btPhone = null;
+
+        if (phoneIsCdma) {
+            // Stop any signalInfo tone being played when a Call waiting gets answered
+            if (ringingCall.getState() == Call.State.WAITING) {
+                notifier.stopSignalInfoTone();
+            }
+        }
+
+        if (ringingCall != null && ringingCall.isRinging()) {
+            if (DBG) log("answerCall: call state = " + ringingCall.getState());
+            try {
+                if (phoneIsCdma) {
+                    if (app.cdmaPhoneCallState.getCurrentCallState()
+                            == CdmaPhoneCallState.PhoneCallState.IDLE) {
+                        // This is the FIRST incoming call being answered.
+                        // Set the Phone Call State to SINGLE_ACTIVE
+                        app.cdmaPhoneCallState.setCurrentCallState(
+                                CdmaPhoneCallState.PhoneCallState.SINGLE_ACTIVE);
+                    } else {
+                        // This is the CALL WAITING call being answered.
+                        // Set the Phone Call State to CONF_CALL
+                        app.cdmaPhoneCallState.setCurrentCallState(
+                                CdmaPhoneCallState.PhoneCallState.CONF_CALL);
+                        // Enable "Add Call" option after answering a Call Waiting as the user
+                        // should be allowed to add another call in case one of the parties
+                        // drops off
+                        app.cdmaPhoneCallState.setAddCallMenuStateAfterCallWaiting(true);
+
+                        // If a BluetoothPhoneService is valid we need to set the second call state
+                        // so that the Bluetooth client can update the Call state correctly when
+                        // a call waiting is answered from the Phone.
+                        btPhone = app.getBluetoothPhoneService();
+                        if (btPhone != null) {
+                            try {
+                                btPhone.cdmaSetSecondCallState(true);
+                            } catch (RemoteException e) {
+                                Log.e(LOG_TAG, Log.getStackTraceString(new Throwable()));
+                            }
+                        }
+                  }
+                }
+
+                final boolean isRealIncomingCall = isRealIncomingCall(ringingCall.getState());
+
+                //if (DBG) log("sPhone.acceptCall");
+                app.mCM.acceptCall(ringingCall);
+                answered = true;
+
+                // Always reset to "unmuted" for a freshly-answered call
+                setMute(false);
+
+                setAudioMode();
+
+                // Check is phone in any dock, and turn on speaker accordingly
+                final boolean speakerActivated = activateSpeakerIfDocked(phone);
+
+                // When answering a phone call, the user will move the phone near to her/his ear
+                // and start conversation, without checking its speaker status. If some other
+                // application turned on the speaker mode before the call and didn't turn it off,
+                // Phone app would need to be responsible for the speaker phone.
+                // Here, we turn off the speaker if
+                // - the phone call is the first in-coming call,
+                // - we did not activate speaker by ourselves during the process above, and
+                // - Bluetooth headset is not in use.
+                if (isRealIncomingCall && !speakerActivated && isSpeakerOn(app)
+                        && !app.isBluetoothHeadsetAudioOn()) {
+                    // This is not an error but might cause users' confusion. Add log just in case.
+                    Log.i(LOG_TAG, "Forcing speaker off due to new incoming call...");
+                    turnOnSpeaker(app, false, true);
+                }
+            } catch (CallStateException ex) {
+                Log.w(LOG_TAG, "answerCall: caught " + ex, ex);
+
+                if (phoneIsCdma) {
+                    // restore the cdmaPhoneCallState and btPhone.cdmaSetSecondCallState:
+                    app.cdmaPhoneCallState.setCurrentCallState(
+                            app.cdmaPhoneCallState.getPreviousCallState());
+                    if (btPhone != null) {
+                        try {
+                            btPhone.cdmaSetSecondCallState(false);
+                        } catch (RemoteException e) {
+                            Log.e(LOG_TAG, Log.getStackTraceString(new Throwable()));
+                        }
+                    }
+                }
+            }
+        }
+        return answered;
+    }
+
+    /**
+     * Smart "hang up" helper method which hangs up exactly one connection,
+     * based on the current Phone state, as follows:
+     * <ul>
+     * <li>If there's a ringing call, hang that up.
+     * <li>Else if there's a foreground call, hang that up.
+     * <li>Else if there's a background call, hang that up.
+     * <li>Otherwise do nothing.
+     * </ul>
+     * @return true if we successfully hung up, or false
+     *              if there were no active calls at all.
+     */
+    static boolean hangup(CallManager cm) {
+        boolean hungup = false;
+        Call ringing = cm.getFirstActiveRingingCall();
+        Call fg = cm.getActiveFgCall();
+        Call bg = cm.getFirstActiveBgCall();
+
+        if (!ringing.isIdle()) {
+            log("hangup(): hanging up ringing call");
+            hungup = hangupRingingCall(ringing);
+        } else if (!fg.isIdle()) {
+            log("hangup(): hanging up foreground call");
+            hungup = hangup(fg);
+        } else if (!bg.isIdle()) {
+            log("hangup(): hanging up background call");
+            hungup = hangup(bg);
+        } else {
+            // No call to hang up!  This is unlikely in normal usage,
+            // since the UI shouldn't be providing an "End call" button in
+            // the first place.  (But it *can* happen, rarely, if an
+            // active call happens to disconnect on its own right when the
+            // user is trying to hang up..)
+            log("hangup(): no active call to hang up");
+        }
+        if (DBG) log("==> hungup = " + hungup);
+
+        return hungup;
+    }
+
+    static boolean hangupRingingCall(Call ringing) {
+        if (DBG) log("hangup ringing call");
+        int phoneType = ringing.getPhone().getPhoneType();
+        Call.State state = ringing.getState();
+
+        if (state == Call.State.INCOMING) {
+            // Regular incoming call (with no other active calls)
+            log("hangupRingingCall(): regular incoming call: hangup()");
+            return hangup(ringing);
+        } else if (state == Call.State.WAITING) {
+            // Call-waiting: there's an incoming call, but another call is
+            // already active.
+            // TODO: It would be better for the telephony layer to provide
+            // a "hangupWaitingCall()" API that works on all devices,
+            // rather than us having to check the phone type here and do
+            // the notifier.sendCdmaCallWaitingReject() hack for CDMA phones.
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                // CDMA: Ringing call and Call waiting hangup is handled differently.
+                // For Call waiting we DO NOT call the conventional hangup(call) function
+                // as in CDMA we just want to hangup the Call waiting connection.
+                log("hangupRingingCall(): CDMA-specific call-waiting hangup");
+                final CallNotifier notifier = PhoneGlobals.getInstance().notifier;
+                notifier.sendCdmaCallWaitingReject();
+                return true;
+            } else {
+                // Otherwise, the regular hangup() API works for
+                // call-waiting calls too.
+                log("hangupRingingCall(): call-waiting call: hangup()");
+                return hangup(ringing);
+            }
+        } else {
+            // Unexpected state: the ringing call isn't INCOMING or
+            // WAITING, so there's no reason to have called
+            // hangupRingingCall() in the first place.
+            // (Presumably the incoming call went away at the exact moment
+            // we got here, so just do nothing.)
+            Log.w(LOG_TAG, "hangupRingingCall: no INCOMING or WAITING call");
+            return false;
+        }
+    }
+
+    static boolean hangupActiveCall(Call foreground) {
+        if (DBG) log("hangup active call");
+        return hangup(foreground);
+    }
+
+    static boolean hangupHoldingCall(Call background) {
+        if (DBG) log("hangup holding call");
+        return hangup(background);
+    }
+
+    /**
+     * Used in CDMA phones to end the complete Call session
+     * @param phone the Phone object.
+     * @return true if *any* call was successfully hung up
+     */
+    static boolean hangupRingingAndActive(Phone phone) {
+        boolean hungUpRingingCall = false;
+        boolean hungUpFgCall = false;
+        Call ringingCall = phone.getRingingCall();
+        Call fgCall = phone.getForegroundCall();
+
+        // Hang up any Ringing Call
+        if (!ringingCall.isIdle()) {
+            log("hangupRingingAndActive: Hang up Ringing Call");
+            hungUpRingingCall = hangupRingingCall(ringingCall);
+        }
+
+        // Hang up any Active Call
+        if (!fgCall.isIdle()) {
+            log("hangupRingingAndActive: Hang up Foreground Call");
+            hungUpFgCall = hangupActiveCall(fgCall);
+        }
+
+        return hungUpRingingCall || hungUpFgCall;
+    }
+
+    /**
+     * Trivial wrapper around Call.hangup(), except that we return a
+     * boolean success code rather than throwing CallStateException on
+     * failure.
+     *
+     * @return true if the call was successfully hung up, or false
+     *         if the call wasn't actually active.
+     */
+    static boolean hangup(Call call) {
+        try {
+            CallManager cm = PhoneGlobals.getInstance().mCM;
+
+            if (call.getState() == Call.State.ACTIVE && cm.hasActiveBgCall()) {
+                // handle foreground call hangup while there is background call
+                log("- hangup(Call): hangupForegroundResumeBackground...");
+                cm.hangupForegroundResumeBackground(cm.getFirstActiveBgCall());
+            } else {
+                log("- hangup(Call): regular hangup()...");
+                call.hangup();
+            }
+            return true;
+        } catch (CallStateException ex) {
+            Log.e(LOG_TAG, "Call hangup: caught " + ex, ex);
+        }
+
+        return false;
+    }
+
+    /**
+     * Trivial wrapper around Connection.hangup(), except that we silently
+     * do nothing (rather than throwing CallStateException) if the
+     * connection wasn't actually active.
+     */
+    static void hangup(Connection c) {
+        try {
+            if (c != null) {
+                c.hangup();
+            }
+        } catch (CallStateException ex) {
+            Log.w(LOG_TAG, "Connection hangup: caught " + ex, ex);
+        }
+    }
+
+    static boolean answerAndEndHolding(CallManager cm, Call ringing) {
+        if (DBG) log("end holding & answer waiting: 1");
+        if (!hangupHoldingCall(cm.getFirstActiveBgCall())) {
+            Log.e(LOG_TAG, "end holding failed!");
+            return false;
+        }
+
+        if (DBG) log("end holding & answer waiting: 2");
+        return answerCall(ringing);
+
+    }
+
+    /**
+     * Answers the incoming call specified by "ringing", and ends the currently active phone call.
+     *
+     * This method is useful when's there's an incoming call which we cannot manage with the
+     * current call. e.g. when you are having a phone call with CDMA network and has received
+     * a SIP call, then we won't expect our telephony can manage those phone calls simultaneously.
+     * Note that some types of network may allow multiple phone calls at once; GSM allows to hold
+     * an ongoing phone call, so we don't need to end the active call. The caller of this method
+     * needs to check if the network allows multiple phone calls or not.
+     *
+     * @see #answerCall(Call)
+     * @see InCallScreen#internalAnswerCall()
+     */
+    /* package */ static boolean answerAndEndActive(CallManager cm, Call ringing) {
+        if (DBG) log("answerAndEndActive()...");
+
+        // Unlike the answerCall() method, we *don't* need to stop the
+        // ringer or change audio modes here since the user is already
+        // in-call, which means that the audio mode is already set
+        // correctly, and that we wouldn't have started the ringer in the
+        // first place.
+
+        // hanging up the active call also accepts the waiting call
+        // while active call and waiting call are from the same phone
+        // i.e. both from GSM phone
+        if (!hangupActiveCall(cm.getActiveFgCall())) {
+            Log.w(LOG_TAG, "end active call failed!");
+            return false;
+        }
+
+        // since hangupActiveCall() also accepts the ringing call
+        // check if the ringing call was already answered or not
+        // only answer it when the call still is ringing
+        if (ringing.isRinging()) {
+            return answerCall(ringing);
+        }
+
+        return true;
+    }
+
+    /**
+     * For a CDMA phone, advance the call state upon making a new
+     * outgoing call.
+     *
+     * <pre>
+     *   IDLE -> SINGLE_ACTIVE
+     * or
+     *   SINGLE_ACTIVE -> THRWAY_ACTIVE
+     * </pre>
+     * @param app The phone instance.
+     */
+    private static void updateCdmaCallStateOnNewOutgoingCall(PhoneGlobals app) {
+        if (app.cdmaPhoneCallState.getCurrentCallState() ==
+            CdmaPhoneCallState.PhoneCallState.IDLE) {
+            // This is the first outgoing call. Set the Phone Call State to ACTIVE
+            app.cdmaPhoneCallState.setCurrentCallState(
+                CdmaPhoneCallState.PhoneCallState.SINGLE_ACTIVE);
+        } else {
+            // This is the second outgoing call. Set the Phone Call State to 3WAY
+            app.cdmaPhoneCallState.setCurrentCallState(
+                CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE);
+        }
+    }
+
+    /**
+     * Dial the number using the phone passed in.
+     *
+     * If the connection is establised, this method issues a sync call
+     * that may block to query the caller info.
+     * TODO: Change the logic to use the async query.
+     *
+     * @param context To perform the CallerInfo query.
+     * @param phone the Phone object.
+     * @param number to be dialed as requested by the user. This is
+     * NOT the phone number to connect to. It is used only to build the
+     * call card and to update the call log. See above for restrictions.
+     * @param contactRef that triggered the call. Typically a 'tel:'
+     * uri but can also be a 'content://contacts' one.
+     * @param isEmergencyCall indicates that whether or not this is an
+     * emergency call
+     * @param gatewayUri Is the address used to setup the connection, null
+     * if not using a gateway
+     *
+     * @return either CALL_STATUS_DIALED or CALL_STATUS_FAILED
+     */
+    public static int placeCall(Context context, Phone phone,
+            String number, Uri contactRef, boolean isEmergencyCall,
+            Uri gatewayUri) {
+        if (VDBG) {
+            log("placeCall()... number: '" + number + "'"
+                    + ", GW:'" + gatewayUri + "'"
+                    + ", contactRef:" + contactRef
+                    + ", isEmergencyCall: " + isEmergencyCall);
+        } else {
+            log("placeCall()... number: " + toLogSafePhoneNumber(number)
+                    + ", GW: " + (gatewayUri != null ? "non-null" : "null")
+                    + ", emergency? " + isEmergencyCall);
+        }
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+
+        boolean useGateway = false;
+        if (null != gatewayUri &&
+            !isEmergencyCall &&
+            PhoneUtils.isRoutableViaGateway(number)) {  // Filter out MMI, OTA and other codes.
+            useGateway = true;
+        }
+
+        int status = CALL_STATUS_DIALED;
+        Connection connection;
+        String numberToDial;
+        if (useGateway) {
+            // TODO: 'tel' should be a constant defined in framework base
+            // somewhere (it is in webkit.)
+            if (null == gatewayUri || !Constants.SCHEME_TEL.equals(gatewayUri.getScheme())) {
+                Log.e(LOG_TAG, "Unsupported URL:" + gatewayUri);
+                return CALL_STATUS_FAILED;
+            }
+
+            // We can use getSchemeSpecificPart because we don't allow #
+            // in the gateway numbers (treated a fragment delim.) However
+            // if we allow more complex gateway numbers sequence (with
+            // passwords or whatnot) that use #, this may break.
+            // TODO: Need to support MMI codes.
+            numberToDial = gatewayUri.getSchemeSpecificPart();
+        } else {
+            numberToDial = number;
+        }
+
+        // Remember if the phone state was in IDLE state before this call.
+        // After calling CallManager#dial(), getState() will return different state.
+        final boolean initiallyIdle = app.mCM.getState() == PhoneConstants.State.IDLE;
+
+        try {
+            connection = app.mCM.dial(phone, numberToDial);
+        } catch (CallStateException ex) {
+            // CallStateException means a new outgoing call is not currently
+            // possible: either no more call slots exist, or there's another
+            // call already in the process of dialing or ringing.
+            Log.w(LOG_TAG, "Exception from app.mCM.dial()", ex);
+            return CALL_STATUS_FAILED;
+
+            // Note that it's possible for CallManager.dial() to return
+            // null *without* throwing an exception; that indicates that
+            // we dialed an MMI (see below).
+        }
+
+        int phoneType = phone.getPhoneType();
+
+        // On GSM phones, null is returned for MMI codes
+        if (null == connection) {
+            if (phoneType == PhoneConstants.PHONE_TYPE_GSM && gatewayUri == null) {
+                if (DBG) log("dialed MMI code: " + number);
+                status = CALL_STATUS_DIALED_MMI;
+            } else {
+                status = CALL_STATUS_FAILED;
+            }
+        } else {
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                updateCdmaCallStateOnNewOutgoingCall(app);
+            }
+
+            // Clean up the number to be displayed.
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                number = CdmaConnection.formatDialString(number);
+            }
+            number = PhoneNumberUtils.extractNetworkPortion(number);
+            number = PhoneNumberUtils.convertKeypadLettersToDigits(number);
+            number = PhoneNumberUtils.formatNumber(number);
+
+            if (gatewayUri == null) {
+                // phone.dial() succeeded: we're now in a normal phone call.
+                // attach the URI to the CallerInfo Object if it is there,
+                // otherwise just attach the Uri Reference.
+                // if the uri does not have a "content" scheme, then we treat
+                // it as if it does NOT have a unique reference.
+                String content = context.getContentResolver().SCHEME_CONTENT;
+                if ((contactRef != null) && (contactRef.getScheme().equals(content))) {
+                    Object userDataObject = connection.getUserData();
+                    if (userDataObject == null) {
+                        connection.setUserData(contactRef);
+                    } else {
+                        // TODO: This branch is dead code, we have
+                        // just created the connection which has
+                        // no user data (null) by default.
+                        if (userDataObject instanceof CallerInfo) {
+                        ((CallerInfo) userDataObject).contactRefUri = contactRef;
+                        } else {
+                        ((CallerInfoToken) userDataObject).currentInfo.contactRefUri =
+                            contactRef;
+                        }
+                    }
+                }
+            } else {
+                // Get the caller info synchronously because we need the final
+                // CallerInfo object to update the dialed number with the one
+                // requested by the user (and not the provider's gateway number).
+                CallerInfo info = null;
+                String content = phone.getContext().getContentResolver().SCHEME_CONTENT;
+                if ((contactRef != null) && (contactRef.getScheme().equals(content))) {
+                    info = CallerInfo.getCallerInfo(context, contactRef);
+                }
+
+                // Fallback, lookup contact using the phone number if the
+                // contact's URI scheme was not content:// or if is was but
+                // the lookup failed.
+                if (null == info) {
+                    info = CallerInfo.getCallerInfo(context, number);
+                }
+                info.phoneNumber = number;
+                connection.setUserData(info);
+            }
+            setAudioMode();
+
+            if (DBG) log("about to activate speaker");
+            // Check is phone in any dock, and turn on speaker accordingly
+            final boolean speakerActivated = activateSpeakerIfDocked(phone);
+
+            // See also similar logic in answerCall().
+            if (initiallyIdle && !speakerActivated && isSpeakerOn(app)
+                    && !app.isBluetoothHeadsetAudioOn()) {
+                // This is not an error but might cause users' confusion. Add log just in case.
+                Log.i(LOG_TAG, "Forcing speaker off when initiating a new outgoing call...");
+                PhoneUtils.turnOnSpeaker(app, false, true);
+            }
+        }
+
+        return status;
+    }
+
+    /* package */ static String toLogSafePhoneNumber(String number) {
+        // For unknown number, log empty string.
+        if (number == null) {
+            return "";
+        }
+
+        if (VDBG) {
+            // When VDBG is true we emit PII.
+            return number;
+        }
+
+        // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
+        // sanitized phone numbers.
+        StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < number.length(); i++) {
+            char c = number.charAt(i);
+            if (c == '-' || c == '@' || c == '.') {
+                builder.append(c);
+            } else {
+                builder.append('x');
+            }
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Wrapper function to control when to send an empty Flash command to the network.
+     * Mainly needed for CDMA networks, such as scenarios when we need to send a blank flash
+     * to the network prior to placing a 3-way call for it to be successful.
+     */
+    static void sendEmptyFlash(Phone phone) {
+        if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            Call fgCall = phone.getForegroundCall();
+            if (fgCall.getState() == Call.State.ACTIVE) {
+                // Send the empty flash
+                if (DBG) Log.d(LOG_TAG, "onReceive: (CDMA) sending empty flash to network");
+                switchHoldingAndActive(phone.getBackgroundCall());
+            }
+        }
+    }
+
+    /**
+     * @param heldCall is the background call want to be swapped
+     */
+    static void switchHoldingAndActive(Call heldCall) {
+        log("switchHoldingAndActive()...");
+        try {
+            CallManager cm = PhoneGlobals.getInstance().mCM;
+            if (heldCall.isIdle()) {
+                // no heldCall, so it is to hold active call
+                cm.switchHoldingAndActive(cm.getFgPhone().getBackgroundCall());
+            } else {
+                // has particular heldCall, so to switch
+                cm.switchHoldingAndActive(heldCall);
+            }
+            setAudioMode(cm);
+        } catch (CallStateException ex) {
+            Log.w(LOG_TAG, "switchHoldingAndActive: caught " + ex, ex);
+        }
+    }
+
+    /**
+     * Restore the mute setting from the earliest connection of the
+     * foreground call.
+     */
+    static Boolean restoreMuteState() {
+        Phone phone = PhoneGlobals.getInstance().mCM.getFgPhone();
+
+        //get the earliest connection
+        Connection c = phone.getForegroundCall().getEarliestConnection();
+
+        // only do this if connection is not null.
+        if (c != null) {
+
+            int phoneType = phone.getPhoneType();
+
+            // retrieve the mute value.
+            Boolean shouldMute = null;
+
+            // In CDMA, mute is not maintained per Connection. Single mute apply for
+            // a call where  call can have multiple connections such as
+            // Three way and Call Waiting.  Therefore retrieving Mute state for
+            // latest connection can apply for all connection in that call
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                shouldMute = sConnectionMuteTable.get(
+                        phone.getForegroundCall().getLatestConnection());
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                    || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                shouldMute = sConnectionMuteTable.get(c);
+            }
+            if (shouldMute == null) {
+                if (DBG) log("problem retrieving mute value for this connection.");
+                shouldMute = Boolean.FALSE;
+            }
+
+            // set the mute value and return the result.
+            setMute (shouldMute.booleanValue());
+            return shouldMute;
+        }
+        return Boolean.valueOf(getMute());
+    }
+
+    static void mergeCalls() {
+        mergeCalls(PhoneGlobals.getInstance().mCM);
+    }
+
+    static void mergeCalls(CallManager cm) {
+        int phoneType = cm.getFgPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            log("mergeCalls(): CDMA...");
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            if (app.cdmaPhoneCallState.getCurrentCallState()
+                    == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE) {
+                // Set the Phone Call State to conference
+                app.cdmaPhoneCallState.setCurrentCallState(
+                        CdmaPhoneCallState.PhoneCallState.CONF_CALL);
+
+                // Send flash cmd
+                // TODO: Need to change the call from switchHoldingAndActive to
+                // something meaningful as we are not actually trying to swap calls but
+                // instead are merging two calls by sending a Flash command.
+                log("- sending flash...");
+                switchHoldingAndActive(cm.getFirstActiveBgCall());
+            }
+        } else {
+            try {
+                log("mergeCalls(): calling cm.conference()...");
+                cm.conference(cm.getFirstActiveBgCall());
+            } catch (CallStateException ex) {
+                Log.w(LOG_TAG, "mergeCalls: caught " + ex, ex);
+            }
+        }
+    }
+
+    static void separateCall(Connection c) {
+        try {
+            if (DBG) log("separateCall: " + toLogSafePhoneNumber(c.getAddress()));
+            c.separate();
+        } catch (CallStateException ex) {
+            Log.w(LOG_TAG, "separateCall: caught " + ex, ex);
+        }
+    }
+
+    /**
+     * Handle the MMIInitiate message and put up an alert that lets
+     * the user cancel the operation, if applicable.
+     *
+     * @param context context to get strings.
+     * @param mmiCode the MmiCode object being started.
+     * @param buttonCallbackMessage message to post when button is clicked.
+     * @param previousAlert a previous alert used in this activity.
+     * @return the dialog handle
+     */
+    static Dialog displayMMIInitiate(Context context,
+                                          MmiCode mmiCode,
+                                          Message buttonCallbackMessage,
+                                          Dialog previousAlert) {
+        if (DBG) log("displayMMIInitiate: " + mmiCode);
+        if (previousAlert != null) {
+            previousAlert.dismiss();
+        }
+
+        // The UI paradigm we are using now requests that all dialogs have
+        // user interaction, and that any other messages to the user should
+        // be by way of Toasts.
+        //
+        // In adhering to this request, all MMI initiating "OK" dialogs
+        // (non-cancelable MMIs) that end up being closed when the MMI
+        // completes (thereby showing a completion dialog) are being
+        // replaced with Toasts.
+        //
+        // As a side effect, moving to Toasts for the non-cancelable MMIs
+        // also means that buttonCallbackMessage (which was tied into "OK")
+        // is no longer invokable for these dialogs.  This is not a problem
+        // since the only callback messages we supported were for cancelable
+        // MMIs anyway.
+        //
+        // A cancelable MMI is really just a USSD request. The term
+        // "cancelable" here means that we can cancel the request when the
+        // system prompts us for a response, NOT while the network is
+        // processing the MMI request.  Any request to cancel a USSD while
+        // the network is NOT ready for a response may be ignored.
+        //
+        // With this in mind, we replace the cancelable alert dialog with
+        // a progress dialog, displayed until we receive a request from
+        // the the network.  For more information, please see the comments
+        // in the displayMMIComplete() method below.
+        //
+        // Anything that is NOT a USSD request is a normal MMI request,
+        // which will bring up a toast (desribed above).
+
+        boolean isCancelable = (mmiCode != null) && mmiCode.isCancelable();
+
+        if (!isCancelable) {
+            if (DBG) log("not a USSD code, displaying status toast.");
+            CharSequence text = context.getText(R.string.mmiStarted);
+            Toast.makeText(context, text, Toast.LENGTH_SHORT)
+                .show();
+            return null;
+        } else {
+            if (DBG) log("running USSD code, displaying indeterminate progress.");
+
+            // create the indeterminate progress dialog and display it.
+            ProgressDialog pd = new ProgressDialog(context);
+            pd.setMessage(context.getText(R.string.ussdRunning));
+            pd.setCancelable(false);
+            pd.setIndeterminate(true);
+            pd.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+            pd.show();
+
+            return pd;
+        }
+
+    }
+
+    /**
+     * Handle the MMIComplete message and fire off an intent to display
+     * the message.
+     *
+     * @param context context to get strings.
+     * @param mmiCode MMI result.
+     * @param previousAlert a previous alert used in this activity.
+     */
+    static void displayMMIComplete(final Phone phone, Context context, final MmiCode mmiCode,
+            Message dismissCallbackMessage,
+            AlertDialog previousAlert) {
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        CharSequence text;
+        int title = 0;  // title for the progress dialog, if needed.
+        MmiCode.State state = mmiCode.getState();
+
+        if (DBG) log("displayMMIComplete: state=" + state);
+
+        switch (state) {
+            case PENDING:
+                // USSD code asking for feedback from user.
+                text = mmiCode.getMessage();
+                if (DBG) log("- using text from PENDING MMI message: '" + text + "'");
+                break;
+            case CANCELLED:
+                text = null;
+                break;
+            case COMPLETE:
+                if (app.getPUKEntryActivity() != null) {
+                    // if an attempt to unPUK the device was made, we specify
+                    // the title and the message here.
+                    title = com.android.internal.R.string.PinMmi;
+                    text = context.getText(R.string.puk_unlocked);
+                    break;
+                }
+                // All other conditions for the COMPLETE mmi state will cause
+                // the case to fall through to message logic in common with
+                // the FAILED case.
+
+            case FAILED:
+                text = mmiCode.getMessage();
+                if (DBG) log("- using text from MMI message: '" + text + "'");
+                break;
+            default:
+                throw new IllegalStateException("Unexpected MmiCode state: " + state);
+        }
+
+        if (previousAlert != null) {
+            previousAlert.dismiss();
+        }
+
+        // Check to see if a UI exists for the PUK activation.  If it does
+        // exist, then it indicates that we're trying to unblock the PUK.
+        if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.COMPLETE)) {
+            if (DBG) log("displaying PUK unblocking progress dialog.");
+
+            // create the progress dialog, make sure the flags and type are
+            // set correctly.
+            ProgressDialog pd = new ProgressDialog(app);
+            pd.setTitle(title);
+            pd.setMessage(text);
+            pd.setCancelable(false);
+            pd.setIndeterminate(true);
+            pd.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
+            pd.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+            // display the dialog
+            pd.show();
+
+            // indicate to the Phone app that the progress dialog has
+            // been assigned for the PUK unlock / SIM READY process.
+            app.setPukEntryProgressDialog(pd);
+
+        } else {
+            // In case of failure to unlock, we'll need to reset the
+            // PUK unlock activity, so that the user may try again.
+            if (app.getPUKEntryActivity() != null) {
+                app.setPukEntryActivity(null);
+            }
+
+            // A USSD in a pending state means that it is still
+            // interacting with the user.
+            if (state != MmiCode.State.PENDING) {
+                if (DBG) log("MMI code has finished running.");
+
+                if (DBG) log("Extended NW displayMMIInitiate (" + text + ")");
+                if (text == null || text.length() == 0)
+                    return;
+
+                // displaying system alert dialog on the screen instead of
+                // using another activity to display the message.  This
+                // places the message at the forefront of the UI.
+                AlertDialog newDialog = new AlertDialog.Builder(context)
+                        .setMessage(text)
+                        .setPositiveButton(R.string.ok, null)
+                        .setCancelable(true)
+                        .create();
+
+                newDialog.getWindow().setType(
+                        WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
+                newDialog.getWindow().addFlags(
+                        WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+                newDialog.show();
+            } else {
+                if (DBG) log("USSD code has requested user input. Constructing input dialog.");
+
+                // USSD MMI code that is interacting with the user.  The
+                // basic set of steps is this:
+                //   1. User enters a USSD request
+                //   2. We recognize the request and displayMMIInitiate
+                //      (above) creates a progress dialog.
+                //   3. Request returns and we get a PENDING or COMPLETE
+                //      message.
+                //   4. These MMI messages are caught in the PhoneApp
+                //      (onMMIComplete) and the InCallScreen
+                //      (mHandler.handleMessage) which bring up this dialog
+                //      and closes the original progress dialog,
+                //      respectively.
+                //   5. If the message is anything other than PENDING,
+                //      we are done, and the alert dialog (directly above)
+                //      displays the outcome.
+                //   6. If the network is requesting more information from
+                //      the user, the MMI will be in a PENDING state, and
+                //      we display this dialog with the message.
+                //   7. User input, or cancel requests result in a return
+                //      to step 1.  Keep in mind that this is the only
+                //      time that a USSD should be canceled.
+
+                // inflate the layout with the scrolling text area for the dialog.
+                LayoutInflater inflater = (LayoutInflater) context.getSystemService(
+                        Context.LAYOUT_INFLATER_SERVICE);
+                View dialogView = inflater.inflate(R.layout.dialog_ussd_response, null);
+
+                // get the input field.
+                final EditText inputText = (EditText) dialogView.findViewById(R.id.input_field);
+
+                // specify the dialog's click listener, with SEND and CANCEL logic.
+                final DialogInterface.OnClickListener mUSSDDialogListener =
+                    new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int whichButton) {
+                            switch (whichButton) {
+                                case DialogInterface.BUTTON_POSITIVE:
+                                    // As per spec 24.080, valid length of ussd string
+                                    // is 1 - 160. If length is out of the range then
+                                    // display toast message & Cancel MMI operation.
+                                    if (inputText.length() < MIN_USSD_LEN
+                                            || inputText.length() > MAX_USSD_LEN) {
+                                        Toast.makeText(app,
+                                                app.getResources().getString(R.string.enter_input,
+                                                MIN_USSD_LEN, MAX_USSD_LEN),
+                                                Toast.LENGTH_LONG).show();
+                                        if (mmiCode.isCancelable()) {
+                                            mmiCode.cancel();
+                                        }
+                                    } else {
+                                        phone.sendUssdResponse(inputText.getText().toString());
+                                    }
+                                    break;
+                                case DialogInterface.BUTTON_NEGATIVE:
+                                    if (mmiCode.isCancelable()) {
+                                        mmiCode.cancel();
+                                    }
+                                    break;
+                            }
+                        }
+                    };
+
+                // build the dialog
+                final AlertDialog newDialog = new AlertDialog.Builder(context)
+                        .setMessage(text)
+                        .setView(dialogView)
+                        .setPositiveButton(R.string.send_button, mUSSDDialogListener)
+                        .setNegativeButton(R.string.cancel, mUSSDDialogListener)
+                        .setCancelable(false)
+                        .create();
+
+                // attach the key listener to the dialog's input field and make
+                // sure focus is set.
+                final View.OnKeyListener mUSSDDialogInputListener =
+                    new View.OnKeyListener() {
+                        public boolean onKey(View v, int keyCode, KeyEvent event) {
+                            switch (keyCode) {
+                                case KeyEvent.KEYCODE_CALL:
+                                case KeyEvent.KEYCODE_ENTER:
+                                    if(event.getAction() == KeyEvent.ACTION_DOWN) {
+                                        phone.sendUssdResponse(inputText.getText().toString());
+                                        newDialog.dismiss();
+                                    }
+                                    return true;
+                            }
+                            return false;
+                        }
+                    };
+                inputText.setOnKeyListener(mUSSDDialogInputListener);
+                inputText.requestFocus();
+
+                // set the window properties of the dialog
+                newDialog.getWindow().setType(
+                        WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
+                newDialog.getWindow().addFlags(
+                        WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+                // now show the dialog!
+                newDialog.show();
+            }
+        }
+    }
+
+    /**
+     * Cancels the current pending MMI operation, if applicable.
+     * @return true if we canceled an MMI operation, or false
+     *         if the current pending MMI wasn't cancelable
+     *         or if there was no current pending MMI at all.
+     *
+     * @see displayMMIInitiate
+     */
+    static boolean cancelMmiCode(Phone phone) {
+        List<? extends MmiCode> pendingMmis = phone.getPendingMmiCodes();
+        int count = pendingMmis.size();
+        if (DBG) log("cancelMmiCode: num pending MMIs = " + count);
+
+        boolean canceled = false;
+        if (count > 0) {
+            // assume that we only have one pending MMI operation active at a time.
+            // I don't think it's possible to enter multiple MMI codes concurrently
+            // in the phone UI, because during the MMI operation, an Alert panel
+            // is displayed, which prevents more MMI code from being entered.
+            MmiCode mmiCode = pendingMmis.get(0);
+            if (mmiCode.isCancelable()) {
+                mmiCode.cancel();
+                canceled = true;
+            }
+        }
+        return canceled;
+    }
+
+    public static class VoiceMailNumberMissingException extends Exception {
+        VoiceMailNumberMissingException() {
+            super();
+        }
+
+        VoiceMailNumberMissingException(String msg) {
+            super(msg);
+        }
+    }
+
+    /**
+     * Given an Intent (which is presumably the ACTION_CALL intent that
+     * initiated this outgoing call), figure out the actual phone number we
+     * should dial.
+     *
+     * Note that the returned "number" may actually be a SIP address,
+     * if the specified intent contains a sip: URI.
+     *
+     * This method is basically a wrapper around PhoneUtils.getNumberFromIntent(),
+     * except it's also aware of the EXTRA_ACTUAL_NUMBER_TO_DIAL extra.
+     * (That extra, if present, tells us the exact string to pass down to the
+     * telephony layer.  It's guaranteed to be safe to dial: it's either a PSTN
+     * phone number with separators and keypad letters stripped out, or a raw
+     * unencoded SIP address.)
+     *
+     * @return the phone number corresponding to the specified Intent, or null
+     *   if the Intent has no action or if the intent's data is malformed or
+     *   missing.
+     *
+     * @throws VoiceMailNumberMissingException if the intent
+     *   contains a "voicemail" URI, but there's no voicemail
+     *   number configured on the device.
+     */
+    public static String getInitialNumber(Intent intent)
+            throws PhoneUtils.VoiceMailNumberMissingException {
+        if (DBG) log("getInitialNumber(): " + intent);
+
+        String action = intent.getAction();
+        if (TextUtils.isEmpty(action)) {
+            return null;
+        }
+
+        // If the EXTRA_ACTUAL_NUMBER_TO_DIAL extra is present, get the phone
+        // number from there.  (That extra takes precedence over the actual data
+        // included in the intent.)
+        if (intent.hasExtra(OutgoingCallBroadcaster.EXTRA_ACTUAL_NUMBER_TO_DIAL)) {
+            String actualNumberToDial =
+                    intent.getStringExtra(OutgoingCallBroadcaster.EXTRA_ACTUAL_NUMBER_TO_DIAL);
+            if (DBG) {
+                log("==> got EXTRA_ACTUAL_NUMBER_TO_DIAL; returning '"
+                        + toLogSafePhoneNumber(actualNumberToDial) + "'");
+            }
+            return actualNumberToDial;
+        }
+
+        return getNumberFromIntent(PhoneGlobals.getInstance(), intent);
+    }
+
+    /**
+     * Gets the phone number to be called from an intent.  Requires a Context
+     * to access the contacts database, and a Phone to access the voicemail
+     * number.
+     *
+     * <p>If <code>phone</code> is <code>null</code>, the function will return
+     * <code>null</code> for <code>voicemail:</code> URIs;
+     * if <code>context</code> is <code>null</code>, the function will return
+     * <code>null</code> for person/phone URIs.</p>
+     *
+     * <p>If the intent contains a <code>sip:</code> URI, the returned
+     * "number" is actually the SIP address.
+     *
+     * @param context a context to use (or
+     * @param intent the intent
+     *
+     * @throws VoiceMailNumberMissingException if <code>intent</code> contains
+     *         a <code>voicemail:</code> URI, but <code>phone</code> does not
+     *         have a voicemail number set.
+     *
+     * @return the phone number (or SIP address) that would be called by the intent,
+     *         or <code>null</code> if the number cannot be found.
+     */
+    private static String getNumberFromIntent(Context context, Intent intent)
+            throws VoiceMailNumberMissingException {
+        Uri uri = intent.getData();
+        String scheme = uri.getScheme();
+
+        // The sip: scheme is simple: just treat the rest of the URI as a
+        // SIP address.
+        if (Constants.SCHEME_SIP.equals(scheme)) {
+            return uri.getSchemeSpecificPart();
+        }
+
+        // Otherwise, let PhoneNumberUtils.getNumberFromIntent() handle
+        // the other cases (i.e. tel: and voicemail: and contact: URIs.)
+
+        final String number = PhoneNumberUtils.getNumberFromIntent(intent, context);
+
+        // Check for a voicemail-dialing request.  If the voicemail number is
+        // empty, throw a VoiceMailNumberMissingException.
+        if (Constants.SCHEME_VOICEMAIL.equals(scheme) &&
+                (number == null || TextUtils.isEmpty(number)))
+            throw new VoiceMailNumberMissingException();
+
+        return number;
+    }
+
+    /**
+     * Returns the caller-id info corresponding to the specified Connection.
+     * (This is just a simple wrapper around CallerInfo.getCallerInfo(): we
+     * extract a phone number from the specified Connection, and feed that
+     * number into CallerInfo.getCallerInfo().)
+     *
+     * The returned CallerInfo may be null in certain error cases, like if the
+     * specified Connection was null, or if we weren't able to get a valid
+     * phone number from the Connection.
+     *
+     * Finally, if the getCallerInfo() call did succeed, we save the resulting
+     * CallerInfo object in the "userData" field of the Connection.
+     *
+     * NOTE: This API should be avoided, with preference given to the
+     * asynchronous startGetCallerInfo API.
+     */
+    static CallerInfo getCallerInfo(Context context, Connection c) {
+        CallerInfo info = null;
+
+        if (c != null) {
+            //See if there is a URI attached.  If there is, this means
+            //that there is no CallerInfo queried yet, so we'll need to
+            //replace the URI with a full CallerInfo object.
+            Object userDataObject = c.getUserData();
+            if (userDataObject instanceof Uri) {
+                info = CallerInfo.getCallerInfo(context, (Uri) userDataObject);
+                if (info != null) {
+                    c.setUserData(info);
+                }
+            } else {
+                if (userDataObject instanceof CallerInfoToken) {
+                    //temporary result, while query is running
+                    info = ((CallerInfoToken) userDataObject).currentInfo;
+                } else {
+                    //final query result
+                    info = (CallerInfo) userDataObject;
+                }
+                if (info == null) {
+                    // No URI, or Existing CallerInfo, so we'll have to make do with
+                    // querying a new CallerInfo using the connection's phone number.
+                    String number = c.getAddress();
+
+                    if (DBG) log("getCallerInfo: number = " + toLogSafePhoneNumber(number));
+
+                    if (!TextUtils.isEmpty(number)) {
+                        info = CallerInfo.getCallerInfo(context, number);
+                        if (info != null) {
+                            c.setUserData(info);
+                        }
+                    }
+                }
+            }
+        }
+        return info;
+    }
+
+    /**
+     * Class returned by the startGetCallerInfo call to package a temporary
+     * CallerInfo Object, to be superceded by the CallerInfo Object passed
+     * into the listener when the query with token mAsyncQueryToken is complete.
+     */
+    public static class CallerInfoToken {
+        /**indicates that there will no longer be updates to this request.*/
+        public boolean isFinal;
+
+        public CallerInfo currentInfo;
+        public CallerInfoAsyncQuery asyncQuery;
+    }
+
+    /**
+     * Start a CallerInfo Query based on the earliest connection in the call.
+     */
+    static CallerInfoToken startGetCallerInfo(Context context, Call call,
+            CallerInfoAsyncQuery.OnQueryCompleteListener listener, Object cookie) {
+        Connection conn = null;
+        int phoneType = call.getPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            conn = call.getLatestConnection();
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            conn = call.getEarliestConnection();
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+
+        return startGetCallerInfo(context, conn, listener, cookie);
+    }
+
+    /**
+     * place a temporary callerinfo object in the hands of the caller and notify
+     * caller when the actual query is done.
+     */
+    static CallerInfoToken startGetCallerInfo(Context context, Connection c,
+            CallerInfoAsyncQuery.OnQueryCompleteListener listener, Object cookie) {
+        CallerInfoToken cit;
+
+        if (c == null) {
+            //TODO: perhaps throw an exception here.
+            cit = new CallerInfoToken();
+            cit.asyncQuery = null;
+            return cit;
+        }
+
+        Object userDataObject = c.getUserData();
+
+        // There are now 3 states for the Connection's userData object:
+        //
+        //   (1) Uri - query has not been executed yet
+        //
+        //   (2) CallerInfoToken - query is executing, but has not completed.
+        //
+        //   (3) CallerInfo - query has executed.
+        //
+        // In each case we have slightly different behaviour:
+        //   1. If the query has not been executed yet (Uri or null), we start
+        //      query execution asynchronously, and note it by attaching a
+        //      CallerInfoToken as the userData.
+        //   2. If the query is executing (CallerInfoToken), we've essentially
+        //      reached a state where we've received multiple requests for the
+        //      same callerInfo.  That means that once the query is complete,
+        //      we'll need to execute the additional listener requested.
+        //   3. If the query has already been executed (CallerInfo), we just
+        //      return the CallerInfo object as expected.
+        //   4. Regarding isFinal - there are cases where the CallerInfo object
+        //      will not be attached, like when the number is empty (caller id
+        //      blocking).  This flag is used to indicate that the
+        //      CallerInfoToken object is going to be permanent since no
+        //      query results will be returned.  In the case where a query
+        //      has been completed, this flag is used to indicate to the caller
+        //      that the data will not be updated since it is valid.
+        //
+        //      Note: For the case where a number is NOT retrievable, we leave
+        //      the CallerInfo as null in the CallerInfoToken.  This is
+        //      something of a departure from the original code, since the old
+        //      code manufactured a CallerInfo object regardless of the query
+        //      outcome.  From now on, we will append an empty CallerInfo
+        //      object, to mirror previous behaviour, and to avoid Null Pointer
+        //      Exceptions.
+
+        if (userDataObject instanceof Uri) {
+            // State (1): query has not been executed yet
+
+            //create a dummy callerinfo, populate with what we know from URI.
+            cit = new CallerInfoToken();
+            cit.currentInfo = new CallerInfo();
+            cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
+                    (Uri) userDataObject, sCallerInfoQueryListener, c);
+            cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
+            cit.isFinal = false;
+
+            c.setUserData(cit);
+
+            if (DBG) log("startGetCallerInfo: query based on Uri: " + userDataObject);
+
+        } else if (userDataObject == null) {
+            // No URI, or Existing CallerInfo, so we'll have to make do with
+            // querying a new CallerInfo using the connection's phone number.
+            String number = c.getAddress();
+
+            if (DBG) {
+                log("PhoneUtils.startGetCallerInfo: new query for phone number...");
+                log("- number (address): " + toLogSafePhoneNumber(number));
+                log("- c: " + c);
+                log("- phone: " + c.getCall().getPhone());
+                int phoneType = c.getCall().getPhone().getPhoneType();
+                log("- phoneType: " + phoneType);
+                switch (phoneType) {
+                    case PhoneConstants.PHONE_TYPE_NONE: log("  ==> PHONE_TYPE_NONE"); break;
+                    case PhoneConstants.PHONE_TYPE_GSM: log("  ==> PHONE_TYPE_GSM"); break;
+                    case PhoneConstants.PHONE_TYPE_CDMA: log("  ==> PHONE_TYPE_CDMA"); break;
+                    case PhoneConstants.PHONE_TYPE_SIP: log("  ==> PHONE_TYPE_SIP"); break;
+                    default: log("  ==> Unknown phone type"); break;
+                }
+            }
+
+            cit = new CallerInfoToken();
+            cit.currentInfo = new CallerInfo();
+
+            // Store CNAP information retrieved from the Connection (we want to do this
+            // here regardless of whether the number is empty or not).
+            cit.currentInfo.cnapName =  c.getCnapName();
+            cit.currentInfo.name = cit.currentInfo.cnapName; // This can still get overwritten
+                                                             // by ContactInfo later
+            cit.currentInfo.numberPresentation = c.getNumberPresentation();
+            cit.currentInfo.namePresentation = c.getCnapNamePresentation();
+
+            if (VDBG) {
+                log("startGetCallerInfo: number = " + number);
+                log("startGetCallerInfo: CNAP Info from FW(1): name="
+                    + cit.currentInfo.cnapName
+                    + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
+            }
+
+            // handling case where number is null (caller id hidden) as well.
+            if (!TextUtils.isEmpty(number)) {
+                // Check for special CNAP cases and modify the CallerInfo accordingly
+                // to be sure we keep the right information to display/log later
+                number = modifyForSpecialCnapCases(context, cit.currentInfo, number,
+                        cit.currentInfo.numberPresentation);
+
+                cit.currentInfo.phoneNumber = number;
+                // For scenarios where we may receive a valid number from the network but a
+                // restricted/unavailable presentation, we do not want to perform a contact query
+                // (see note on isFinal above). So we set isFinal to true here as well.
+                if (cit.currentInfo.numberPresentation != PhoneConstants.PRESENTATION_ALLOWED) {
+                    cit.isFinal = true;
+                } else {
+                    if (DBG) log("==> Actually starting CallerInfoAsyncQuery.startQuery()...");
+                    cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
+                            number, sCallerInfoQueryListener, c);
+                    cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
+                    cit.isFinal = false;
+                }
+            } else {
+                // This is the case where we are querying on a number that
+                // is null or empty, like a caller whose caller id is
+                // blocked or empty (CLIR).  The previous behaviour was to
+                // throw a null CallerInfo object back to the user, but
+                // this departure is somewhat cleaner.
+                if (DBG) log("startGetCallerInfo: No query to start, send trivial reply.");
+                cit.isFinal = true; // please see note on isFinal, above.
+            }
+
+            c.setUserData(cit);
+
+            if (DBG) {
+                log("startGetCallerInfo: query based on number: " + toLogSafePhoneNumber(number));
+            }
+
+        } else if (userDataObject instanceof CallerInfoToken) {
+            // State (2): query is executing, but has not completed.
+
+            // just tack on this listener to the queue.
+            cit = (CallerInfoToken) userDataObject;
+
+            // handling case where number is null (caller id hidden) as well.
+            if (cit.asyncQuery != null) {
+                cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
+
+                if (DBG) log("startGetCallerInfo: query already running, adding listener: " +
+                        listener.getClass().toString());
+            } else {
+                // handling case where number/name gets updated later on by the network
+                String updatedNumber = c.getAddress();
+                if (DBG) {
+                    log("startGetCallerInfo: updatedNumber initially = "
+                            + toLogSafePhoneNumber(updatedNumber));
+                }
+                if (!TextUtils.isEmpty(updatedNumber)) {
+                    // Store CNAP information retrieved from the Connection
+                    cit.currentInfo.cnapName =  c.getCnapName();
+                    // This can still get overwritten by ContactInfo
+                    cit.currentInfo.name = cit.currentInfo.cnapName;
+                    cit.currentInfo.numberPresentation = c.getNumberPresentation();
+                    cit.currentInfo.namePresentation = c.getCnapNamePresentation();
+
+                    updatedNumber = modifyForSpecialCnapCases(context, cit.currentInfo,
+                            updatedNumber, cit.currentInfo.numberPresentation);
+
+                    cit.currentInfo.phoneNumber = updatedNumber;
+                    if (DBG) {
+                        log("startGetCallerInfo: updatedNumber="
+                                + toLogSafePhoneNumber(updatedNumber));
+                    }
+                    if (VDBG) {
+                        log("startGetCallerInfo: CNAP Info from FW(2): name="
+                                + cit.currentInfo.cnapName
+                                + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
+                    } else if (DBG) {
+                        log("startGetCallerInfo: CNAP Info from FW(2)");
+                    }
+                    // For scenarios where we may receive a valid number from the network but a
+                    // restricted/unavailable presentation, we do not want to perform a contact query
+                    // (see note on isFinal above). So we set isFinal to true here as well.
+                    if (cit.currentInfo.numberPresentation != PhoneConstants.PRESENTATION_ALLOWED) {
+                        cit.isFinal = true;
+                    } else {
+                        cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
+                                updatedNumber, sCallerInfoQueryListener, c);
+                        cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
+                        cit.isFinal = false;
+                    }
+                } else {
+                    if (DBG) log("startGetCallerInfo: No query to attach to, send trivial reply.");
+                    if (cit.currentInfo == null) {
+                        cit.currentInfo = new CallerInfo();
+                    }
+                    // Store CNAP information retrieved from the Connection
+                    cit.currentInfo.cnapName = c.getCnapName();  // This can still get
+                                                                 // overwritten by ContactInfo
+                    cit.currentInfo.name = cit.currentInfo.cnapName;
+                    cit.currentInfo.numberPresentation = c.getNumberPresentation();
+                    cit.currentInfo.namePresentation = c.getCnapNamePresentation();
+
+                    if (VDBG) {
+                        log("startGetCallerInfo: CNAP Info from FW(3): name="
+                                + cit.currentInfo.cnapName
+                                + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
+                    } else if (DBG) {
+                        log("startGetCallerInfo: CNAP Info from FW(3)");
+                    }
+                    cit.isFinal = true; // please see note on isFinal, above.
+                }
+            }
+        } else {
+            // State (3): query is complete.
+
+            // The connection's userDataObject is a full-fledged
+            // CallerInfo instance.  Wrap it in a CallerInfoToken and
+            // return it to the user.
+
+            cit = new CallerInfoToken();
+            cit.currentInfo = (CallerInfo) userDataObject;
+            cit.asyncQuery = null;
+            cit.isFinal = true;
+            // since the query is already done, call the listener.
+            if (DBG) log("startGetCallerInfo: query already done, returning CallerInfo");
+            if (DBG) log("==> cit.currentInfo = " + cit.currentInfo);
+        }
+        return cit;
+    }
+
+    /**
+     * Static CallerInfoAsyncQuery.OnQueryCompleteListener instance that
+     * we use with all our CallerInfoAsyncQuery.startQuery() requests.
+     */
+    private static final int QUERY_TOKEN = -1;
+    static CallerInfoAsyncQuery.OnQueryCompleteListener sCallerInfoQueryListener =
+        new CallerInfoAsyncQuery.OnQueryCompleteListener () {
+            /**
+             * When the query completes, we stash the resulting CallerInfo
+             * object away in the Connection's "userData" (where it will
+             * later be retrieved by the in-call UI.)
+             */
+            public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+                if (DBG) log("query complete, updating connection.userdata");
+                Connection conn = (Connection) cookie;
+
+                // Added a check if CallerInfo is coming from ContactInfo or from Connection.
+                // If no ContactInfo, then we want to use CNAP information coming from network
+                if (DBG) log("- onQueryComplete: CallerInfo:" + ci);
+                if (ci.contactExists || ci.isEmergencyNumber() || ci.isVoiceMailNumber()) {
+                    // If the number presentation has not been set by
+                    // the ContactInfo, use the one from the
+                    // connection.
+
+                    // TODO: Need a new util method to merge the info
+                    // from the Connection in a CallerInfo object.
+                    // Here 'ci' is a new CallerInfo instance read
+                    // from the DB. It has lost all the connection
+                    // info preset before the query (see PhoneUtils
+                    // line 1334). We should have a method to merge
+                    // back into this new instance the info from the
+                    // connection object not set by the DB. If the
+                    // Connection already has a CallerInfo instance in
+                    // userData, then we could use this instance to
+                    // fill 'ci' in. The same routine could be used in
+                    // PhoneUtils.
+                    if (0 == ci.numberPresentation) {
+                        ci.numberPresentation = conn.getNumberPresentation();
+                    }
+                } else {
+                    // No matching contact was found for this number.
+                    // Return a new CallerInfo based solely on the CNAP
+                    // information from the network.
+
+                    CallerInfo newCi = getCallerInfo(null, conn);
+
+                    // ...but copy over the (few) things we care about
+                    // from the original CallerInfo object:
+                    if (newCi != null) {
+                        newCi.phoneNumber = ci.phoneNumber; // To get formatted phone number
+                        newCi.geoDescription = ci.geoDescription; // To get geo description string
+                        ci = newCi;
+                    }
+                }
+
+                if (DBG) log("==> Stashing CallerInfo " + ci + " into the connection...");
+                conn.setUserData(ci);
+            }
+        };
+
+
+    /**
+     * Returns a single "name" for the specified given a CallerInfo object.
+     * If the name is null, return defaultString as the default value, usually
+     * context.getString(R.string.unknown).
+     */
+    static String getCompactNameFromCallerInfo(CallerInfo ci, Context context) {
+        if (DBG) log("getCompactNameFromCallerInfo: info = " + ci);
+
+        String compactName = null;
+        if (ci != null) {
+            if (TextUtils.isEmpty(ci.name)) {
+                // Perform any modifications for special CNAP cases to
+                // the phone number being displayed, if applicable.
+                compactName = modifyForSpecialCnapCases(context, ci, ci.phoneNumber,
+                                                        ci.numberPresentation);
+            } else {
+                // Don't call modifyForSpecialCnapCases on regular name. See b/2160795.
+                compactName = ci.name;
+            }
+        }
+
+        if ((compactName == null) || (TextUtils.isEmpty(compactName))) {
+            // If we're still null/empty here, then check if we have a presentation
+            // string that takes precedence that we could return, otherwise display
+            // "unknown" string.
+            if (ci != null && ci.numberPresentation == PhoneConstants.PRESENTATION_RESTRICTED) {
+                compactName = context.getString(R.string.private_num);
+            } else if (ci != null && ci.numberPresentation == PhoneConstants.PRESENTATION_PAYPHONE) {
+                compactName = context.getString(R.string.payphone);
+            } else {
+                compactName = context.getString(R.string.unknown);
+            }
+        }
+        if (VDBG) log("getCompactNameFromCallerInfo: compactName=" + compactName);
+        return compactName;
+    }
+
+    /**
+     * Returns true if the specified Call is a "conference call", meaning
+     * that it owns more than one Connection object.  This information is
+     * used to trigger certain UI changes that appear when a conference
+     * call is active (like displaying the label "Conference call", and
+     * enabling the "Manage conference" UI.)
+     *
+     * Watch out: This method simply checks the number of Connections,
+     * *not* their states.  So if a Call has (for example) one ACTIVE
+     * connection and one DISCONNECTED connection, this method will return
+     * true (which is unintuitive, since the Call isn't *really* a
+     * conference call any more.)
+     *
+     * @return true if the specified call has more than one connection (in any state.)
+     */
+    static boolean isConferenceCall(Call call) {
+        // CDMA phones don't have the same concept of "conference call" as
+        // GSM phones do; there's no special "conference call" state of
+        // the UI or a "manage conference" function.  (Instead, when
+        // you're in a 3-way call, all we can do is display the "generic"
+        // state of the UI.)  So as far as the in-call UI is concerned,
+        // Conference corresponds to generic display.
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        int phoneType = call.getPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            CdmaPhoneCallState.PhoneCallState state = app.cdmaPhoneCallState.getCurrentCallState();
+            if ((state == CdmaPhoneCallState.PhoneCallState.CONF_CALL)
+                    || ((state == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                    && !app.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing())) {
+                return true;
+            }
+        } else {
+            List<Connection> connections = call.getConnections();
+            if (connections != null && connections.size() > 1) {
+                return true;
+            }
+        }
+        return false;
+
+        // TODO: We may still want to change the semantics of this method
+        // to say that a given call is only really a conference call if
+        // the number of ACTIVE connections, not the total number of
+        // connections, is greater than one.  (See warning comment in the
+        // javadoc above.)
+        // Here's an implementation of that:
+        //        if (connections == null) {
+        //            return false;
+        //        }
+        //        int numActiveConnections = 0;
+        //        for (Connection conn : connections) {
+        //            if (DBG) log("  - CONN: " + conn + ", state = " + conn.getState());
+        //            if (conn.getState() == Call.State.ACTIVE) numActiveConnections++;
+        //            if (numActiveConnections > 1) {
+        //                return true;
+        //            }
+        //        }
+        //        return false;
+    }
+
+    /**
+     * Launch the Dialer to start a new call.
+     * This is just a wrapper around the ACTION_DIAL intent.
+     */
+    /* package */ static boolean startNewCall(final CallManager cm) {
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+
+        // Sanity-check that this is OK given the current state of the phone.
+        if (!okToAddCall(cm)) {
+            Log.w(LOG_TAG, "startNewCall: can't add a new call in the current state");
+            dumpCallManager();
+            return false;
+        }
+
+        // if applicable, mute the call while we're showing the add call UI.
+        if (cm.hasActiveFgCall()) {
+            setMuteInternal(cm.getActiveFgCall().getPhone(), true);
+            // Inform the phone app that this mute state was NOT done
+            // voluntarily by the User.
+            app.setRestoreMuteOnInCallResume(true);
+        }
+
+        Intent intent = new Intent(Intent.ACTION_DIAL);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        // when we request the dialer come up, we also want to inform
+        // it that we're going through the "add call" option from the
+        // InCallScreen / PhoneUtils.
+        intent.putExtra(ADD_CALL_MODE_KEY, true);
+        try {
+            app.startActivity(intent);
+        } catch (ActivityNotFoundException e) {
+            // This is rather rare but possible.
+            // Note: this method is used even when the phone is encrypted. At that moment
+            // the system may not find any Activity which can accept this Intent.
+            Log.e(LOG_TAG, "Activity for adding calls isn't found.");
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Turns on/off speaker.
+     *
+     * @param context Context
+     * @param flag True when speaker should be on. False otherwise.
+     * @param store True when the settings should be stored in the device.
+     */
+    /* package */ static void turnOnSpeaker(Context context, boolean flag, boolean store) {
+        if (DBG) log("turnOnSpeaker(flag=" + flag + ", store=" + store + ")...");
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+
+        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        audioManager.setSpeakerphoneOn(flag);
+
+        // record the speaker-enable value
+        if (store) {
+            sIsSpeakerEnabled = flag;
+        }
+
+        // Update the status bar icon
+        app.notificationMgr.updateSpeakerNotification(flag);
+
+        // We also need to make a fresh call to PhoneApp.updateWakeState()
+        // any time the speaker state changes, since the screen timeout is
+        // sometimes different depending on whether or not the speaker is
+        // in use.
+        app.updateWakeState();
+
+        // Update the Proximity sensor based on speaker state
+        app.updateProximitySensorMode(app.mCM.getState());
+
+        app.mCM.setEchoSuppressionEnabled(flag);
+    }
+
+    /**
+     * Restore the speaker mode, called after a wired headset disconnect
+     * event.
+     */
+    static void restoreSpeakerMode(Context context) {
+        if (DBG) log("restoreSpeakerMode, restoring to: " + sIsSpeakerEnabled);
+
+        // change the mode if needed.
+        if (isSpeakerOn(context) != sIsSpeakerEnabled) {
+            turnOnSpeaker(context, sIsSpeakerEnabled, false);
+        }
+    }
+
+    static boolean isSpeakerOn(Context context) {
+        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        return audioManager.isSpeakerphoneOn();
+    }
+
+
+    static void turnOnNoiseSuppression(Context context, boolean flag, boolean store) {
+        if (DBG) log("turnOnNoiseSuppression: " + flag);
+        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+
+        if (!context.getResources().getBoolean(R.bool.has_in_call_noise_suppression)) {
+            return;
+        }
+
+        if (flag) {
+            audioManager.setParameters("noise_suppression=auto");
+        } else {
+            audioManager.setParameters("noise_suppression=off");
+        }
+
+        // record the speaker-enable value
+        if (store) {
+            sIsNoiseSuppressionEnabled = flag;
+        }
+
+        // TODO: implement and manage ICON
+
+    }
+
+    static void restoreNoiseSuppression(Context context) {
+        if (DBG) log("restoreNoiseSuppression, restoring to: " + sIsNoiseSuppressionEnabled);
+
+        if (!context.getResources().getBoolean(R.bool.has_in_call_noise_suppression)) {
+            return;
+        }
+
+        // change the mode if needed.
+        if (isNoiseSuppressionOn(context) != sIsNoiseSuppressionEnabled) {
+            turnOnNoiseSuppression(context, sIsNoiseSuppressionEnabled, false);
+        }
+    }
+
+    static boolean isNoiseSuppressionOn(Context context) {
+
+        if (!context.getResources().getBoolean(R.bool.has_in_call_noise_suppression)) {
+            return false;
+        }
+
+        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        String noiseSuppression = audioManager.getParameters("noise_suppression");
+        if (DBG) log("isNoiseSuppressionOn: " + noiseSuppression);
+        if (noiseSuppression.contains("off")) {
+            return false;
+        } else {
+            return true;
+        }
+    }
+
+    /**
+     *
+     * Mute / umute the foreground phone, which has the current foreground call
+     *
+     * All muting / unmuting from the in-call UI should go through this
+     * wrapper.
+     *
+     * Wrapper around Phone.setMute() and setMicrophoneMute().
+     * It also updates the connectionMuteTable and mute icon in the status bar.
+     *
+     */
+    static void setMute(boolean muted) {
+        CallManager cm = PhoneGlobals.getInstance().mCM;
+
+        // make the call to mute the audio
+        setMuteInternal(cm.getFgPhone(), muted);
+
+        // update the foreground connections to match.  This includes
+        // all the connections on conference calls.
+        for (Connection cn : cm.getActiveFgCall().getConnections()) {
+            if (sConnectionMuteTable.get(cn) == null) {
+                if (DBG) log("problem retrieving mute value for this connection.");
+            }
+            sConnectionMuteTable.put(cn, Boolean.valueOf(muted));
+        }
+    }
+
+    /**
+     * Internally used muting function.
+     */
+    private static void setMuteInternal(Phone phone, boolean muted) {
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        Context context = phone.getContext();
+        boolean routeToAudioManager =
+            context.getResources().getBoolean(R.bool.send_mic_mute_to_AudioManager);
+        if (routeToAudioManager) {
+            AudioManager audioManager =
+                (AudioManager) phone.getContext().getSystemService(Context.AUDIO_SERVICE);
+            if (DBG) log("setMuteInternal: using setMicrophoneMute(" + muted + ")...");
+            audioManager.setMicrophoneMute(muted);
+        } else {
+            if (DBG) log("setMuteInternal: using phone.setMute(" + muted + ")...");
+            phone.setMute(muted);
+        }
+        app.notificationMgr.updateMuteNotification();
+    }
+
+    /**
+     * Get the mute state of foreground phone, which has the current
+     * foreground call
+     */
+    static boolean getMute() {
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+
+        boolean routeToAudioManager =
+            app.getResources().getBoolean(R.bool.send_mic_mute_to_AudioManager);
+        if (routeToAudioManager) {
+            AudioManager audioManager =
+                (AudioManager) app.getSystemService(Context.AUDIO_SERVICE);
+            return audioManager.isMicrophoneMute();
+        } else {
+            return app.mCM.getMute();
+        }
+    }
+
+    /* package */ static void setAudioMode() {
+        setAudioMode(PhoneGlobals.getInstance().mCM);
+    }
+
+    /**
+     * Sets the audio mode per current phone state.
+     */
+    /* package */ static void setAudioMode(CallManager cm) {
+        if (DBG) Log.d(LOG_TAG, "setAudioMode()..." + cm.getState());
+
+        Context context = PhoneGlobals.getInstance();
+        AudioManager audioManager = (AudioManager)
+                context.getSystemService(Context.AUDIO_SERVICE);
+        int modeBefore = audioManager.getMode();
+        cm.setAudioMode();
+        int modeAfter = audioManager.getMode();
+
+        if (modeBefore != modeAfter) {
+            // Enable stack dump only when actively debugging ("new Throwable()" is expensive!)
+            if (DBG_SETAUDIOMODE_STACK) Log.d(LOG_TAG, "Stack:", new Throwable("stack dump"));
+        } else {
+            if (DBG) Log.d(LOG_TAG, "setAudioMode() no change: "
+                    + audioModeToString(modeBefore));
+        }
+    }
+    private static String audioModeToString(int mode) {
+        switch (mode) {
+            case AudioManager.MODE_INVALID: return "MODE_INVALID";
+            case AudioManager.MODE_CURRENT: return "MODE_CURRENT";
+            case AudioManager.MODE_NORMAL: return "MODE_NORMAL";
+            case AudioManager.MODE_RINGTONE: return "MODE_RINGTONE";
+            case AudioManager.MODE_IN_CALL: return "MODE_IN_CALL";
+            default: return String.valueOf(mode);
+        }
+    }
+
+    /**
+     * Handles the wired headset button while in-call.
+     *
+     * This is called from the PhoneApp, not from the InCallScreen,
+     * since the HEADSETHOOK button means "mute or unmute the current
+     * call" *any* time a call is active, even if the user isn't actually
+     * on the in-call screen.
+     *
+     * @return true if we consumed the event.
+     */
+    /* package */ static boolean handleHeadsetHook(Phone phone, KeyEvent event) {
+        if (DBG) log("handleHeadsetHook()..." + event.getAction() + " " + event.getRepeatCount());
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+
+        // If the phone is totally idle, we ignore HEADSETHOOK events
+        // (and instead let them fall through to the media player.)
+        if (phone.getState() == PhoneConstants.State.IDLE) {
+            return false;
+        }
+
+        // Ok, the phone is in use.
+        // The headset button button means "Answer" if an incoming call is
+        // ringing.  If not, it toggles the mute / unmute state.
+        //
+        // And in any case we *always* consume this event; this means
+        // that the usual mediaplayer-related behavior of the headset
+        // button will NEVER happen while the user is on a call.
+
+        final boolean hasRingingCall = !phone.getRingingCall().isIdle();
+        final boolean hasActiveCall = !phone.getForegroundCall().isIdle();
+        final boolean hasHoldingCall = !phone.getBackgroundCall().isIdle();
+
+        if (hasRingingCall &&
+            event.getRepeatCount() == 0 &&
+            event.getAction() == KeyEvent.ACTION_UP) {
+            // If an incoming call is ringing, answer it (just like with the
+            // CALL button):
+            int phoneType = phone.getPhoneType();
+            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+                answerCall(phone.getRingingCall());
+            } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                    || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+                if (hasActiveCall && hasHoldingCall) {
+                    if (DBG) log("handleHeadsetHook: ringing (both lines in use) ==> answer!");
+                    answerAndEndActive(app.mCM, phone.getRingingCall());
+                } else {
+                    if (DBG) log("handleHeadsetHook: ringing ==> answer!");
+                    // answerCall() will automatically hold the current
+                    // active call, if there is one.
+                    answerCall(phone.getRingingCall());
+                }
+            } else {
+                throw new IllegalStateException("Unexpected phone type: " + phoneType);
+            }
+        } else {
+            // No incoming ringing call.
+            if (event.isLongPress()) {
+                if (DBG) log("handleHeadsetHook: longpress -> hangup");
+                hangup(app.mCM);
+            }
+            else if (event.getAction() == KeyEvent.ACTION_UP &&
+                     event.getRepeatCount() == 0) {
+                Connection c = phone.getForegroundCall().getLatestConnection();
+                // If it is NOT an emg #, toggle the mute state. Otherwise, ignore the hook.
+                if (c != null && !PhoneNumberUtils.isLocalEmergencyNumber(c.getAddress(),
+                                                                          PhoneGlobals.getInstance())) {
+                    if (getMute()) {
+                        if (DBG) log("handleHeadsetHook: UNmuting...");
+                        setMute(false);
+                    } else {
+                        if (DBG) log("handleHeadsetHook: muting...");
+                        setMute(true);
+                    }
+                }
+            }
+        }
+
+        // Even if the InCallScreen is the current activity, there's no
+        // need to force it to update, because (1) if we answered a
+        // ringing call, the InCallScreen will imminently get a phone
+        // state change event (causing an update), and (2) if we muted or
+        // unmuted, the setMute() call automagically updates the status
+        // bar, and there's no "mute" indication in the InCallScreen
+        // itself (other than the menu item, which only ever stays
+        // onscreen for a second anyway.)
+        // TODO: (2) isn't entirely true anymore. Once we return our result
+        // to the PhoneApp, we ask InCallScreen to update its control widgets
+        // in case we changed mute or speaker state and phones with touch-
+        // screen [toggle] buttons need to update themselves.
+
+        return true;
+    }
+
+    /**
+     * Look for ANY connections on the phone that qualify as being
+     * disconnected.
+     *
+     * @return true if we find a connection that is disconnected over
+     * all the phone's call objects.
+     */
+    /* package */ static boolean hasDisconnectedConnections(Phone phone) {
+        return hasDisconnectedConnections(phone.getForegroundCall()) ||
+                hasDisconnectedConnections(phone.getBackgroundCall()) ||
+                hasDisconnectedConnections(phone.getRingingCall());
+    }
+
+    /**
+     * Iterate over all connections in a call to see if there are any
+     * that are not alive (disconnected or idle).
+     *
+     * @return true if we find a connection that is disconnected, and
+     * pending removal via
+     * {@link com.android.internal.telephony.gsm.GsmCall#clearDisconnected()}.
+     */
+    private static final boolean hasDisconnectedConnections(Call call) {
+        // look through all connections for non-active ones.
+        for (Connection c : call.getConnections()) {
+            if (!c.isAlive()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    //
+    // Misc UI policy helper functions
+    //
+
+    /**
+     * @return true if we're allowed to swap calls, given the current
+     * state of the Phone.
+     */
+    /* package */ static boolean okToSwapCalls(CallManager cm) {
+        int phoneType = cm.getDefaultPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            // CDMA: "Swap" is enabled only when the phone reaches a *generic*.
+            // state by either accepting a Call Waiting or by merging two calls
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            return (app.cdmaPhoneCallState.getCurrentCallState()
+                    == CdmaPhoneCallState.PhoneCallState.CONF_CALL);
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            // GSM: "Swap" is available if both lines are in use and there's no
+            // incoming call.  (Actually we need to verify that the active
+            // call really is in the ACTIVE state and the holding call really
+            // is in the HOLDING state, since you *can't* actually swap calls
+            // when the foreground call is DIALING or ALERTING.)
+            return !cm.hasActiveRingingCall()
+                    && (cm.getActiveFgCall().getState() == Call.State.ACTIVE)
+                    && (cm.getFirstActiveBgCall().getState() == Call.State.HOLDING);
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+    }
+
+    /**
+     * @return true if we're allowed to merge calls, given the current
+     * state of the Phone.
+     */
+    /* package */ static boolean okToMergeCalls(CallManager cm) {
+        int phoneType = cm.getFgPhone().getPhoneType();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+            // CDMA: "Merge" is enabled only when the user is in a 3Way call.
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            return ((app.cdmaPhoneCallState.getCurrentCallState()
+                    == CdmaPhoneCallState.PhoneCallState.THRWAY_ACTIVE)
+                    && !app.cdmaPhoneCallState.IsThreeWayCallOrigStateDialing());
+        } else {
+            // GSM: "Merge" is available if both lines are in use and there's no
+            // incoming call, *and* the current conference isn't already
+            // "full".
+            // TODO: shall move all okToMerge logic to CallManager
+            return !cm.hasActiveRingingCall() && cm.hasActiveFgCall()
+                    && cm.hasActiveBgCall()
+                    && cm.canConference(cm.getFirstActiveBgCall());
+        }
+    }
+
+    /**
+     * @return true if the UI should let you add a new call, given the current
+     * state of the Phone.
+     */
+    /* package */ static boolean okToAddCall(CallManager cm) {
+        Phone phone = cm.getActiveFgCall().getPhone();
+
+        // "Add call" is never allowed in emergency callback mode (ECM).
+        if (isPhoneInEcm(phone)) {
+            return false;
+        }
+
+        int phoneType = phone.getPhoneType();
+        final Call.State fgCallState = cm.getActiveFgCall().getState();
+        if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+           // CDMA: "Add call" button is only enabled when:
+           // - ForegroundCall is in ACTIVE state
+           // - After 30 seconds of user Ignoring/Missing a Call Waiting call.
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            return ((fgCallState == Call.State.ACTIVE)
+                    && (app.cdmaPhoneCallState.getAddCallMenuStateAfterCallWaiting()));
+        } else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
+                || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+            // GSM: "Add call" is available only if ALL of the following are true:
+            // - There's no incoming ringing call
+            // - There's < 2 lines in use
+            // - The foreground call is ACTIVE or IDLE or DISCONNECTED.
+            //   (We mainly need to make sure it *isn't* DIALING or ALERTING.)
+            final boolean hasRingingCall = cm.hasActiveRingingCall();
+            final boolean hasActiveCall = cm.hasActiveFgCall();
+            final boolean hasHoldingCall = cm.hasActiveBgCall();
+            final boolean allLinesTaken = hasActiveCall && hasHoldingCall;
+
+            return !hasRingingCall
+                    && !allLinesTaken
+                    && ((fgCallState == Call.State.ACTIVE)
+                        || (fgCallState == Call.State.IDLE)
+                        || (fgCallState == Call.State.DISCONNECTED));
+        } else {
+            throw new IllegalStateException("Unexpected phone type: " + phoneType);
+        }
+    }
+
+    /**
+     * Based on the input CNAP number string,
+     * @return _RESTRICTED or _UNKNOWN for all the special CNAP strings.
+     * Otherwise, return CNAP_SPECIAL_CASE_NO.
+     */
+    private static int checkCnapSpecialCases(String n) {
+        if (n.equals("PRIVATE") ||
+                n.equals("P") ||
+                n.equals("RES")) {
+            if (DBG) log("checkCnapSpecialCases, PRIVATE string: " + n);
+            return PhoneConstants.PRESENTATION_RESTRICTED;
+        } else if (n.equals("UNAVAILABLE") ||
+                n.equals("UNKNOWN") ||
+                n.equals("UNA") ||
+                n.equals("U")) {
+            if (DBG) log("checkCnapSpecialCases, UNKNOWN string: " + n);
+            return PhoneConstants.PRESENTATION_UNKNOWN;
+        } else {
+            if (DBG) log("checkCnapSpecialCases, normal str. number: " + n);
+            return CNAP_SPECIAL_CASE_NO;
+        }
+    }
+
+    /**
+     * Handles certain "corner cases" for CNAP. When we receive weird phone numbers
+     * from the network to indicate different number presentations, convert them to
+     * expected number and presentation values within the CallerInfo object.
+     * @param number number we use to verify if we are in a corner case
+     * @param presentation presentation value used to verify if we are in a corner case
+     * @return the new String that should be used for the phone number
+     */
+    /* package */ static String modifyForSpecialCnapCases(Context context, CallerInfo ci,
+            String number, int presentation) {
+        // Obviously we return number if ci == null, but still return number if
+        // number == null, because in these cases the correct string will still be
+        // displayed/logged after this function returns based on the presentation value.
+        if (ci == null || number == null) return number;
+
+        if (DBG) {
+            log("modifyForSpecialCnapCases: initially, number="
+                    + toLogSafePhoneNumber(number)
+                    + ", presentation=" + presentation + " ci " + ci);
+        }
+
+        // "ABSENT NUMBER" is a possible value we could get from the network as the
+        // phone number, so if this happens, change it to "Unknown" in the CallerInfo
+        // and fix the presentation to be the same.
+        final String[] absentNumberValues =
+                context.getResources().getStringArray(R.array.absent_num);
+        if (Arrays.asList(absentNumberValues).contains(number)
+                && presentation == PhoneConstants.PRESENTATION_ALLOWED) {
+            number = context.getString(R.string.unknown);
+            ci.numberPresentation = PhoneConstants.PRESENTATION_UNKNOWN;
+        }
+
+        // Check for other special "corner cases" for CNAP and fix them similarly. Corner
+        // cases only apply if we received an allowed presentation from the network, so check
+        // if we think we have an allowed presentation, or if the CallerInfo presentation doesn't
+        // match the presentation passed in for verification (meaning we changed it previously
+        // because it's a corner case and we're being called from a different entry point).
+        if (ci.numberPresentation == PhoneConstants.PRESENTATION_ALLOWED
+                || (ci.numberPresentation != presentation
+                        && presentation == PhoneConstants.PRESENTATION_ALLOWED)) {
+            int cnapSpecialCase = checkCnapSpecialCases(number);
+            if (cnapSpecialCase != CNAP_SPECIAL_CASE_NO) {
+                // For all special strings, change number & numberPresentation.
+                if (cnapSpecialCase == PhoneConstants.PRESENTATION_RESTRICTED) {
+                    number = context.getString(R.string.private_num);
+                } else if (cnapSpecialCase == PhoneConstants.PRESENTATION_UNKNOWN) {
+                    number = context.getString(R.string.unknown);
+                }
+                if (DBG) {
+                    log("SpecialCnap: number=" + toLogSafePhoneNumber(number)
+                            + "; presentation now=" + cnapSpecialCase);
+                }
+                ci.numberPresentation = cnapSpecialCase;
+            }
+        }
+        if (DBG) {
+            log("modifyForSpecialCnapCases: returning number string="
+                    + toLogSafePhoneNumber(number));
+        }
+        return number;
+    }
+
+    //
+    // Support for 3rd party phone service providers.
+    //
+
+    /**
+     * Check if all the provider's info is present in the intent.
+     * @param intent Expected to have the provider's extra.
+     * @return true if the intent has all the extras to build the
+     * in-call screen's provider info overlay.
+     */
+    /* package */ static boolean hasPhoneProviderExtras(Intent intent) {
+        if (null == intent) {
+            return false;
+        }
+        final String name = intent.getStringExtra(InCallScreen.EXTRA_GATEWAY_PROVIDER_PACKAGE);
+        final String gatewayUri = intent.getStringExtra(InCallScreen.EXTRA_GATEWAY_URI);
+
+        return !TextUtils.isEmpty(name) && !TextUtils.isEmpty(gatewayUri);
+    }
+
+    /**
+     * Copy all the expected extras set when a 3rd party provider is
+     * used from the source intent to the destination one.  Checks all
+     * the required extras are present, if any is missing, none will
+     * be copied.
+     * @param src Intent which may contain the provider's extras.
+     * @param dst Intent where a copy of the extras will be added if applicable.
+     */
+    /* package */ static void checkAndCopyPhoneProviderExtras(Intent src, Intent dst) {
+        if (!hasPhoneProviderExtras(src)) {
+            Log.d(LOG_TAG, "checkAndCopyPhoneProviderExtras: some or all extras are missing.");
+            return;
+        }
+
+        dst.putExtra(InCallScreen.EXTRA_GATEWAY_PROVIDER_PACKAGE,
+                     src.getStringExtra(InCallScreen.EXTRA_GATEWAY_PROVIDER_PACKAGE));
+        dst.putExtra(InCallScreen.EXTRA_GATEWAY_URI,
+                     src.getStringExtra(InCallScreen.EXTRA_GATEWAY_URI));
+    }
+
+    /**
+     * Get the provider's label from the intent.
+     * @param context to lookup the provider's package name.
+     * @param intent with an extra set to the provider's package name.
+     * @return The provider's application label. null if an error
+     * occurred during the lookup of the package name or the label.
+     */
+    /* package */ static CharSequence getProviderLabel(Context context, Intent intent) {
+        String packageName = intent.getStringExtra(InCallScreen.EXTRA_GATEWAY_PROVIDER_PACKAGE);
+        PackageManager pm = context.getPackageManager();
+
+        try {
+            ApplicationInfo info = pm.getApplicationInfo(packageName, 0);
+
+            return pm.getApplicationLabel(info);
+        } catch (PackageManager.NameNotFoundException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Get the provider's icon.
+     * @param context to lookup the provider's icon.
+     * @param intent with an extra set to the provider's package name.
+     * @return The provider's application icon. null if an error occured during the icon lookup.
+     */
+    /* package */ static Drawable getProviderIcon(Context context, Intent intent) {
+        String packageName = intent.getStringExtra(InCallScreen.EXTRA_GATEWAY_PROVIDER_PACKAGE);
+        PackageManager pm = context.getPackageManager();
+
+        try {
+            return pm.getApplicationIcon(packageName);
+        } catch (PackageManager.NameNotFoundException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Return the gateway uri from the intent.
+     * @param intent With the gateway uri extra.
+     * @return The gateway URI or null if not found.
+     */
+    /* package */ static Uri getProviderGatewayUri(Intent intent) {
+        String uri = intent.getStringExtra(InCallScreen.EXTRA_GATEWAY_URI);
+        return TextUtils.isEmpty(uri) ? null : Uri.parse(uri);
+    }
+
+    /**
+     * Return a formatted version of the uri's scheme specific
+     * part. E.g for 'tel:12345678', return '1-234-5678'.
+     * @param uri A 'tel:' URI with the gateway phone number.
+     * @return the provider's address (from the gateway uri) formatted
+     * for user display. null if uri was null or its scheme was not 'tel:'.
+     */
+    /* package */ static String formatProviderUri(Uri uri) {
+        if (null != uri) {
+            if (Constants.SCHEME_TEL.equals(uri.getScheme())) {
+                return PhoneNumberUtils.formatNumber(uri.getSchemeSpecificPart());
+            } else {
+                return uri.toString();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Check if a phone number can be route through a 3rd party
+     * gateway. The number must be a global phone number in numerical
+     * form (1-800-666-SEXY won't work).
+     *
+     * MMI codes and the like cannot be used as a dial number for the
+     * gateway either.
+     *
+     * @param number To be dialed via a 3rd party gateway.
+     * @return true If the number can be routed through the 3rd party network.
+     */
+    /* package */ static boolean isRoutableViaGateway(String number) {
+        if (TextUtils.isEmpty(number)) {
+            return false;
+        }
+        number = PhoneNumberUtils.stripSeparators(number);
+        if (!number.equals(PhoneNumberUtils.convertKeypadLettersToDigits(number))) {
+            return false;
+        }
+        number = PhoneNumberUtils.extractNetworkPortion(number);
+        return PhoneNumberUtils.isGlobalPhoneNumber(number);
+    }
+
+   /**
+    * This function is called when phone answers or places a call.
+    * Check if the phone is in a car dock or desk dock.
+    * If yes, turn on the speaker, when no wired or BT headsets are connected.
+    * Otherwise do nothing.
+    * @return true if activated
+    */
+    private static boolean activateSpeakerIfDocked(Phone phone) {
+        if (DBG) log("activateSpeakerIfDocked()...");
+
+        boolean activated = false;
+        if (PhoneGlobals.mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+            if (DBG) log("activateSpeakerIfDocked(): In a dock -> may need to turn on speaker.");
+            PhoneGlobals app = PhoneGlobals.getInstance();
+
+            if (!app.isHeadsetPlugged() && !app.isBluetoothHeadsetAudioOn()) {
+                turnOnSpeaker(phone.getContext(), true, true);
+                activated = true;
+            }
+        }
+        return activated;
+    }
+
+
+    /**
+     * Returns whether the phone is in ECM ("Emergency Callback Mode") or not.
+     */
+    /* package */ static boolean isPhoneInEcm(Phone phone) {
+        if ((phone != null) && TelephonyCapabilities.supportsEcm(phone)) {
+            // For phones that support ECM, return true iff PROPERTY_INECM_MODE == "true".
+            // TODO: There ought to be a better API for this than just
+            // exposing a system property all the way up to the app layer,
+            // probably a method like "inEcm()" provided by the telephony
+            // layer.
+            String ecmMode =
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE);
+            if (ecmMode != null) {
+                return ecmMode.equals("true");
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns the most appropriate Phone object to handle a call
+     * to the specified number.
+     *
+     * @param cm the CallManager.
+     * @param scheme the scheme from the data URI that the number originally came from.
+     * @param number the phone number, or SIP address.
+     */
+    public static Phone pickPhoneBasedOnNumber(CallManager cm,
+            String scheme, String number, String primarySipUri) {
+        if (DBG) {
+            log("pickPhoneBasedOnNumber: scheme " + scheme
+                    + ", number " + toLogSafePhoneNumber(number)
+                    + ", sipUri "
+                    + (primarySipUri != null ? Uri.parse(primarySipUri).toSafeString() : "null"));
+        }
+
+        if (primarySipUri != null) {
+            Phone phone = getSipPhoneFromUri(cm, primarySipUri);
+            if (phone != null) return phone;
+        }
+        return cm.getDefaultPhone();
+    }
+
+    public static Phone getSipPhoneFromUri(CallManager cm, String target) {
+        for (Phone phone : cm.getAllPhones()) {
+            if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_SIP) {
+                String sipUri = ((SipPhone) phone).getSipUri();
+                if (target.equals(sipUri)) {
+                    if (DBG) log("- pickPhoneBasedOnNumber:" +
+                            "found SipPhone! obj = " + phone + ", "
+                            + phone.getClass());
+                    return phone;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns true when the given call is in INCOMING state and there's no foreground phone call,
+     * meaning the call is the first real incoming call the phone is having.
+     */
+    public static boolean isRealIncomingCall(Call.State state) {
+        return (state == Call.State.INCOMING && !PhoneGlobals.getInstance().mCM.hasActiveFgCall());
+    }
+
+    private static boolean sVoipSupported = false;
+    static {
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        sVoipSupported = SipManager.isVoipSupported(app)
+                && app.getResources().getBoolean(com.android.internal.R.bool.config_built_in_sip_phone)
+                && app.getResources().getBoolean(com.android.internal.R.bool.config_voice_capable);
+    }
+
+    /**
+     * @return true if this device supports voice calls using the built-in SIP stack.
+     */
+    static boolean isVoipSupported() {
+        return sVoipSupported;
+    }
+
+    public static String getPresentationString(Context context, int presentation) {
+        String name = context.getString(R.string.unknown);
+        if (presentation == PhoneConstants.PRESENTATION_RESTRICTED) {
+            name = context.getString(R.string.private_num);
+        } else if (presentation == PhoneConstants.PRESENTATION_PAYPHONE) {
+            name = context.getString(R.string.payphone);
+        }
+        return name;
+    }
+
+    public static void sendViewNotificationAsync(Context context, Uri contactUri) {
+        if (DBG) Log.d(LOG_TAG, "Send view notification to Contacts (uri: " + contactUri + ")");
+        Intent intent = new Intent("com.android.contacts.VIEW_NOTIFICATION", contactUri);
+        intent.setClassName("com.android.contacts",
+                "com.android.contacts.ViewNotificationService");
+        context.startService(intent);
+    }
+
+    //
+    // General phone and call state debugging/testing code
+    //
+
+    /* package */ static void dumpCallState(Phone phone) {
+        PhoneGlobals app = PhoneGlobals.getInstance();
+        Log.d(LOG_TAG, "dumpCallState():");
+        Log.d(LOG_TAG, "- Phone: " + phone + ", name = " + phone.getPhoneName()
+              + ", state = " + phone.getState());
+
+        StringBuilder b = new StringBuilder(128);
+
+        Call call = phone.getForegroundCall();
+        b.setLength(0);
+        b.append("  - FG call: ").append(call.getState());
+        b.append(" isAlive ").append(call.getState().isAlive());
+        b.append(" isRinging ").append(call.getState().isRinging());
+        b.append(" isDialing ").append(call.getState().isDialing());
+        b.append(" isIdle ").append(call.isIdle());
+        b.append(" hasConnections ").append(call.hasConnections());
+        Log.d(LOG_TAG, b.toString());
+
+        call = phone.getBackgroundCall();
+        b.setLength(0);
+        b.append("  - BG call: ").append(call.getState());
+        b.append(" isAlive ").append(call.getState().isAlive());
+        b.append(" isRinging ").append(call.getState().isRinging());
+        b.append(" isDialing ").append(call.getState().isDialing());
+        b.append(" isIdle ").append(call.isIdle());
+        b.append(" hasConnections ").append(call.hasConnections());
+        Log.d(LOG_TAG, b.toString());
+
+        call = phone.getRingingCall();
+        b.setLength(0);
+        b.append("  - RINGING call: ").append(call.getState());
+        b.append(" isAlive ").append(call.getState().isAlive());
+        b.append(" isRinging ").append(call.getState().isRinging());
+        b.append(" isDialing ").append(call.getState().isDialing());
+        b.append(" isIdle ").append(call.isIdle());
+        b.append(" hasConnections ").append(call.hasConnections());
+        Log.d(LOG_TAG, b.toString());
+
+
+        final boolean hasRingingCall = !phone.getRingingCall().isIdle();
+        final boolean hasActiveCall = !phone.getForegroundCall().isIdle();
+        final boolean hasHoldingCall = !phone.getBackgroundCall().isIdle();
+        final boolean allLinesTaken = hasActiveCall && hasHoldingCall;
+        b.setLength(0);
+        b.append("  - hasRingingCall ").append(hasRingingCall);
+        b.append(" hasActiveCall ").append(hasActiveCall);
+        b.append(" hasHoldingCall ").append(hasHoldingCall);
+        b.append(" allLinesTaken ").append(allLinesTaken);
+        Log.d(LOG_TAG, b.toString());
+
+        // On CDMA phones, dump out the CdmaPhoneCallState too:
+        if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+            if (app.cdmaPhoneCallState != null) {
+                Log.d(LOG_TAG, "  - CDMA call state: "
+                      + app.cdmaPhoneCallState.getCurrentCallState());
+            } else {
+                Log.d(LOG_TAG, "  - CDMA device, but null cdmaPhoneCallState!");
+            }
+        }
+
+        // Watch out: the isRinging() call below does NOT tell us anything
+        // about the state of the telephony layer; it merely tells us whether
+        // the Ringer manager is currently playing the ringtone.
+        boolean ringing = app.getRinger().isRinging();
+        Log.d(LOG_TAG, "  - Ringer state: " + ringing);
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+
+    static void dumpCallManager() {
+        Call call;
+        CallManager cm = PhoneGlobals.getInstance().mCM;
+        StringBuilder b = new StringBuilder(128);
+
+
+
+        Log.d(LOG_TAG, "############### dumpCallManager() ##############");
+        // TODO: Don't log "cm" itself, since CallManager.toString()
+        // already spews out almost all this same information.
+        // We should fix CallManager.toString() to be more minimal, and
+        // use an explicit dumpState() method for the verbose dump.
+        // Log.d(LOG_TAG, "CallManager: " + cm
+        //         + ", state = " + cm.getState());
+        Log.d(LOG_TAG, "CallManager: state = " + cm.getState());
+        b.setLength(0);
+        call = cm.getActiveFgCall();
+        b.append(" - FG call: ").append(cm.hasActiveFgCall()? "YES ": "NO ");
+        b.append(call);
+        b.append( "  State: ").append(cm.getActiveFgCallState());
+        b.append( "  Conn: ").append(cm.getFgCallConnections());
+        Log.d(LOG_TAG, b.toString());
+        b.setLength(0);
+        call = cm.getFirstActiveBgCall();
+        b.append(" - BG call: ").append(cm.hasActiveBgCall()? "YES ": "NO ");
+        b.append(call);
+        b.append( "  State: ").append(cm.getFirstActiveBgCall().getState());
+        b.append( "  Conn: ").append(cm.getBgCallConnections());
+        Log.d(LOG_TAG, b.toString());
+        b.setLength(0);
+        call = cm.getFirstActiveRingingCall();
+        b.append(" - RINGING call: ").append(cm.hasActiveRingingCall()? "YES ": "NO ");
+        b.append(call);
+        b.append( "  State: ").append(cm.getFirstActiveRingingCall().getState());
+        Log.d(LOG_TAG, b.toString());
+
+
+
+        for (Phone phone : CallManager.getInstance().getAllPhones()) {
+            if (phone != null) {
+                Log.d(LOG_TAG, "Phone: " + phone + ", name = " + phone.getPhoneName()
+                        + ", state = " + phone.getState());
+                b.setLength(0);
+                call = phone.getForegroundCall();
+                b.append(" - FG call: ").append(call);
+                b.append( "  State: ").append(call.getState());
+                b.append( "  Conn: ").append(call.hasConnections());
+                Log.d(LOG_TAG, b.toString());
+                b.setLength(0);
+                call = phone.getBackgroundCall();
+                b.append(" - BG call: ").append(call);
+                b.append( "  State: ").append(call.getState());
+                b.append( "  Conn: ").append(call.hasConnections());
+                Log.d(LOG_TAG, b.toString());b.setLength(0);
+                call = phone.getRingingCall();
+                b.append(" - RINGING call: ").append(call);
+                b.append( "  State: ").append(call.getState());
+                b.append( "  Conn: ").append(call.hasConnections());
+                Log.d(LOG_TAG, b.toString());
+            }
+        }
+
+        Log.d(LOG_TAG, "############## END dumpCallManager() ###############");
+    }
+
+    /**
+     * @return if the context is in landscape orientation.
+     */
+    public static boolean isLandscape(Context context) {
+        return context.getResources().getConfiguration().orientation
+                == Configuration.ORIENTATION_LANDSCAPE;
+    }
+}
diff --git a/src/com/android/phone/ProcessOutgoingCallTest.java b/src/com/android/phone/ProcessOutgoingCallTest.java
new file mode 100644
index 0000000..c76fb43
--- /dev/null
+++ b/src/com/android/phone/ProcessOutgoingCallTest.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+package com.android.phone;
+
+import android.app.SearchManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.util.Log;
+
+/**
+ * ProcessOutgoingCallTest tests {@link OutgoingCallBroadcaster} by performing
+ * a couple of simple modifications to outgoing calls, and by printing log
+ * messages for each call.
+ */
+public class ProcessOutgoingCallTest extends BroadcastReceiver {
+    private static final String TAG = "ProcessOutgoingCallTest";
+    private static final String AREACODE = "617";
+
+    private static final boolean LOGV = false;
+
+    private static final boolean REDIRECT_411_TO_GOOG411 = true;
+    private static final boolean SEVEN_DIGIT_DIALING = true;
+    private static final boolean POUND_POUND_SEARCH = true;
+    private static final boolean BLOCK_555 = true;
+
+    public void onReceive(Context context, Intent intent) {
+        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
+            String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
+            if (LOGV) Log.v(TAG, "Received intent " + intent + " (number = " + number + ".");
+            /* Example of how to redirect calls from one number to another. */
+            if (REDIRECT_411_TO_GOOG411 && number.equals("411")) {
+                setResultData("18004664411");
+            }
+
+            /* Example of how to modify the phone number in flight. */
+            if (SEVEN_DIGIT_DIALING && number.length() == 7) {
+                setResultData(AREACODE + number);
+            }
+
+            /* Example of how to route a call to another Application. */
+            if (POUND_POUND_SEARCH && number.startsWith("##")) {
+                Intent newIntent = new Intent(Intent.ACTION_SEARCH);
+                newIntent.putExtra(SearchManager.QUERY, number.substring(2));
+                newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                context.startActivity(newIntent);
+                setResultData(null);
+            }
+
+            /* Example of how to deny calls to a particular number.
+             * Note that no UI is displayed to the user -- the call simply 
+             * does not happen.  It is the application's responaibility to
+             * explain this to the user. */
+            int length = number.length();
+            if (BLOCK_555 && length >= 7) {
+                String exchange = number.substring(length - 7, length - 4);
+                Log.v(TAG, "exchange = " + exchange);
+                if (exchange.equals("555")) {
+                    setResultData(null);
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/phone/Profiler.java b/src/com/android/phone/Profiler.java
new file mode 100644
index 0000000..234073c
--- /dev/null
+++ b/src/com/android/phone/Profiler.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.os.SystemClock;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewParent;
+import android.view.Window;
+
+/**
+ * Profiling utilities for the Phone app.
+ */
+public class Profiler {
+    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
+
+    // Let the compiler optimize all this code out unless we're actively
+    // doing profiling runs.
+    // TODO: Instead of doing all these "if (PROFILE)" checks here, every
+    // place that *calls* any of these methods should check the value of
+    // Profiler.PROFILE first, so the method calls will get optimized out
+    // too.
+    private static final boolean PROFILE = false;
+
+    static long sTimeCallScreenRequested;
+    static long sTimeCallScreenOnCreate;
+    static long sTimeCallScreenCreated;
+
+    // TODO: Clean up any usage of these times.  (There's no "incoming call
+    // panel" in the Phone UI any more; incoming calls just go straight to the
+    // regular in-call UI.)
+    static long sTimeIncomingCallPanelRequested;
+    static long sTimeIncomingCallPanelOnCreate;
+    static long sTimeIncomingCallPanelCreated;
+
+    /** This class is never instantiated. */
+    private Profiler() {
+    }
+
+    static void profileViewCreate(Window win, String tag) {
+        if (false) {
+            ViewParent p = (ViewParent) win.getDecorView();
+            while (p instanceof View) {
+                p = ((View) p).getParent();
+            }
+            //((ViewRoot)p).profile();
+            //((ViewRoot)p).setProfileTag(tag);
+        }
+    }
+
+    static void callScreenRequested() {
+        if (PROFILE) {
+            sTimeCallScreenRequested = SystemClock.uptimeMillis();
+        }
+    }
+
+    static void callScreenOnCreate() {
+        if (PROFILE) {
+            sTimeCallScreenOnCreate = SystemClock.uptimeMillis();
+        }
+    }
+
+    static void callScreenCreated() {
+        if (PROFILE) {
+            sTimeCallScreenCreated = SystemClock.uptimeMillis();
+            dumpCallScreenStat();
+        }
+    }
+
+    private static void dumpCallScreenStat() {
+        if (PROFILE) {
+            log(">>> call screen perf stats <<<");
+            log(">>> request -> onCreate = " +
+                    (sTimeCallScreenOnCreate - sTimeCallScreenRequested));
+            log(">>> onCreate -> created = " +
+                    (sTimeCallScreenCreated - sTimeCallScreenOnCreate));
+        }
+    }
+
+    static void incomingCallPanelRequested() {
+        if (PROFILE) {
+            sTimeIncomingCallPanelRequested = SystemClock.uptimeMillis();
+        }
+    }
+
+    static void incomingCallPanelOnCreate() {
+        if (PROFILE) {
+            sTimeIncomingCallPanelOnCreate = SystemClock.uptimeMillis();
+        }
+    }
+
+    static void incomingCallPanelCreated() {
+        if (PROFILE) {
+            sTimeIncomingCallPanelCreated = SystemClock.uptimeMillis();
+            dumpIncomingCallPanelStat();
+        }
+    }
+
+    private static void dumpIncomingCallPanelStat() {
+        if (PROFILE) {
+            log(">>> incoming call panel perf stats <<<");
+            log(">>> request -> onCreate = " +
+                    (sTimeIncomingCallPanelOnCreate - sTimeIncomingCallPanelRequested));
+            log(">>> onCreate -> created = " +
+                    (sTimeIncomingCallPanelCreated - sTimeIncomingCallPanelOnCreate));
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, "[Profiler] " + msg);
+    }
+}
diff --git a/src/com/android/phone/RespondViaSmsManager.java b/src/com/android/phone/RespondViaSmsManager.java
new file mode 100644
index 0000000..c851471
--- /dev/null
+++ b/src/com/android/phone/RespondViaSmsManager.java
@@ -0,0 +1,874 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.android.phone;
+
+import android.app.ActivityManager;
+import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.preference.EditTextPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.Connection;
+import com.android.internal.telephony.PhoneConstants;
+import com.google.android.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Helper class to manage the "Respond via Message" feature for incoming calls.
+ *
+ * @see InCallScreen.internalRespondViaSms()
+ */
+public class RespondViaSmsManager {
+    private static final String TAG = "RespondViaSmsManager";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+    // Do not check in with VDBG = true, since that may write PII to the system log.
+    private static final boolean VDBG = false;
+
+    private static final String PERMISSION_SEND_RESPOND_VIA_MESSAGE =
+            "android.permission.SEND_RESPOND_VIA_MESSAGE";
+
+    private int mIconSize = -1;
+
+    /**
+     * Reference to the InCallScreen activity that owns us.  This may be
+     * null if we haven't been initialized yet *or* after the InCallScreen
+     * activity has been destroyed.
+     */
+    private InCallScreen mInCallScreen;
+
+    /**
+     * The popup showing the list of canned responses.
+     *
+     * This is an AlertDialog containing a ListView showing the possible
+     * choices.  This may be null if the InCallScreen hasn't ever called
+     * showRespondViaSmsPopup() yet, or if the popup was visible once but
+     * then got dismissed.
+     */
+    private Dialog mCannedResponsePopup;
+
+    /**
+     * The popup dialog allowing the user to chose which app handles respond-via-sms.
+     *
+     * An AlertDialog showing the Resolve-App UI resource from the framework wchih we then fill in
+     * with the appropriate data set. Can be null when not visible.
+     */
+    private Dialog mPackageSelectionPopup;
+
+    /** The array of "canned responses"; see loadCannedResponses(). */
+    private String[] mCannedResponses;
+
+    /** SharedPreferences file name for our persistent settings. */
+    private static final String SHARED_PREFERENCES_NAME = "respond_via_sms_prefs";
+
+    // Preference keys for the 4 "canned responses"; see RespondViaSmsManager$Settings.
+    // Since (for now at least) the number of messages is fixed at 4, and since
+    // SharedPreferences can't deal with arrays anyway, just store the messages
+    // as 4 separate strings.
+    private static final int NUM_CANNED_RESPONSES = 4;
+    private static final String KEY_CANNED_RESPONSE_PREF_1 = "canned_response_pref_1";
+    private static final String KEY_CANNED_RESPONSE_PREF_2 = "canned_response_pref_2";
+    private static final String KEY_CANNED_RESPONSE_PREF_3 = "canned_response_pref_3";
+    private static final String KEY_CANNED_RESPONSE_PREF_4 = "canned_response_pref_4";
+    private static final String KEY_PREFERRED_PACKAGE = "preferred_package_pref";
+    private static final String KEY_INSTANT_TEXT_DEFAULT_COMPONENT = "instant_text_def_component";
+
+    /**
+     * RespondViaSmsManager constructor.
+     */
+    public RespondViaSmsManager() {
+    }
+
+    public void setInCallScreenInstance(InCallScreen inCallScreen) {
+        mInCallScreen = inCallScreen;
+
+        if (mInCallScreen != null) {
+            // Prefetch shared preferences to make the first canned response lookup faster
+            // (and to prevent StrictMode violation)
+            mInCallScreen.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
+        }
+    }
+
+    /**
+     * Brings up the "Respond via SMS" popup for an incoming call.
+     *
+     * @param ringingCall the current incoming call
+     */
+    public void showRespondViaSmsPopup(Call ringingCall) {
+        if (DBG) log("showRespondViaSmsPopup()...");
+
+        // Very quick succession of clicks can cause this to run twice.
+        // Stop here to avoid creating more than one popup.
+        if (isShowingPopup()) {
+            if (DBG) log("Skip showing popup when one is already shown.");
+            return;
+        }
+
+        ListView lv = new ListView(mInCallScreen);
+
+        // Refresh the array of "canned responses".
+        mCannedResponses = loadCannedResponses();
+
+        // Build the list: start with the canned responses, but manually add
+        // the write-your-own option as the last choice.
+        int numPopupItems = mCannedResponses.length + 1;
+        String[] popupItems = Arrays.copyOf(mCannedResponses, numPopupItems);
+        popupItems[numPopupItems - 1] = mInCallScreen.getResources()
+                .getString(R.string.respond_via_sms_custom_message);
+
+        ArrayAdapter<String> adapter =
+                new ArrayAdapter<String>(mInCallScreen,
+                                         android.R.layout.simple_list_item_1,
+                                         android.R.id.text1,
+                                         popupItems);
+        lv.setAdapter(adapter);
+
+        // Create a RespondViaSmsItemClickListener instance to handle item
+        // clicks from the popup.
+        // (Note we create a fresh instance for each incoming call, and
+        // stash away the call's phone number, since we can't necessarily
+        // assume this call will still be ringing when the user finally
+        // chooses a response.)
+
+        Connection c = ringingCall.getLatestConnection();
+        if (VDBG) log("- connection: " + c);
+
+        if (c == null) {
+            // Uh oh -- the "ringingCall" doesn't have any connections any more.
+            // (In other words, it's no longer ringing.)  This is rare, but can
+            // happen if the caller hangs up right at the exact moment the user
+            // selects the "Respond via SMS" option.
+            // There's nothing to do here (since the incoming call is gone),
+            // so just bail out.
+            Log.i(TAG, "showRespondViaSmsPopup: null connection; bailing out...");
+            return;
+        }
+
+        // TODO: at this point we probably should re-check c.getAddress()
+        // and c.getNumberPresentation() for validity.  (i.e. recheck the
+        // same cases in InCallTouchUi.showIncomingCallWidget() where we
+        // should have disallowed the "respond via SMS" feature in the
+        // first place.)
+
+        String phoneNumber = c.getAddress();
+        if (VDBG) log("- phoneNumber: " + phoneNumber);
+        lv.setOnItemClickListener(new RespondViaSmsItemClickListener(phoneNumber));
+
+        AlertDialog.Builder builder = new AlertDialog.Builder(mInCallScreen)
+                .setCancelable(true)
+                .setOnCancelListener(new RespondViaSmsCancelListener())
+                .setView(lv);
+        mCannedResponsePopup = builder.create();
+        mCannedResponsePopup.show();
+    }
+
+    /**
+     * Dismiss currently visible popups.
+     *
+     * This is safe to call even if the popup is already dismissed, and
+     * even if you never called showRespondViaSmsPopup() in the first
+     * place.
+     */
+    public void dismissPopup() {
+        if (mCannedResponsePopup != null) {
+            mCannedResponsePopup.dismiss();  // safe even if already dismissed
+            mCannedResponsePopup = null;
+        }
+        if (mPackageSelectionPopup != null) {
+            mPackageSelectionPopup.dismiss();
+            mPackageSelectionPopup = null;
+        }
+    }
+
+    public boolean isShowingPopup() {
+        return (mCannedResponsePopup != null && mCannedResponsePopup.isShowing())
+                || (mPackageSelectionPopup != null && mPackageSelectionPopup.isShowing());
+    }
+
+    /**
+     * OnItemClickListener for the "Respond via SMS" popup.
+     */
+    public class RespondViaSmsItemClickListener implements AdapterView.OnItemClickListener {
+        // Phone number to send the SMS to.
+        private String mPhoneNumber;
+
+        public RespondViaSmsItemClickListener(String phoneNumber) {
+            mPhoneNumber = phoneNumber;
+        }
+
+        /**
+         * Handles the user selecting an item from the popup.
+         */
+        @Override
+        public void onItemClick(AdapterView<?> parent,  // The ListView
+                                View view,  // The TextView that was clicked
+                                int position,
+                                long id) {
+            if (DBG) log("RespondViaSmsItemClickListener.onItemClick(" + position + ")...");
+            String message = (String) parent.getItemAtPosition(position);
+            if (VDBG) log("- message: '" + message + "'");
+
+            // The "Custom" choice is a special case.
+            // (For now, it's guaranteed to be the last item.)
+            if (position == (parent.getCount() - 1)) {
+                // Take the user to the standard SMS compose UI.
+                launchSmsCompose(mPhoneNumber);
+                onPostMessageSent();
+            } else {
+                sendTextToDefaultActivity(mPhoneNumber, message);
+            }
+        }
+    }
+
+
+    /**
+     * OnCancelListener for the "Respond via SMS" popup.
+     */
+    public class RespondViaSmsCancelListener implements DialogInterface.OnCancelListener {
+        public RespondViaSmsCancelListener() {
+        }
+
+        /**
+         * Handles the user canceling the popup, either by touching
+         * outside the popup or by pressing Back.
+         */
+        @Override
+        public void onCancel(DialogInterface dialog) {
+            if (DBG) log("RespondViaSmsCancelListener.onCancel()...");
+
+            dismissPopup();
+
+            final PhoneConstants.State state = PhoneGlobals.getInstance().mCM.getState();
+            if (state == PhoneConstants.State.IDLE) {
+                // This means the incoming call is already hung up when the user chooses not to
+                // use "Respond via SMS" feature. Let's just exit the whole in-call screen.
+                PhoneGlobals.getInstance().dismissCallScreen();
+            } else {
+
+                // If the user cancels the popup, this presumably means that
+                // they didn't actually mean to bring up the "Respond via SMS"
+                // UI in the first place (and instead want to go back to the
+                // state where they can either answer or reject the call.)
+                // So restart the ringer and bring back the regular incoming
+                // call UI.
+
+                // This will have no effect if the incoming call isn't still ringing.
+                PhoneGlobals.getInstance().notifier.restartRinger();
+
+                // We hid the GlowPadView widget way back in
+                // InCallTouchUi.onTrigger(), when the user first selected
+                // the "SMS" trigger.
+                //
+                // To bring it back, just force the entire InCallScreen to
+                // update itself based on the current telephony state.
+                // (Assuming the incoming call is still ringing, this will
+                // cause the incoming call widget to reappear.)
+                mInCallScreen.requestUpdateScreen();
+            }
+        }
+    }
+
+    private void sendTextToDefaultActivity(String phoneNumber, String message) {
+        if (DBG) log("sendTextToDefaultActivity()...");
+        final PackageManager packageManager = mInCallScreen.getPackageManager();
+
+        // Check to see if the default component to receive this intent is already saved
+        // and check to see if it still has the corrent permissions.
+        final SharedPreferences prefs = mInCallScreen.getSharedPreferences(SHARED_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+        final String flattenedName = prefs.getString(KEY_INSTANT_TEXT_DEFAULT_COMPONENT, null);
+        if (flattenedName != null) {
+            if (DBG) log("Default package was found." + flattenedName);
+
+            final ComponentName componentName = ComponentName.unflattenFromString(flattenedName);
+            ServiceInfo serviceInfo = null;
+            try {
+                serviceInfo = packageManager.getServiceInfo(componentName, 0);
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.w(TAG, "Default service does not have permission.");
+            }
+
+            if (serviceInfo != null &&
+                    PERMISSION_SEND_RESPOND_VIA_MESSAGE.equals(serviceInfo.permission)) {
+                sendTextAndExit(phoneNumber, message, componentName, false);
+                return;
+            } else {
+                SharedPreferences.Editor editor = prefs.edit();
+                editor.remove(KEY_INSTANT_TEXT_DEFAULT_COMPONENT);
+                editor.apply();
+            }
+        }
+
+        final ArrayList<ComponentName> componentsWithPermission =
+            getPackagesWithInstantTextPermission();
+
+        final int size = componentsWithPermission.size();
+        if (size == 0) {
+            Log.e(TAG, "No appropriate package receiving the Intent. Don't send anything");
+            onPostMessageSent();
+        } else if (size == 1) {
+            sendTextAndExit(phoneNumber, message, componentsWithPermission.get(0), false);
+        } else {
+            showPackageSelectionDialog(phoneNumber, message, componentsWithPermission);
+        }
+    }
+
+    /**
+     * Queries the System to determine what packages contain services that can handle the instant
+     * text response Action AND have permissions to do so.
+     */
+    private ArrayList<ComponentName> getPackagesWithInstantTextPermission() {
+        PackageManager packageManager = mInCallScreen.getPackageManager();
+
+        ArrayList<ComponentName> componentsWithPermission = Lists.newArrayList();
+
+        // Get list of all services set up to handle the Instant Text intent.
+        final List<ResolveInfo> infos = packageManager.queryIntentServices(
+                getInstantTextIntent("", null, null), 0);
+
+        // Collect all the valid services
+        for (ResolveInfo resolveInfo : infos) {
+            final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
+            if (serviceInfo == null) {
+                Log.w(TAG, "Ignore package without proper service.");
+                continue;
+            }
+
+            // A Service is valid only if it requires the permission
+            // PERMISSION_SEND_RESPOND_VIA_MESSAGE
+            if (PERMISSION_SEND_RESPOND_VIA_MESSAGE.equals(serviceInfo.permission)) {
+                componentsWithPermission.add(new ComponentName(serviceInfo.packageName,
+                    serviceInfo.name));
+            }
+        }
+
+        return componentsWithPermission;
+    }
+
+    private void showPackageSelectionDialog(String phoneNumber, String message,
+            List<ComponentName> components) {
+        if (DBG) log("showPackageSelectionDialog()...");
+
+        dismissPopup();
+
+        BaseAdapter adapter = new PackageSelectionAdapter(mInCallScreen, components);
+
+        PackageClickListener clickListener =
+                new PackageClickListener(phoneNumber, message, components);
+
+        final CharSequence title = mInCallScreen.getResources().getText(
+                com.android.internal.R.string.whichApplication);
+        LayoutInflater inflater =
+                (LayoutInflater) mInCallScreen.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+        final View view = inflater.inflate(com.android.internal.R.layout.always_use_checkbox, null);
+        final CheckBox alwaysUse = (CheckBox) view.findViewById(
+                com.android.internal.R.id.alwaysUse);
+        alwaysUse.setText(com.android.internal.R.string.alwaysUse);
+        alwaysUse.setOnCheckedChangeListener(clickListener);
+
+        AlertDialog.Builder builder = new AlertDialog.Builder(mInCallScreen)
+                .setTitle(title)
+                .setCancelable(true)
+                .setOnCancelListener(new RespondViaSmsCancelListener())
+                .setAdapter(adapter, clickListener)
+                .setView(view);
+        mPackageSelectionPopup = builder.create();
+        mPackageSelectionPopup.show();
+    }
+
+    private class PackageSelectionAdapter extends BaseAdapter {
+        private final LayoutInflater mInflater;
+        private final List<ComponentName> mComponents;
+
+        public PackageSelectionAdapter(Context context, List<ComponentName> components) {
+            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            mComponents = components;
+        }
+
+        @Override
+        public int getCount() {
+            return mComponents.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mComponents.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(
+                        com.android.internal.R.layout.resolve_list_item, parent, false);
+            }
+
+            final ComponentName component = mComponents.get(position);
+            final String packageName = component.getPackageName();
+            final PackageManager packageManager = mInCallScreen.getPackageManager();
+
+            // Set the application label
+            final TextView text = (TextView) convertView.findViewById(
+                    com.android.internal.R.id.text1);
+            final TextView text2 = (TextView) convertView.findViewById(
+                    com.android.internal.R.id.text2);
+
+            // Reset any previous values
+            text.setText("");
+            text2.setVisibility(View.GONE);
+            try {
+                final ApplicationInfo appInfo = packageManager.getApplicationInfo(packageName, 0);
+                final CharSequence label = packageManager.getApplicationLabel(appInfo);
+                if (label != null) {
+                    text.setText(label);
+                }
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.w(TAG, "Failed to load app label because package was not found.");
+            }
+
+            // Set the application icon
+            final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
+            Drawable drawable = null;
+            try {
+                drawable = mInCallScreen.getPackageManager().getApplicationIcon(packageName);
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.w(TAG, "Failed to load icon because it wasn't found.");
+            }
+            if (drawable == null) {
+                drawable = mInCallScreen.getPackageManager().getDefaultActivityIcon();
+            }
+            icon.setImageDrawable(drawable);
+            ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) icon.getLayoutParams();
+            lp.width = lp.height = getIconSize();
+
+            return convertView;
+        }
+
+    }
+
+    private class PackageClickListener implements DialogInterface.OnClickListener,
+            CompoundButton.OnCheckedChangeListener {
+        /** Phone number to send the SMS to. */
+        final private String mPhoneNumber;
+        final private String mMessage;
+        final private List<ComponentName> mComponents;
+        private boolean mMakeDefault = false;
+
+        public PackageClickListener(String phoneNumber, String message,
+                List<ComponentName> components) {
+            mPhoneNumber = phoneNumber;
+            mMessage = message;
+            mComponents = components;
+        }
+
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            ComponentName component = mComponents.get(which);
+            sendTextAndExit(mPhoneNumber, mMessage, component, mMakeDefault);
+        }
+
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            Log.i(TAG, "mMakeDefault : " + isChecked);
+            mMakeDefault = isChecked;
+        }
+    }
+
+    private void sendTextAndExit(String phoneNumber, String message, ComponentName component,
+            boolean setDefaultComponent) {
+        // Send the selected message immediately with no user interaction.
+        sendText(phoneNumber, message, component);
+
+        if (setDefaultComponent) {
+            final SharedPreferences prefs = mInCallScreen.getSharedPreferences(
+                    SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
+            prefs.edit()
+                    .putString(KEY_INSTANT_TEXT_DEFAULT_COMPONENT, component.flattenToString())
+                    .apply();
+        }
+
+        // ...and show a brief confirmation to the user (since
+        // otherwise it's hard to be sure that anything actually
+        // happened.)
+        final Resources res = mInCallScreen.getResources();
+        final String formatString = res.getString(R.string.respond_via_sms_confirmation_format);
+        final String confirmationMsg = String.format(formatString, phoneNumber);
+        Toast.makeText(mInCallScreen,
+                       confirmationMsg,
+                       Toast.LENGTH_LONG).show();
+
+        // TODO: If the device is locked, this toast won't actually ever
+        // be visible!  (That's because we're about to dismiss the call
+        // screen, which means that the device will return to the
+        // keyguard.  But toasts aren't visible on top of the keyguard.)
+        // Possible fixes:
+        // (1) Is it possible to allow a specific Toast to be visible
+        //     on top of the keyguard?
+        // (2) Artifically delay the dismissCallScreen() call by 3
+        //     seconds to allow the toast to be seen?
+        // (3) Don't use a toast at all; instead use a transient state
+        //     of the InCallScreen (perhaps via the InCallUiState
+        //     progressIndication feature), and have that state be
+        //     visible for 3 seconds before calling dismissCallScreen().
+
+        onPostMessageSent();
+    }
+
+    /**
+     * Sends a text message without any interaction from the user.
+     */
+    private void sendText(String phoneNumber, String message, ComponentName component) {
+        if (VDBG) log("sendText: number "
+                      + phoneNumber + ", message '" + message + "'");
+
+        mInCallScreen.startService(getInstantTextIntent(phoneNumber, message, component));
+    }
+
+    private void onPostMessageSent() {
+        // At this point the user is done dealing with the incoming call, so
+        // there's no reason to keep it around.  (It's also confusing for
+        // the "incoming call" icon in the status bar to still be visible.)
+        // So reject the call now.
+        mInCallScreen.hangupRingingCall();
+
+        dismissPopup();
+
+        final PhoneConstants.State state = PhoneGlobals.getInstance().mCM.getState();
+        if (state == PhoneConstants.State.IDLE) {
+            // There's no other phone call to interact. Exit the entire in-call screen.
+            PhoneGlobals.getInstance().dismissCallScreen();
+        } else {
+            // The user is still in the middle of other phone calls, so we should keep the
+            // in-call screen.
+            mInCallScreen.requestUpdateScreen();
+        }
+    }
+
+    /**
+     * Brings up the standard SMS compose UI.
+     */
+    private void launchSmsCompose(String phoneNumber) {
+        if (VDBG) log("launchSmsCompose: number " + phoneNumber);
+
+        Intent intent = getInstantTextIntent(phoneNumber, null, null);
+
+        if (VDBG) log("- Launching SMS compose UI: " + intent);
+        mInCallScreen.startService(intent);
+    }
+
+    /**
+     * @param phoneNumber Must not be null.
+     * @param message Can be null. If message is null, the returned Intent will be configured to
+     * launch the SMS compose UI. If non-null, the returned Intent will cause the specified message
+     * to be sent with no interaction from the user.
+     * @param component The component that should handle this intent.
+     * @return Service Intent for the instant response.
+     */
+    private static Intent getInstantTextIntent(String phoneNumber, String message,
+            ComponentName component) {
+        final Uri uri = Uri.fromParts(Constants.SCHEME_SMSTO, phoneNumber, null);
+        Intent intent = new Intent(TelephonyManager.ACTION_RESPOND_VIA_MESSAGE, uri);
+        if (message != null) {
+            intent.putExtra(Intent.EXTRA_TEXT, message);
+        } else {
+            intent.putExtra("exit_on_sent", true);
+            intent.putExtra("showUI", true);
+        }
+        if (component != null) {
+            intent.setComponent(component);
+        }
+        return intent;
+    }
+
+    /**
+     * Settings activity under "Call settings" to let you manage the
+     * canned responses; see respond_via_sms_settings.xml
+     */
+    public static class Settings extends PreferenceActivity
+            implements Preference.OnPreferenceChangeListener {
+        @Override
+        protected void onCreate(Bundle icicle) {
+            super.onCreate(icicle);
+            if (DBG) log("Settings: onCreate()...");
+
+            getPreferenceManager().setSharedPreferencesName(SHARED_PREFERENCES_NAME);
+
+            // This preference screen is ultra-simple; it's just 4 plain
+            // <EditTextPreference>s, one for each of the 4 "canned responses".
+            //
+            // The only nontrivial thing we do here is copy the text value of
+            // each of those EditTextPreferences and use it as the preference's
+            // "title" as well, so that the user will immediately see all 4
+            // strings when they arrive here.
+            //
+            // Also, listen for change events (since we'll need to update the
+            // title any time the user edits one of the strings.)
+
+            addPreferencesFromResource(R.xml.respond_via_sms_settings);
+
+            EditTextPreference pref;
+            pref = (EditTextPreference) findPreference(KEY_CANNED_RESPONSE_PREF_1);
+            pref.setTitle(pref.getText());
+            pref.setOnPreferenceChangeListener(this);
+
+            pref = (EditTextPreference) findPreference(KEY_CANNED_RESPONSE_PREF_2);
+            pref.setTitle(pref.getText());
+            pref.setOnPreferenceChangeListener(this);
+
+            pref = (EditTextPreference) findPreference(KEY_CANNED_RESPONSE_PREF_3);
+            pref.setTitle(pref.getText());
+            pref.setOnPreferenceChangeListener(this);
+
+            pref = (EditTextPreference) findPreference(KEY_CANNED_RESPONSE_PREF_4);
+            pref.setTitle(pref.getText());
+            pref.setOnPreferenceChangeListener(this);
+
+            ActionBar actionBar = getActionBar();
+            if (actionBar != null) {
+                // android.R.id.home will be triggered in onOptionsItemSelected()
+                actionBar.setDisplayHomeAsUpEnabled(true);
+            }
+        }
+
+        // Preference.OnPreferenceChangeListener implementation
+        @Override
+        public boolean onPreferenceChange(Preference preference, Object newValue) {
+            if (DBG) log("onPreferenceChange: key = " + preference.getKey());
+            if (VDBG) log("  preference = '" + preference + "'");
+            if (VDBG) log("  newValue = '" + newValue + "'");
+
+            EditTextPreference pref = (EditTextPreference) preference;
+
+            // Copy the new text over to the title, just like in onCreate().
+            // (Watch out: onPreferenceChange() is called *before* the
+            // Preference itself gets updated, so we need to use newValue here
+            // rather than pref.getText().)
+            pref.setTitle((String) newValue);
+
+            return true;  // means it's OK to update the state of the Preference with the new value
+        }
+
+        @Override
+        public boolean onOptionsItemSelected(MenuItem item) {
+            final int itemId = item.getItemId();
+            switch (itemId) {
+                case android.R.id.home:
+                    // See ActionBar#setDisplayHomeAsUpEnabled()
+                    CallFeaturesSetting.goUpToTopLevelSetting(this);
+                    return true;
+                case R.id.respond_via_message_reset:
+                    // Reset the preferences settings
+                    SharedPreferences prefs = getSharedPreferences(
+                            SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
+                    SharedPreferences.Editor editor = prefs.edit();
+                    editor.remove(KEY_INSTANT_TEXT_DEFAULT_COMPONENT);
+                    editor.apply();
+
+                    return true;
+                default:
+            }
+            return super.onOptionsItemSelected(item);
+        }
+
+        @Override
+        public boolean onCreateOptionsMenu(Menu menu) {
+            getMenuInflater().inflate(R.menu.respond_via_message_settings_menu, menu);
+            return super.onCreateOptionsMenu(menu);
+        }
+    }
+
+    /**
+     * Read the (customizable) canned responses from SharedPreferences,
+     * or from defaults if the user has never actually brought up
+     * the Settings UI.
+     *
+     * This method does disk I/O (reading the SharedPreferences file)
+     * so don't call it from the main thread.
+     *
+     * @see RespondViaSmsManager.Settings
+     */
+    private String[] loadCannedResponses() {
+        if (DBG) log("loadCannedResponses()...");
+
+        SharedPreferences prefs = mInCallScreen.getSharedPreferences(SHARED_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+        final Resources res = mInCallScreen.getResources();
+
+        String[] responses = new String[NUM_CANNED_RESPONSES];
+
+        // Note the default values here must agree with the corresponding
+        // android:defaultValue attributes in respond_via_sms_settings.xml.
+
+        responses[0] = prefs.getString(KEY_CANNED_RESPONSE_PREF_1,
+                                       res.getString(R.string.respond_via_sms_canned_response_1));
+        responses[1] = prefs.getString(KEY_CANNED_RESPONSE_PREF_2,
+                                       res.getString(R.string.respond_via_sms_canned_response_2));
+        responses[2] = prefs.getString(KEY_CANNED_RESPONSE_PREF_3,
+                                       res.getString(R.string.respond_via_sms_canned_response_3));
+        responses[3] = prefs.getString(KEY_CANNED_RESPONSE_PREF_4,
+                                       res.getString(R.string.respond_via_sms_canned_response_4));
+        return responses;
+    }
+
+    /**
+     * @return true if the "Respond via SMS" feature should be enabled
+     * for the specified incoming call.
+     *
+     * The general rule is that we *do* allow "Respond via SMS" except for
+     * the few (relatively rare) cases where we know for sure it won't
+     * work, namely:
+     *   - a bogus or blank incoming number
+     *   - a call from a SIP address
+     *   - a "call presentation" that doesn't allow the number to be revealed
+     *
+     * In all other cases, we allow the user to respond via SMS.
+     *
+     * Note that this behavior isn't perfect; for example we have no way
+     * to detect whether the incoming call is from a landline (with most
+     * networks at least), so we still enable this feature even though
+     * SMSes to that number will silently fail.
+     */
+    public static boolean allowRespondViaSmsForCall(Context context, Call ringingCall) {
+        if (DBG) log("allowRespondViaSmsForCall(" + ringingCall + ")...");
+
+        // First some basic sanity checks:
+        if (ringingCall == null) {
+            Log.w(TAG, "allowRespondViaSmsForCall: null ringingCall!");
+            return false;
+        }
+        if (!ringingCall.isRinging()) {
+            // The call is in some state other than INCOMING or WAITING!
+            // (This should almost never happen, but it *could*
+            // conceivably happen if the ringing call got disconnected by
+            // the network just *after* we got it from the CallManager.)
+            Log.w(TAG, "allowRespondViaSmsForCall: ringingCall not ringing! state = "
+                  + ringingCall.getState());
+            return false;
+        }
+        Connection conn = ringingCall.getLatestConnection();
+        if (conn == null) {
+            // The call doesn't have any connections!  (Again, this can
+            // happen if the ringing call disconnects at the exact right
+            // moment, but should almost never happen in practice.)
+            Log.w(TAG, "allowRespondViaSmsForCall: null Connection!");
+            return false;
+        }
+
+        // Check the incoming number:
+        final String number = conn.getAddress();
+        if (DBG) log("- number: '" + number + "'");
+        if (TextUtils.isEmpty(number)) {
+            Log.w(TAG, "allowRespondViaSmsForCall: no incoming number!");
+            return false;
+        }
+        if (PhoneNumberUtils.isUriNumber(number)) {
+            // The incoming number is actually a URI (i.e. a SIP address),
+            // not a regular PSTN phone number, and we can't send SMSes to
+            // SIP addresses.
+            // (TODO: That might still be possible eventually, though.  Is
+            // there some SIP-specific equivalent to sending a text message?)
+            Log.i(TAG, "allowRespondViaSmsForCall: incoming 'number' is a SIP address.");
+            return false;
+        }
+
+        // Finally, check the "call presentation":
+        int presentation = conn.getNumberPresentation();
+        if (DBG) log("- presentation: " + presentation);
+        if (presentation == PhoneConstants.PRESENTATION_RESTRICTED) {
+            // PRESENTATION_RESTRICTED means "caller-id blocked".
+            // The user isn't allowed to see the number in the first
+            // place, so obviously we can't let you send an SMS to it.
+            Log.i(TAG, "allowRespondViaSmsForCall: PRESENTATION_RESTRICTED.");
+            return false;
+        }
+
+        // Allow the feature only when there's a destination for it.
+        if (context.getPackageManager().resolveService(getInstantTextIntent(number, null, null) , 0)
+                == null) {
+            return false;
+        }
+
+        // TODO: with some carriers (in certain countries) you *can* actually
+        // tell whether a given number is a mobile phone or not.  So in that
+        // case we could potentially return false here if the incoming call is
+        // from a land line.
+
+        // If none of the above special cases apply, it's OK to enable the
+        // "Respond via SMS" feature.
+        return true;
+    }
+
+    private int getIconSize() {
+      if (mIconSize < 0) {
+          final ActivityManager am =
+              (ActivityManager) mInCallScreen.getSystemService(Context.ACTIVITY_SERVICE);
+          mIconSize = am.getLauncherLargeIconSize();
+      }
+
+      return mIconSize;
+    }
+
+
+    private static void log(String msg) {
+        Log.d(TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/Ringer.java b/src/com/android/phone/Ringer.java
new file mode 100644
index 0000000..a882490
--- /dev/null
+++ b/src/com/android/phone/Ringer.java
@@ -0,0 +1,354 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.IPowerManager;
+import android.os.Looper;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.SystemVibrator;
+import android.os.Vibrator;
+import android.provider.Settings;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+/**
+ * Ringer manager for the Phone app.
+ */
+public class Ringer {
+    private static final String LOG_TAG = "Ringer";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    private static final int PLAY_RING_ONCE = 1;
+    private static final int STOP_RING = 3;
+
+    private static final int VIBRATE_LENGTH = 1000; // ms
+    private static final int PAUSE_LENGTH = 1000; // ms
+
+    /** The singleton instance. */
+    private static Ringer sInstance;
+
+    // Uri for the ringtone.
+    Uri mCustomRingtoneUri = Settings.System.DEFAULT_RINGTONE_URI;
+
+    Ringtone mRingtone;
+    Vibrator mVibrator;
+    IPowerManager mPowerManager;
+    volatile boolean mContinueVibrating;
+    VibratorThread mVibratorThread;
+    Context mContext;
+    private Worker mRingThread;
+    private Handler mRingHandler;
+    private long mFirstRingEventTime = -1;
+    private long mFirstRingStartTime = -1;
+
+    /**
+     * Initialize the singleton Ringer instance.
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     */
+    /* package */ static Ringer init(Context context) {
+        synchronized (Ringer.class) {
+            if (sInstance == null) {
+                sInstance = new Ringer(context);
+            } else {
+                Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /** Private constructor; @see init() */
+    private Ringer(Context context) {
+        mContext = context;
+        mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE));
+        // We don't rely on getSystemService(Context.VIBRATOR_SERVICE) to make sure this
+        // vibrator object will be isolated from others.
+        mVibrator = new SystemVibrator(context);
+    }
+
+    /**
+     * After a radio technology change, e.g. from CDMA to GSM or vice versa,
+     * the Context of the Ringer has to be updated. This is done by that function.
+     *
+     * @parameter Phone, the new active phone for the appropriate radio
+     * technology
+     */
+    void updateRingerContextAfterRadioTechnologyChange(Phone phone) {
+        if(DBG) Log.d(LOG_TAG, "updateRingerContextAfterRadioTechnologyChange...");
+        mContext = phone.getContext();
+    }
+
+    /**
+     * @return true if we're playing a ringtone and/or vibrating
+     *     to indicate that there's an incoming call.
+     *     ("Ringing" here is used in the general sense.  If you literally
+     *     need to know if we're playing a ringtone or vibrating, use
+     *     isRingtonePlaying() or isVibrating() instead.)
+     *
+     * @see isVibrating
+     * @see isRingtonePlaying
+     */
+    boolean isRinging() {
+        synchronized (this) {
+            return (isRingtonePlaying() || isVibrating());
+        }
+    }
+
+    /**
+     * @return true if the ringtone is playing
+     * @see isVibrating
+     * @see isRinging
+     */
+    private boolean isRingtonePlaying() {
+        synchronized (this) {
+            return (mRingtone != null && mRingtone.isPlaying()) ||
+                    (mRingHandler != null && mRingHandler.hasMessages(PLAY_RING_ONCE));
+        }
+    }
+
+    /**
+     * @return true if we're vibrating in response to an incoming call
+     * @see isVibrating
+     * @see isRinging
+     */
+    private boolean isVibrating() {
+        synchronized (this) {
+            return (mVibratorThread != null);
+        }
+    }
+
+    /**
+     * Starts the ringtone and/or vibrator
+     */
+    void ring() {
+        if (DBG) log("ring()...");
+
+        synchronized (this) {
+            try {
+                if (PhoneGlobals.getInstance().showBluetoothIndication()) {
+                    mPowerManager.setAttentionLight(true, 0x000000ff);
+                } else {
+                    mPowerManager.setAttentionLight(true, 0x00ffffff);
+                }
+            } catch (RemoteException ex) {
+                // the other end of this binder call is in the system process.
+            }
+
+            if (shouldVibrate() && mVibratorThread == null) {
+                mContinueVibrating = true;
+                mVibratorThread = new VibratorThread();
+                if (DBG) log("- starting vibrator...");
+                mVibratorThread.start();
+            }
+            AudioManager audioManager =
+                    (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+
+            if (audioManager.getStreamVolume(AudioManager.STREAM_RING) == 0) {
+                if (DBG) log("skipping ring because volume is zero");
+                return;
+            }
+
+            makeLooper();
+            if (mFirstRingEventTime < 0) {
+                mFirstRingEventTime = SystemClock.elapsedRealtime();
+                mRingHandler.sendEmptyMessage(PLAY_RING_ONCE);
+            } else {
+                // For repeat rings, figure out by how much to delay
+                // the ring so that it happens the correct amount of
+                // time after the previous ring
+                if (mFirstRingStartTime > 0) {
+                    // Delay subsequent rings by the delta between event
+                    // and play time of the first ring
+                    if (DBG) {
+                        log("delaying ring by " + (mFirstRingStartTime - mFirstRingEventTime));
+                    }
+                    mRingHandler.sendEmptyMessageDelayed(PLAY_RING_ONCE,
+                            mFirstRingStartTime - mFirstRingEventTime);
+                } else {
+                    // We've gotten two ring events so far, but the ring
+                    // still hasn't started. Reset the event time to the
+                    // time of this event to maintain correct spacing.
+                    mFirstRingEventTime = SystemClock.elapsedRealtime();
+                }
+            }
+        }
+    }
+
+    boolean shouldVibrate() {
+        AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        int ringerMode = audioManager.getRingerMode();
+        if (CallFeaturesSetting.getVibrateWhenRinging(mContext)) {
+            return ringerMode != AudioManager.RINGER_MODE_SILENT;
+        } else {
+            return ringerMode == AudioManager.RINGER_MODE_VIBRATE;
+        }
+    }
+
+    /**
+     * Stops the ringtone and/or vibrator if any of these are actually
+     * ringing/vibrating.
+     */
+    void stopRing() {
+        synchronized (this) {
+            if (DBG) log("stopRing()...");
+
+            try {
+                mPowerManager.setAttentionLight(false, 0x00000000);
+            } catch (RemoteException ex) {
+                // the other end of this binder call is in the system process.
+            }
+
+            if (mRingHandler != null) {
+                mRingHandler.removeCallbacksAndMessages(null);
+                Message msg = mRingHandler.obtainMessage(STOP_RING);
+                msg.obj = mRingtone;
+                mRingHandler.sendMessage(msg);
+                PhoneUtils.setAudioMode();
+                mRingThread = null;
+                mRingHandler = null;
+                mRingtone = null;
+                mFirstRingEventTime = -1;
+                mFirstRingStartTime = -1;
+            } else {
+                if (DBG) log("- stopRing: null mRingHandler!");
+            }
+
+            if (mVibratorThread != null) {
+                if (DBG) log("- stopRing: cleaning up vibrator thread...");
+                mContinueVibrating = false;
+                mVibratorThread = null;
+            }
+            // Also immediately cancel any vibration in progress.
+            mVibrator.cancel();
+        }
+    }
+
+    private class VibratorThread extends Thread {
+        public void run() {
+            while (mContinueVibrating) {
+                mVibrator.vibrate(VIBRATE_LENGTH);
+                SystemClock.sleep(VIBRATE_LENGTH + PAUSE_LENGTH);
+            }
+        }
+    }
+    private class Worker implements Runnable {
+        private final Object mLock = new Object();
+        private Looper mLooper;
+
+        Worker(String name) {
+            Thread t = new Thread(null, this, name);
+            t.start();
+            synchronized (mLock) {
+                while (mLooper == null) {
+                    try {
+                        mLock.wait();
+                    } catch (InterruptedException ex) {
+                    }
+                }
+            }
+        }
+
+        public Looper getLooper() {
+            return mLooper;
+        }
+
+        public void run() {
+            synchronized (mLock) {
+                Looper.prepare();
+                mLooper = Looper.myLooper();
+                mLock.notifyAll();
+            }
+            Looper.loop();
+        }
+
+        public void quit() {
+            mLooper.quit();
+        }
+    }
+
+    /**
+     * Sets the ringtone uri in preparation for ringtone creation
+     * in makeLooper().  This uri is defaulted to the phone-wide
+     * default ringtone.
+     */
+    void setCustomRingtoneUri (Uri uri) {
+        if (uri != null) {
+            mCustomRingtoneUri = uri;
+        }
+    }
+
+    private void makeLooper() {
+        if (mRingThread == null) {
+            mRingThread = new Worker("ringer");
+            mRingHandler = new Handler(mRingThread.getLooper()) {
+                @Override
+                public void handleMessage(Message msg) {
+                    Ringtone r = null;
+                    switch (msg.what) {
+                        case PLAY_RING_ONCE:
+                            if (DBG) log("mRingHandler: PLAY_RING_ONCE...");
+                            if (mRingtone == null && !hasMessages(STOP_RING)) {
+                                // create the ringtone with the uri
+                                if (DBG) log("creating ringtone: " + mCustomRingtoneUri);
+                                r = RingtoneManager.getRingtone(mContext, mCustomRingtoneUri);
+                                synchronized (Ringer.this) {
+                                    if (!hasMessages(STOP_RING)) {
+                                        mRingtone = r;
+                                    }
+                                }
+                            }
+                            r = mRingtone;
+                            if (r != null && !hasMessages(STOP_RING) && !r.isPlaying()) {
+                                PhoneUtils.setAudioMode();
+                                r.play();
+                                synchronized (Ringer.this) {
+                                    if (mFirstRingStartTime < 0) {
+                                        mFirstRingStartTime = SystemClock.elapsedRealtime();
+                                    }
+                                }
+                            }
+                            break;
+                        case STOP_RING:
+                            if (DBG) log("mRingHandler: STOP_RING...");
+                            r = (Ringtone) msg.obj;
+                            if (r != null) {
+                                r.stop();
+                            } else {
+                                if (DBG) log("- STOP_RING with null ringtone!  msg = " + msg);
+                            }
+                            getLooper().quit();
+                            break;
+                    }
+                }
+            };
+        }
+    }
+
+    private static void log(String msg) {
+        Log.d(LOG_TAG, msg);
+    }
+}
diff --git a/src/com/android/phone/SimContacts.java b/src/com/android/phone/SimContacts.java
new file mode 100644
index 0000000..ebfc775
--- /dev/null
+++ b/src/com/android/phone/SimContacts.java
@@ -0,0 +1,367 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.accounts.Account;
+import android.app.ActionBar;
+import android.app.ProgressDialog;
+import android.content.ContentProviderOperation;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
+import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.ContextMenu;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.CursorAdapter;
+import android.widget.ListView;
+import android.widget.SimpleCursorAdapter;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+/**
+ * SIM Address Book UI for the Phone app.
+ */
+public class SimContacts extends ADNList {
+    private static final String LOG_TAG = "SimContacts";
+
+    private static final String UP_ACTIVITY_PACKAGE = "com.android.contacts";
+    private static final String UP_ACTIVITY_CLASS =
+            "com.android.contacts.activities.PeopleActivity";
+
+    static final ContentValues sEmptyContentValues = new ContentValues();
+
+    private static final int MENU_IMPORT_ONE = 1;
+    private static final int MENU_IMPORT_ALL = 2;
+    private ProgressDialog mProgressDialog;
+
+    private Account mAccount;
+
+    private static class NamePhoneTypePair {
+        final String name;
+        final int phoneType;
+        public NamePhoneTypePair(String nameWithPhoneType) {
+            // Look for /W /H /M or /O at the end of the name signifying the type
+            int nameLen = nameWithPhoneType.length();
+            if (nameLen - 2 >= 0 && nameWithPhoneType.charAt(nameLen - 2) == '/') {
+                char c = Character.toUpperCase(nameWithPhoneType.charAt(nameLen - 1));
+                if (c == 'W') {
+                    phoneType = Phone.TYPE_WORK;
+                } else if (c == 'M' || c == 'O') {
+                    phoneType = Phone.TYPE_MOBILE;
+                } else if (c == 'H') {
+                    phoneType = Phone.TYPE_HOME;
+                } else {
+                    phoneType = Phone.TYPE_OTHER;
+                }
+                name = nameWithPhoneType.substring(0, nameLen - 2);
+            } else {
+                phoneType = Phone.TYPE_OTHER;
+                name = nameWithPhoneType;
+            }
+        }
+    }
+
+    private class ImportAllSimContactsThread extends Thread
+            implements OnCancelListener, OnClickListener {
+
+        boolean mCanceled = false;
+
+        public ImportAllSimContactsThread() {
+            super("ImportAllSimContactsThread");
+        }
+
+        @Override
+        public void run() {
+            final ContentValues emptyContentValues = new ContentValues();
+            final ContentResolver resolver = getContentResolver();
+
+            mCursor.moveToPosition(-1);
+            while (!mCanceled && mCursor.moveToNext()) {
+                actuallyImportOneSimContact(mCursor, resolver, mAccount);
+                mProgressDialog.incrementProgressBy(1);
+            }
+
+            mProgressDialog.dismiss();
+            finish();
+        }
+
+        public void onCancel(DialogInterface dialog) {
+            mCanceled = true;
+        }
+
+        public void onClick(DialogInterface dialog, int which) {
+            if (which == DialogInterface.BUTTON_NEGATIVE) {
+                mCanceled = true;
+                mProgressDialog.dismiss();
+            } else {
+                Log.e(LOG_TAG, "Unknown button event has come: " + dialog.toString());
+            }
+        }
+    }
+
+    private static void actuallyImportOneSimContact(
+            final Cursor cursor, final ContentResolver resolver, Account account) {
+        final NamePhoneTypePair namePhoneTypePair =
+            new NamePhoneTypePair(cursor.getString(NAME_COLUMN));
+        final String name = namePhoneTypePair.name;
+        final int phoneType = namePhoneTypePair.phoneType;
+        final String phoneNumber = cursor.getString(NUMBER_COLUMN);
+        final String emailAddresses = cursor.getString(EMAILS_COLUMN);
+        final String[] emailAddressArray;
+        if (!TextUtils.isEmpty(emailAddresses)) {
+            emailAddressArray = emailAddresses.split(",");
+        } else {
+            emailAddressArray = null;
+        }
+
+        final ArrayList<ContentProviderOperation> operationList =
+            new ArrayList<ContentProviderOperation>();
+        ContentProviderOperation.Builder builder =
+            ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
+        String myGroupsId = null;
+        if (account != null) {
+            builder.withValue(RawContacts.ACCOUNT_NAME, account.name);
+            builder.withValue(RawContacts.ACCOUNT_TYPE, account.type);
+        } else {
+            builder.withValues(sEmptyContentValues);
+        }
+        operationList.add(builder.build());
+
+        builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
+        builder.withValueBackReference(StructuredName.RAW_CONTACT_ID, 0);
+        builder.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+        builder.withValue(StructuredName.DISPLAY_NAME, name);
+        operationList.add(builder.build());
+
+        builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
+        builder.withValueBackReference(Phone.RAW_CONTACT_ID, 0);
+        builder.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        builder.withValue(Phone.TYPE, phoneType);
+        builder.withValue(Phone.NUMBER, phoneNumber);
+        builder.withValue(Data.IS_PRIMARY, 1);
+        operationList.add(builder.build());
+
+        if (emailAddresses != null) {
+            for (String emailAddress : emailAddressArray) {
+                builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
+                builder.withValueBackReference(Email.RAW_CONTACT_ID, 0);
+                builder.withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+                builder.withValue(Email.TYPE, Email.TYPE_MOBILE);
+                builder.withValue(Email.DATA, emailAddress);
+                operationList.add(builder.build());
+            }
+        }
+
+        if (myGroupsId != null) {
+            builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
+            builder.withValueBackReference(GroupMembership.RAW_CONTACT_ID, 0);
+            builder.withValue(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
+            builder.withValue(GroupMembership.GROUP_SOURCE_ID, myGroupsId);
+            operationList.add(builder.build());
+        }
+
+        try {
+            resolver.applyBatch(ContactsContract.AUTHORITY, operationList);
+        } catch (RemoteException e) {
+            Log.e(LOG_TAG, String.format("%s: %s", e.toString(), e.getMessage()));
+        } catch (OperationApplicationException e) {
+            Log.e(LOG_TAG, String.format("%s: %s", e.toString(), e.getMessage()));
+        }
+    }
+
+    private void importOneSimContact(int position) {
+        final ContentResolver resolver = getContentResolver();
+        if (mCursor.moveToPosition(position)) {
+            actuallyImportOneSimContact(mCursor, resolver, mAccount);
+        } else {
+            Log.e(LOG_TAG, "Failed to move the cursor to the position \"" + position + "\"");
+        }
+    }
+
+    /* Followings are overridden methods */
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        Intent intent = getIntent();
+        if (intent != null) {
+            final String accountName = intent.getStringExtra("account_name");
+            final String accountType = intent.getStringExtra("account_type");
+            if (!TextUtils.isEmpty(accountName) && !TextUtils.isEmpty(accountType)) {
+                mAccount = new Account(accountName, accountType);
+            }
+        }
+
+        registerForContextMenu(getListView());
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    protected CursorAdapter newAdapter() {
+        return new SimpleCursorAdapter(this, R.layout.sim_import_list_entry, mCursor,
+                new String[] { "name" }, new int[] { android.R.id.text1 });
+    }
+
+    @Override
+    protected Uri resolveIntent() {
+        Intent intent = getIntent();
+        intent.setData(Uri.parse("content://icc/adn"));
+        if (Intent.ACTION_PICK.equals(intent.getAction())) {
+            // "index" is 1-based
+            mInitialSelection = intent.getIntExtra("index", 0) - 1;
+        }
+        return intent.getData();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        menu.add(0, MENU_IMPORT_ALL, 0, R.string.importAllSimEntries);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        MenuItem item = menu.findItem(MENU_IMPORT_ALL);
+        if (item != null) {
+            item.setVisible(mCursor != null && mCursor.getCount() > 0);
+        }
+        return super.onPrepareOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                Intent intent = new Intent();
+                intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
+                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                startActivity(intent);
+                finish();
+                return true;
+            case MENU_IMPORT_ALL:
+                CharSequence title = getString(R.string.importAllSimEntries);
+                CharSequence message = getString(R.string.importingSimContacts);
+
+                ImportAllSimContactsThread thread = new ImportAllSimContactsThread();
+
+                // TODO: need to show some error dialog.
+                if (mCursor == null) {
+                    Log.e(LOG_TAG, "cursor is null. Ignore silently.");
+                    break;
+                }
+                mProgressDialog = new ProgressDialog(this);
+                mProgressDialog.setTitle(title);
+                mProgressDialog.setMessage(message);
+                mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+                mProgressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
+                        getString(R.string.cancel), thread);
+                mProgressDialog.setProgress(0);
+                mProgressDialog.setMax(mCursor.getCount());
+                mProgressDialog.show();
+
+                thread.start();
+
+                return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onContextItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case MENU_IMPORT_ONE:
+                ContextMenu.ContextMenuInfo menuInfo = item.getMenuInfo();
+                if (menuInfo instanceof AdapterView.AdapterContextMenuInfo) {
+                    int position = ((AdapterView.AdapterContextMenuInfo)menuInfo).position;
+                    importOneSimContact(position);
+                    return true;
+                }
+        }
+        return super.onContextItemSelected(item);
+    }
+
+    @Override
+    public void onCreateContextMenu(ContextMenu menu, View v,
+            ContextMenu.ContextMenuInfo menuInfo) {
+        if (menuInfo instanceof AdapterView.AdapterContextMenuInfo) {
+            AdapterView.AdapterContextMenuInfo itemInfo =
+                    (AdapterView.AdapterContextMenuInfo) menuInfo;
+            TextView textView = (TextView) itemInfo.targetView.findViewById(android.R.id.text1);
+            if (textView != null) {
+                menu.setHeaderTitle(textView.getText());
+            }
+            menu.add(0, MENU_IMPORT_ONE, 0, R.string.importSimEntry);
+        }
+    }
+
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        importOneSimContact(position);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_CALL: {
+                if (mCursor != null && mCursor.moveToPosition(getSelectedItemPosition())) {
+                    String phoneNumber = mCursor.getString(NUMBER_COLUMN);
+                    if (phoneNumber == null || !TextUtils.isGraphic(phoneNumber)) {
+                        // There is no number entered.
+                        //TODO play error sound or something...
+                        return true;
+                    }
+                    Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                            Uri.fromParts(Constants.SCHEME_TEL, phoneNumber, null));
+                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                                          | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+                    startActivity(intent);
+                    finish();
+                    return true;
+                }
+            }
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+}
diff --git a/src/com/android/phone/SipBroadcastReceiver.java b/src/com/android/phone/SipBroadcastReceiver.java
new file mode 100644
index 0000000..8fdc7f7
--- /dev/null
+++ b/src/com/android/phone/SipBroadcastReceiver.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.sip.SipPhone;
+import com.android.phone.sip.SipProfileDb;
+import com.android.phone.sip.SipSharedPreferences;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.sip.SipAudioCall;
+import android.net.sip.SipException;
+import android.net.sip.SipManager;
+import android.net.sip.SipProfile;
+import android.telephony.Rlog;
+import java.util.List;
+
+/**
+ * Broadcast receiver that handles SIP-related intents.
+ */
+public class SipBroadcastReceiver extends BroadcastReceiver {
+    private static final String TAG = SipBroadcastReceiver.class.getSimpleName();
+    private static final boolean DBG = true;
+    private SipSharedPreferences mSipSharedPreferences;
+
+    @Override
+    public void onReceive(Context context, final Intent intent) {
+        String action = intent.getAction();
+
+        if (!PhoneUtils.isVoipSupported()) {
+            if (DBG) log("SIP VOIP not supported: " + action);
+            return;
+        }
+        mSipSharedPreferences = new SipSharedPreferences(context);
+
+        if (action.equals(SipManager.ACTION_SIP_INCOMING_CALL)) {
+            takeCall(intent);
+        } else if (action.equals(SipManager.ACTION_SIP_ADD_PHONE)) {
+            String localSipUri = intent.getStringExtra(SipManager.EXTRA_LOCAL_URI);
+            SipPhone phone = PhoneFactory.makeSipPhone(localSipUri);
+            if (phone != null) {
+                CallManager.getInstance().registerPhone(phone);
+            }
+            if (DBG) log("onReceive: add phone" + localSipUri + " #phones="
+                    + CallManager.getInstance().getAllPhones().size());
+        } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PHONE)) {
+            String localSipUri = intent.getStringExtra(SipManager.EXTRA_LOCAL_URI);
+            removeSipPhone(localSipUri);
+            if (DBG) log("onReceive: remove phone: " + localSipUri + " #phones="
+                    + CallManager.getInstance().getAllPhones().size());
+        } else if (action.equals(SipManager.ACTION_SIP_SERVICE_UP)) {
+            if (DBG) log("onReceive: start auto registration");
+            registerAllProfiles();
+        } else {
+            if (DBG) log("onReceive: action not processed: " + action);
+            return;
+        }
+    }
+
+    private void removeSipPhone(String sipUri) {
+        for (Phone phone : CallManager.getInstance().getAllPhones()) {
+            if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_SIP) {
+                if (((SipPhone) phone).getSipUri().equals(sipUri)) {
+                    CallManager.getInstance().unregisterPhone(phone);
+                    return;
+                }
+            }
+        }
+        if (DBG) log("RemoveSipPhone: failed:cannot find phone with uri " + sipUri);
+    }
+
+    private void takeCall(Intent intent) {
+        Context phoneContext = PhoneGlobals.getInstance();
+        try {
+            SipAudioCall sipAudioCall = SipManager.newInstance(phoneContext)
+                    .takeAudioCall(intent, null);
+            for (Phone phone : CallManager.getInstance().getAllPhones()) {
+                if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_SIP) {
+                   if (((SipPhone) phone).canTake(sipAudioCall)) {
+                       if (DBG) log("takeCall: SIP call: " + intent);
+                       return;
+                   }
+                }
+            }
+            if (DBG) log("takeCall: not taken, drop SIP call: " + intent);
+        } catch (SipException e) {
+            loge("takeCall: error incoming SIP call", e);
+        }
+    }
+
+    private void registerAllProfiles() {
+        final Context context = PhoneGlobals.getInstance();
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                SipManager sipManager = SipManager.newInstance(context);
+                SipProfileDb profileDb = new SipProfileDb(context);
+                List<SipProfile> sipProfileList =
+                        profileDb.retrieveSipProfileList();
+                for (SipProfile profile : sipProfileList) {
+                    try {
+                        if (!profile.getAutoRegistration() &&
+                                !profile.getUriString().equals(
+                                mSipSharedPreferences.getPrimaryAccount())) {
+                            continue;
+                        }
+                        sipManager.open(profile,
+                                SipUtil.createIncomingCallPendingIntent(),
+                                null);
+                        if (DBG) log("registerAllProfiles: profile=" + profile);
+                    } catch (SipException e) {
+                        loge("registerAllProfiles: failed" + profile.getProfileName(), e);
+                    }
+                }
+            }}
+        ).start();
+    }
+
+    private void log(String s) {
+        Rlog.d(TAG, s);
+    }
+
+    private void loge(String s, Throwable t) {
+        Rlog.e(TAG, s, t);
+    }
+}
diff --git a/src/com/android/phone/SipCallOptionHandler.java b/src/com/android/phone/SipCallOptionHandler.java
new file mode 100644
index 0000000..500f322
--- /dev/null
+++ b/src/com/android/phone/SipCallOptionHandler.java
@@ -0,0 +1,448 @@
+/**
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.phone.sip.SipProfileDb;
+import com.android.phone.sip.SipSettings;
+import com.android.phone.sip.SipSharedPreferences;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.Uri;
+import android.net.sip.SipException;
+import android.net.sip.SipManager;
+import android.net.sip.SipProfile;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.TextView;
+
+import java.util.List;
+
+/**
+ * Activity that selects the proper phone type for an outgoing call.
+ *
+ * This activity determines which Phone type (SIP or PSTN) should be used
+ * for an outgoing phone call, depending on the outgoing "number" (which
+ * may be either a PSTN number or a SIP address) as well as the user's SIP
+ * preferences.  In some cases this activity has no interaction with the
+ * user, but in other cases it may (by bringing up a dialog if the user's
+ * preference is "Ask for each call".)
+ */
+public class SipCallOptionHandler extends Activity implements
+        DialogInterface.OnClickListener, DialogInterface.OnCancelListener,
+        CompoundButton.OnCheckedChangeListener {
+    static final String TAG = "SipCallOptionHandler";
+    private static final boolean DBG =
+            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
+
+    static final int DIALOG_SELECT_PHONE_TYPE = 0;
+    static final int DIALOG_SELECT_OUTGOING_SIP_PHONE = 1;
+    static final int DIALOG_START_SIP_SETTINGS = 2;
+    static final int DIALOG_NO_INTERNET_ERROR = 3;
+    static final int DIALOG_NO_VOIP = 4;
+    static final int DIALOG_SIZE = 5;
+
+    private Intent mIntent;
+    private List<SipProfile> mProfileList;
+    private String mCallOption;
+    private String mNumber;
+    private SipSharedPreferences mSipSharedPreferences;
+    private SipProfileDb mSipProfileDb;
+    private Dialog[] mDialogs = new Dialog[DIALOG_SIZE];
+    private SipProfile mOutgoingSipProfile;
+    private TextView mUnsetPriamryHint;
+    private boolean mUseSipPhone = false;
+    private boolean mMakePrimary = false;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Intent intent = getIntent();
+        String action = intent.getAction();
+
+        // This activity is only ever launched with the
+        // ACTION_SIP_SELECT_PHONE action.
+        if (!OutgoingCallBroadcaster.ACTION_SIP_SELECT_PHONE.equals(action)) {
+            Log.wtf(TAG, "onCreate: got intent action '" + action + "', expected "
+                    + OutgoingCallBroadcaster.ACTION_SIP_SELECT_PHONE);
+            finish();
+            return;
+        }
+
+        // mIntent is a copy of the original CALL intent that started the
+        // whole outgoing-call sequence.  This intent will ultimately be
+        // passed to CallController.placeCall() after displaying the SIP
+        // call options dialog (if necessary).
+        mIntent = (Intent) intent.getParcelableExtra(OutgoingCallBroadcaster.EXTRA_NEW_CALL_INTENT);
+        if (mIntent == null) {
+            finish();
+            return;
+        }
+
+        // Allow this activity to be visible in front of the keyguard.
+        // (This is only necessary for obscure scenarios like the user
+        // initiating a call and then immediately pressing the Power
+        // button.)
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+
+        // If we're trying to make a SIP call, return a SipPhone if one is
+        // available.
+        //
+        // - If it's a sip: URI, this is definitely a SIP call, regardless
+        //   of whether the data is a SIP address or a regular phone
+        //   number.
+        //
+        // - If this is a tel: URI but the data contains an "@" character
+        //   (see PhoneNumberUtils.isUriNumber()) we consider that to be a
+        //   SIP number too.
+        //
+        // TODO: Eventually we may want to disallow that latter case
+        //       (e.g. "tel:foo@example.com").
+        //
+        // TODO: We should also consider moving this logic into the
+        //       CallManager, where it could be made more generic.
+        //       (For example, each "telephony provider" could be allowed
+        //       to register the URI scheme(s) that it can handle, and the
+        //       CallManager would then find the best match for every
+        //       outgoing call.)
+
+        boolean voipSupported = PhoneUtils.isVoipSupported();
+        if (DBG) Log.v(TAG, "voipSupported: " + voipSupported);
+        mSipProfileDb = new SipProfileDb(this);
+        mSipSharedPreferences = new SipSharedPreferences(this);
+        mCallOption = mSipSharedPreferences.getSipCallOption();
+        if (DBG) Log.v(TAG, "Call option: " + mCallOption);
+        Uri uri = mIntent.getData();
+        String scheme = uri.getScheme();
+        mNumber = PhoneNumberUtils.getNumberFromIntent(mIntent, this);
+        boolean isInCellNetwork = PhoneGlobals.getInstance().phoneMgr.isRadioOn();
+        boolean isKnownCallScheme = Constants.SCHEME_TEL.equals(scheme)
+                || Constants.SCHEME_SIP.equals(scheme);
+        boolean isRegularCall = Constants.SCHEME_TEL.equals(scheme)
+                && !PhoneNumberUtils.isUriNumber(mNumber);
+
+        // Bypass the handler if the call scheme is not sip or tel.
+        if (!isKnownCallScheme) {
+            setResultAndFinish();
+            return;
+        }
+
+        // Check if VoIP feature is supported.
+        if (!voipSupported) {
+            if (!isRegularCall) {
+                showDialog(DIALOG_NO_VOIP);
+            } else {
+                setResultAndFinish();
+            }
+            return;
+        }
+
+        // Since we are not sure if anyone has touched the number during
+        // the NEW_OUTGOING_CALL broadcast, we just check if the provider
+        // put their gateway information in the intent. If so, it means
+        // someone has changed the destination number. We then make the
+        // call via the default pstn network. However, if one just alters
+        // the destination directly, then we still let it go through the
+        // Internet call option process.
+        if (!PhoneUtils.hasPhoneProviderExtras(mIntent)) {
+            if (!isNetworkConnected()) {
+                if (!isRegularCall) {
+                    showDialog(DIALOG_NO_INTERNET_ERROR);
+                    return;
+                }
+            } else {
+                if (mCallOption.equals(Settings.System.SIP_ASK_ME_EACH_TIME)
+                        && isRegularCall && isInCellNetwork) {
+                    showDialog(DIALOG_SELECT_PHONE_TYPE);
+                    return;
+                }
+                if (!mCallOption.equals(Settings.System.SIP_ADDRESS_ONLY)
+                        || !isRegularCall) {
+                    mUseSipPhone = true;
+                }
+            }
+        }
+
+        if (mUseSipPhone) {
+            // If there is no sip profile and it is a regular call, then we
+            // should use pstn network instead.
+            if ((mSipProfileDb.getProfilesCount() > 0) || !isRegularCall) {
+                startGetPrimarySipPhoneThread();
+                return;
+            } else {
+                mUseSipPhone = false;
+            }
+        }
+        setResultAndFinish();
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if (isFinishing()) return;
+        for (Dialog dialog : mDialogs) {
+            if (dialog != null) dialog.dismiss();
+        }
+        finish();
+    }
+
+    protected Dialog onCreateDialog(int id) {
+        Dialog dialog;
+        switch(id) {
+        case DIALOG_SELECT_PHONE_TYPE:
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(R.string.pick_outgoing_call_phone_type)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setSingleChoiceItems(R.array.phone_type_values, -1, this)
+                    .setNegativeButton(android.R.string.cancel, this)
+                    .setOnCancelListener(this)
+                    .create();
+            break;
+        case DIALOG_SELECT_OUTGOING_SIP_PHONE:
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(R.string.pick_outgoing_sip_phone)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setSingleChoiceItems(getProfileNameArray(), -1, this)
+                    .setNegativeButton(android.R.string.cancel, this)
+                    .setOnCancelListener(this)
+                    .create();
+            addMakeDefaultCheckBox(dialog);
+            break;
+        case DIALOG_START_SIP_SETTINGS:
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(R.string.no_sip_account_found_title)
+                    .setMessage(R.string.no_sip_account_found)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setPositiveButton(R.string.sip_menu_add, this)
+                    .setNegativeButton(android.R.string.cancel, this)
+                    .setOnCancelListener(this)
+                    .create();
+            break;
+        case DIALOG_NO_INTERNET_ERROR:
+            boolean wifiOnly = SipManager.isSipWifiOnly(this);
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(wifiOnly ? R.string.no_wifi_available_title
+                                       : R.string.no_internet_available_title)
+                    .setMessage(wifiOnly ? R.string.no_wifi_available
+                                         : R.string.no_internet_available)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setPositiveButton(android.R.string.ok, this)
+                    .setOnCancelListener(this)
+                    .create();
+            break;
+        case DIALOG_NO_VOIP:
+            dialog = new AlertDialog.Builder(this)
+                    .setTitle(R.string.no_voip)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setPositiveButton(android.R.string.ok, this)
+                    .setOnCancelListener(this)
+                    .create();
+            break;
+        default:
+            dialog = null;
+        }
+        if (dialog != null) {
+            mDialogs[id] = dialog;
+        }
+        return dialog;
+    }
+
+    private void addMakeDefaultCheckBox(Dialog dialog) {
+        LayoutInflater inflater = (LayoutInflater) getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflater.inflate(
+                com.android.internal.R.layout.always_use_checkbox, null);
+        CheckBox makePrimaryCheckBox =
+                (CheckBox)view.findViewById(com.android.internal.R.id.alwaysUse);
+        makePrimaryCheckBox.setText(R.string.remember_my_choice);
+        makePrimaryCheckBox.setOnCheckedChangeListener(this);
+        mUnsetPriamryHint = (TextView)view.findViewById(
+                com.android.internal.R.id.clearDefaultHint);
+        mUnsetPriamryHint.setText(R.string.reset_my_choice_hint);
+        mUnsetPriamryHint.setVisibility(View.GONE);
+        ((AlertDialog)dialog).setView(view);
+    }
+
+    private CharSequence[] getProfileNameArray() {
+        CharSequence[] entries = new CharSequence[mProfileList.size()];
+        int i = 0;
+        for (SipProfile p : mProfileList) {
+            entries[i++] = p.getProfileName();
+        }
+        return entries;
+    }
+
+    public void onClick(DialogInterface dialog, int id) {
+        if (id == DialogInterface.BUTTON_NEGATIVE) {
+            // button negative is cancel
+            finish();
+            return;
+        } else if(dialog == mDialogs[DIALOG_SELECT_PHONE_TYPE]) {
+            String selection = getResources().getStringArray(
+                    R.array.phone_type_values)[id];
+            if (DBG) Log.v(TAG, "User pick phone " + selection);
+            if (selection.equals(getString(R.string.internet_phone))) {
+                mUseSipPhone = true;
+                startGetPrimarySipPhoneThread();
+                return;
+            }
+        } else if (dialog == mDialogs[DIALOG_SELECT_OUTGOING_SIP_PHONE]) {
+            mOutgoingSipProfile = mProfileList.get(id);
+        } else if ((dialog == mDialogs[DIALOG_NO_INTERNET_ERROR])
+                || (dialog == mDialogs[DIALOG_NO_VOIP])) {
+            finish();
+            return;
+        } else {
+            if (id == DialogInterface.BUTTON_POSITIVE) {
+                // Redirect to sip settings and drop the call.
+                Intent newIntent = new Intent(this, SipSettings.class);
+                newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                startActivity(newIntent);
+            }
+            finish();
+            return;
+        }
+        setResultAndFinish();
+    }
+
+    public void onCancel(DialogInterface dialog) {
+        finish();
+    }
+
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        mMakePrimary = isChecked;
+        if (isChecked) {
+            mUnsetPriamryHint.setVisibility(View.VISIBLE);
+        } else {
+            mUnsetPriamryHint.setVisibility(View.INVISIBLE);
+        }
+    }
+
+    private void createSipPhoneIfNeeded(SipProfile p) {
+        CallManager cm = PhoneGlobals.getInstance().mCM;
+        if (PhoneUtils.getSipPhoneFromUri(cm, p.getUriString()) != null) return;
+
+        // Create the phone since we can not find it in CallManager
+        try {
+            SipManager.newInstance(this).open(p);
+            Phone phone = PhoneFactory.makeSipPhone(p.getUriString());
+            if (phone != null) {
+                cm.registerPhone(phone);
+            } else {
+                Log.e(TAG, "cannot make sipphone profile" + p);
+            }
+        } catch (SipException e) {
+            Log.e(TAG, "cannot open sip profile" + p, e);
+        }
+    }
+
+    private void setResultAndFinish() {
+        runOnUiThread(new Runnable() {
+            public void run() {
+                if (mOutgoingSipProfile != null) {
+                    if (!isNetworkConnected()) {
+                        showDialog(DIALOG_NO_INTERNET_ERROR);
+                        return;
+                    }
+                    if (DBG) Log.v(TAG, "primary SIP URI is " +
+                            mOutgoingSipProfile.getUriString());
+                    createSipPhoneIfNeeded(mOutgoingSipProfile);
+                    mIntent.putExtra(OutgoingCallBroadcaster.EXTRA_SIP_PHONE_URI,
+                            mOutgoingSipProfile.getUriString());
+                    if (mMakePrimary) {
+                        mSipSharedPreferences.setPrimaryAccount(
+                                mOutgoingSipProfile.getUriString());
+                    }
+                }
+
+                if (mUseSipPhone && mOutgoingSipProfile == null) {
+                    showDialog(DIALOG_START_SIP_SETTINGS);
+                    return;
+                } else {
+                    // Woo hoo -- it's finally OK to initiate the outgoing call!
+                    PhoneGlobals.getInstance().callController.placeCall(mIntent);
+                }
+                finish();
+            }
+        });
+    }
+
+    private boolean isNetworkConnected() {
+        ConnectivityManager cm = (ConnectivityManager) getSystemService(
+                Context.CONNECTIVITY_SERVICE);
+        if (cm != null) {
+            NetworkInfo ni = cm.getActiveNetworkInfo();
+            if ((ni == null) || !ni.isConnected()) return false;
+
+            return ((ni.getType() == ConnectivityManager.TYPE_WIFI)
+                    || !SipManager.isSipWifiOnly(this));
+        }
+        return false;
+    }
+
+    private void startGetPrimarySipPhoneThread() {
+        new Thread(new Runnable() {
+            public void run() {
+                getPrimarySipPhone();
+            }
+        }).start();
+    }
+
+    private void getPrimarySipPhone() {
+        String primarySipUri = mSipSharedPreferences.getPrimaryAccount();
+
+        mOutgoingSipProfile = getPrimaryFromExistingProfiles(primarySipUri);
+        if (mOutgoingSipProfile == null) {
+            if ((mProfileList != null) && (mProfileList.size() > 0)) {
+                runOnUiThread(new Runnable() {
+                    public void run() {
+                        showDialog(DIALOG_SELECT_OUTGOING_SIP_PHONE);
+                    }
+                });
+                return;
+            }
+        }
+        setResultAndFinish();
+    }
+
+    private SipProfile getPrimaryFromExistingProfiles(String primarySipUri) {
+        mProfileList = mSipProfileDb.retrieveSipProfileList();
+        if (mProfileList == null) return null;
+        for (SipProfile p : mProfileList) {
+            if (p.getUriString().equals(primarySipUri)) return p;
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/phone/SipUtil.java b/src/com/android/phone/SipUtil.java
new file mode 100644
index 0000000..a901d58
--- /dev/null
+++ b/src/com/android/phone/SipUtil.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.net.sip.SipManager;
+
+public class SipUtil {
+    private SipUtil() {
+    }
+
+    public static PendingIntent createIncomingCallPendingIntent() {
+        Context phoneContext = PhoneGlobals.getInstance();
+        Intent intent = new Intent(phoneContext, SipBroadcastReceiver.class);
+        intent.setAction(SipManager.ACTION_SIP_INCOMING_CALL);
+        return PendingIntent.getBroadcast(phoneContext, 0, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+}
diff --git a/src/com/android/phone/SmallerHitTargetTouchListener.java b/src/com/android/phone/SmallerHitTargetTouchListener.java
new file mode 100644
index 0000000..8e1bf16
--- /dev/null
+++ b/src/com/android/phone/SmallerHitTargetTouchListener.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+
+/**
+ * OnTouchListener used to shrink the "hit target" of some onscreen buttons.
+ *
+ * We do this for a few specific buttons which are vulnerable to
+ * "false touches" because either (1) they're near the edge of the
+ * screen and might be unintentionally touched while holding the
+ * device in your hand, (2) they're in the upper corners and might
+ * be touched by the user's ear before the prox sensor has a chance to
+ * kick in, or (3) they are close to other buttons.
+ */
+public class SmallerHitTargetTouchListener implements View.OnTouchListener {
+    private static final String TAG = "SmallerHitTargetTouchListener";
+
+    /**
+     * Edge dimensions where a touch does not register an action (in DIP).
+     */
+    private static final int HIT_TARGET_EDGE_IGNORE_DP_X = 30;
+    private static final int HIT_TARGET_EDGE_IGNORE_DP_Y = 10;
+    private static final int HIT_TARGET_MIN_SIZE_DP_X = HIT_TARGET_EDGE_IGNORE_DP_X * 3;
+    private static final int HIT_TARGET_MIN_SIZE_DP_Y = HIT_TARGET_EDGE_IGNORE_DP_Y * 3;
+
+    // True if the most recent DOWN event was a "hit".
+    boolean mDownEventHit;
+
+    /**
+     * Called when a touch event is dispatched to a view. This allows listeners to
+     * get a chance to respond before the target view.
+     *
+     * @return True if the listener has consumed the event, false otherwise.
+     *         (In other words, we return true when the touch is *outside*
+     *         the "smaller hit target", which will prevent the actual
+     *         button from handling these events.)
+     */
+    @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        // if (DBG) log("SmallerHitTargetTouchListener: " + v + ", event " + event);
+
+        if (event.getAction() == MotionEvent.ACTION_DOWN) {
+            // Note that event.getX() and event.getY() are already
+            // translated into the View's coordinates.  (In other words,
+            // "0,0" is a touch on the upper-left-most corner of the view.)
+            final int touchX = (int) event.getX();
+            final int touchY = (int) event.getY();
+
+            final int viewWidth = v.getWidth();
+            final int viewHeight = v.getHeight();
+
+            final float pixelDensity = v.getResources().getDisplayMetrics().density;
+            final int targetMinSizeX = (int) (HIT_TARGET_MIN_SIZE_DP_X * pixelDensity);
+            final int targetMinSizeY = (int) (HIT_TARGET_MIN_SIZE_DP_Y * pixelDensity);
+
+            int edgeIgnoreX = (int) (HIT_TARGET_EDGE_IGNORE_DP_X * pixelDensity);
+            int edgeIgnoreY = (int) (HIT_TARGET_EDGE_IGNORE_DP_Y * pixelDensity);
+
+            // If we are dealing with smaller buttons where the dead zone defined by
+            // HIT_TARGET_EDGE_IGNORE_DP_[X|Y] is too large.
+            if (viewWidth < targetMinSizeX || viewHeight < targetMinSizeY) {
+                // This really should not happen given our two use cases (as of this writing)
+                // in the call edge button and secondary calling card. However, we leave
+                // this is as a precautionary measure.
+                Log.w(TAG, "onTouch: view is too small for SmallerHitTargetTouchListener");
+                edgeIgnoreX = 0;
+                edgeIgnoreY = 0;
+            }
+
+            final int minTouchX = edgeIgnoreX;
+            final int maxTouchX = viewWidth - edgeIgnoreX;
+            final int minTouchY = edgeIgnoreY;
+            final int maxTouchY = viewHeight - edgeIgnoreY;
+
+            if (touchX < minTouchX || touchX > maxTouchX ||
+                    touchY < minTouchY || touchY > maxTouchY) {
+                // Missed!
+                // if (DBG) log("  -> MISSED!");
+                mDownEventHit = false;
+                return true;  // Consume this event; don't let the button see it
+            } else {
+                // Hit!
+                // if (DBG) log("  -> HIT!");
+                mDownEventHit = true;
+                return false;  // Let this event through to the actual button
+            }
+        } else {
+            // This is a MOVE, UP or CANCEL event.
+            //
+            // We only do the "smaller hit target" check on DOWN events.
+            // For the subsequent MOVE/UP/CANCEL events, we let them
+            // through to the actual button IFF the previous DOWN event
+            // got through to the actual button (i.e. it was a "hit".)
+            return !mDownEventHit;
+        }
+    }
+}
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
new file mode 100644
index 0000000..9b5373c
--- /dev/null
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -0,0 +1,263 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+package com.android.phone;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ActivityNotFoundException;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.Phone;
+import android.telephony.PhoneNumberUtils;
+import android.util.Log;
+import android.view.WindowManager;
+
+import com.android.internal.telephony.TelephonyCapabilities;
+
+/**
+ * Helper class to listen for some magic dialpad character sequences
+ * that are handled specially by the Phone app.
+ *
+ * Note the Contacts app also handles these sequences too, so there's a
+ * separate version of this class under apps/Contacts.
+ *
+ * In fact, the most common use case for these special sequences is typing
+ * them from the regular "Dialer" used for outgoing calls, which is part
+ * of the contacts app; see DialtactsActivity and DialpadFragment.
+ * *This* version of SpecialCharSequenceMgr is used for only a few
+ * relatively obscure places in the UI:
+ * - The "SIM network unlock" PIN entry screen (see
+ *   IccNetworkDepersonalizationPanel.java)
+ * - The emergency dialer (see EmergencyDialer.java).
+ *
+ * TODO: there's lots of duplicated code between this class and the
+ * corresponding class under apps/Contacts.  Let's figure out a way to
+ * unify these two classes (in the framework? in a common shared library?)
+ */
+public class SpecialCharSequenceMgr {
+    private static final String TAG = PhoneGlobals.LOG_TAG;
+    private static final boolean DBG = false;
+
+    private static final String MMI_IMEI_DISPLAY = "*#06#";
+    private static final String MMI_REGULATORY_INFO_DISPLAY = "*#07#";
+
+    /** This class is never instantiated. */
+    private SpecialCharSequenceMgr() {
+    }
+
+    /**
+     * Check for special strings of digits from an input
+     * string.
+     * @param context input Context for the events we handle.
+     * @param input the dial string to be examined.
+     */
+    static boolean handleChars(Context context, String input) {
+        return handleChars(context, input, null);
+    }
+
+    /**
+     * Generally used for the Personal Unblocking Key (PUK) unlocking
+     * case, where we want to be able to maintain a handle to the
+     * calling activity so that we can close it or otherwise display
+     * indication if the PUK code is recognized.
+     *
+     * NOTE: The counterpart to this file in Contacts does
+     * NOT contain the special PUK handling code, since it
+     * does NOT need it.  When the device gets into PUK-
+     * locked state, the keyguard comes up and the only way
+     * to unlock the device is through the Emergency dialer,
+     * which is still in the Phone App.
+     *
+     * @param context input Context for the events we handle.
+     * @param input the dial string to be examined.
+     * @param pukInputActivity activity that originated this
+     * PUK call, tracked so that we can close it or otherwise
+     * indicate that special character sequence is
+     * successfully processed. Can be null.
+     * @return true if the input was a special string which has been
+     * handled.
+     */
+    static boolean handleChars(Context context,
+                               String input,
+                               Activity pukInputActivity) {
+
+        //get rid of the separators so that the string gets parsed correctly
+        String dialString = PhoneNumberUtils.stripSeparators(input);
+
+        if (handleIMEIDisplay(context, dialString)
+            || handleRegulatoryInfoDisplay(context, dialString)
+            || handlePinEntry(context, dialString, pukInputActivity)
+            || handleAdnEntry(context, dialString)
+            || handleSecretCode(context, dialString)) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Variant of handleChars() that looks for the subset of "special
+     * sequences" that are available even if the device is locked.
+     *
+     * (Specifically, these are the sequences that you're allowed to type
+     * in the Emergency Dialer, which is accessible *without* unlocking
+     * the device.)
+     */
+    static boolean handleCharsForLockedDevice(Context context,
+                                              String input,
+                                              Activity pukInputActivity) {
+        // Get rid of the separators so that the string gets parsed correctly
+        String dialString = PhoneNumberUtils.stripSeparators(input);
+
+        // The only sequences available on a locked device are the "**04"
+        // or "**05" sequences that allow you to enter PIN or PUK-related
+        // codes.  (e.g. for the case where you're currently locked out of
+        // your phone, and need to change the PIN!  The only way to do
+        // that is via the Emergency Dialer.)
+
+        if (handlePinEntry(context, dialString, pukInputActivity)) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#*.
+     * If a secret code is encountered an Intent is started with the android_secret_code://<code>
+     * URI.
+     *
+     * @param context the context to use
+     * @param input the text to check for a secret code in
+     * @return true if a secret code was encountered
+     */
+    static private boolean handleSecretCode(Context context, String input) {
+        // Secret codes are in the form *#*#<code>#*#*
+        int len = input.length();
+        if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
+            Intent intent = new Intent(TelephonyIntents.SECRET_CODE_ACTION,
+                    Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
+            context.sendBroadcast(intent);
+            return true;
+        }
+
+        return false;
+    }
+
+    static private boolean handleAdnEntry(Context context, String input) {
+        /* ADN entries are of the form "N(N)(N)#" */
+
+        // if the phone is keyguard-restricted, then just ignore this
+        // input.  We want to make sure that sim card contacts are NOT
+        // exposed unless the phone is unlocked, and this code can be
+        // accessed from the emergency dialer.
+        if (PhoneGlobals.getInstance().getKeyguardManager().inKeyguardRestrictedInputMode()) {
+            return false;
+        }
+
+        int len = input.length();
+        if ((len > 1) && (len < 5) && (input.endsWith("#"))) {
+            try {
+                int index = Integer.parseInt(input.substring(0, len-1));
+                Intent intent = new Intent(Intent.ACTION_PICK);
+
+                intent.setClassName("com.android.phone",
+                                    "com.android.phone.SimContacts");
+                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                intent.putExtra("index", index);
+                PhoneGlobals.getInstance().startActivity(intent);
+
+                return true;
+            } catch (NumberFormatException ex) {}
+        }
+        return false;
+    }
+
+    static private boolean handlePinEntry(Context context, String input,
+                                          Activity pukInputActivity) {
+        // TODO: The string constants here should be removed in favor
+        // of some call to a static the MmiCode class that determines
+        // if a dialstring is an MMI code.
+        if ((input.startsWith("**04") || input.startsWith("**05"))
+                && input.endsWith("#")) {
+            PhoneGlobals app = PhoneGlobals.getInstance();
+            boolean isMMIHandled = app.phone.handlePinMmi(input);
+
+            // if the PUK code is recognized then indicate to the
+            // phone app that an attempt to unPUK the device was
+            // made with this activity.  The PUK code may still
+            // fail though, but we won't know until the MMI code
+            // returns a result.
+            if (isMMIHandled && input.startsWith("**05")) {
+                app.setPukEntryActivity(pukInputActivity);
+            }
+            return isMMIHandled;
+        }
+        return false;
+    }
+
+    static private boolean handleIMEIDisplay(Context context,
+                                             String input) {
+        if (input.equals(MMI_IMEI_DISPLAY)) {
+            showDeviceIdPanel(context);
+            return true;
+        }
+
+        return false;
+    }
+
+    static private void showDeviceIdPanel(Context context) {
+        if (DBG) log("showDeviceIdPanel()...");
+
+        Phone phone = PhoneGlobals.getPhone();
+        int labelId = TelephonyCapabilities.getDeviceIdLabel(phone);
+        String deviceId = phone.getDeviceId();
+
+        AlertDialog alert = new AlertDialog.Builder(context)
+                .setTitle(labelId)
+                .setMessage(deviceId)
+                .setPositiveButton(R.string.ok, null)
+                .setCancelable(false)
+                .create();
+        alert.getWindow().setType(WindowManager.LayoutParams.TYPE_PRIORITY_PHONE);
+        alert.show();
+    }
+
+    private static boolean handleRegulatoryInfoDisplay(Context context, String input) {
+        if (input.equals(MMI_REGULATORY_INFO_DISPLAY)) {
+            log("handleRegulatoryInfoDisplay() sending intent to settings app");
+            ComponentName regInfoDisplayActivity = new ComponentName(
+                    "com.android.settings", "com.android.settings.RegulatoryInfoDisplayActivity");
+            Intent showRegInfoIntent = new Intent("android.settings.SHOW_REGULATORY_INFO");
+            showRegInfoIntent.setComponent(regInfoDisplayActivity);
+            try {
+                context.startActivity(showRegInfoIntent);
+            } catch (ActivityNotFoundException e) {
+                Log.e(TAG, "startActivity() failed: " + e);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    private static void log(String msg) {
+        Log.d(TAG, "[SpecialCharSequenceMgr] " + msg);
+    }
+}
diff --git a/src/com/android/phone/TelephonyDebugService.java b/src/com/android/phone/TelephonyDebugService.java
new file mode 100644
index 0000000..fdfe8f5
--- /dev/null
+++ b/src/com/android/phone/TelephonyDebugService.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.DebugService;
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+import android.util.Log;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * A debug service for telephony.
+ */
+public class TelephonyDebugService extends Service {
+    private static String TAG = "TelephonyDebugService";
+    private DebugService mDebugService = new DebugService();
+
+    /** Constructor */
+    public TelephonyDebugService() {
+        Log.d(TAG, "TelephonyDebugService()");
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+
+    @Override
+    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        mDebugService.dump(fd, pw, args);
+    }
+}
+
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
new file mode 100644
index 0000000..19c4dda
--- /dev/null
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -0,0 +1,211 @@
+package com.android.phone;
+
+import com.android.internal.telephony.CommandException;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.DialogInterface;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.util.Log;
+import android.view.WindowManager;
+
+import java.util.ArrayList;
+
+interface  TimeConsumingPreferenceListener {
+    public void onStarted(Preference preference, boolean reading);
+    public void onFinished(Preference preference, boolean reading);
+    public void onError(Preference preference, int error);
+    public void onException(Preference preference, CommandException exception);
+}
+
+public class TimeConsumingPreferenceActivity extends PreferenceActivity
+                        implements TimeConsumingPreferenceListener,
+                        DialogInterface.OnCancelListener {
+    private static final String LOG_TAG = "TimeConsumingPreferenceActivity";
+    private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+    private class DismissOnClickListener implements DialogInterface.OnClickListener {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            dialog.dismiss();
+        }
+    }
+    private class DismissAndFinishOnClickListener implements DialogInterface.OnClickListener {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            dialog.dismiss();
+            finish();
+        }
+    }
+    private final DialogInterface.OnClickListener mDismiss = new DismissOnClickListener();
+    private final DialogInterface.OnClickListener mDismissAndFinish
+            = new DismissAndFinishOnClickListener();
+
+    private static final int BUSY_READING_DIALOG = 100;
+    private static final int BUSY_SAVING_DIALOG = 200;
+
+    static final int EXCEPTION_ERROR = 300;
+    static final int RESPONSE_ERROR = 400;
+    static final int RADIO_OFF_ERROR = 500;
+    static final int FDN_CHECK_FAILURE = 600;
+
+    private final ArrayList<String> mBusyList = new ArrayList<String>();
+
+    protected boolean mIsForeground = false;
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        if (id == BUSY_READING_DIALOG || id == BUSY_SAVING_DIALOG) {
+            ProgressDialog dialog = new ProgressDialog(this);
+            dialog.setTitle(getText(R.string.updating_title));
+            dialog.setIndeterminate(true);
+
+            switch(id) {
+                case BUSY_READING_DIALOG:
+                    dialog.setCancelable(true);
+                    dialog.setOnCancelListener(this);
+                    dialog.setMessage(getText(R.string.reading_settings));
+                    return dialog;
+                case BUSY_SAVING_DIALOG:
+                    dialog.setCancelable(false);
+                    dialog.setMessage(getText(R.string.updating_settings));
+                    return dialog;
+            }
+            return null;
+        }
+
+        if (id == RESPONSE_ERROR || id == RADIO_OFF_ERROR || id == EXCEPTION_ERROR
+                || id == FDN_CHECK_FAILURE) {
+            AlertDialog.Builder builder = new AlertDialog.Builder(this);
+
+            int msgId;
+            int titleId = R.string.error_updating_title;
+
+            switch (id) {
+                case RESPONSE_ERROR:
+                    msgId = R.string.response_error;
+                    builder.setPositiveButton(R.string.close_dialog, mDismiss);
+                    break;
+                case RADIO_OFF_ERROR:
+                    msgId = R.string.radio_off_error;
+                    // The error is not recoverable on dialog exit.
+                    builder.setPositiveButton(R.string.close_dialog, mDismissAndFinish);
+                    break;
+                case FDN_CHECK_FAILURE:
+                    msgId = R.string.fdn_check_failure;
+                    builder.setPositiveButton(R.string.close_dialog, mDismiss);
+                    break;
+                case EXCEPTION_ERROR:
+                default:
+                    msgId = R.string.exception_error;
+                    // The error is not recoverable on dialog exit.
+                    builder.setPositiveButton(R.string.close_dialog, mDismissAndFinish);
+                    break;
+            }
+
+            builder.setTitle(getText(titleId));
+            builder.setMessage(getText(msgId));
+            builder.setCancelable(false);
+            AlertDialog dialog = builder.create();
+
+            // make the dialog more obvious by blurring the background.
+            dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+
+            return dialog;
+        }
+        return null;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mIsForeground = true;
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mIsForeground = false;
+    }
+
+    @Override
+    public void onStarted(Preference preference, boolean reading) {
+        if (DBG) dumpState();
+        if (DBG) Log.d(LOG_TAG, "onStarted, preference=" + preference.getKey()
+                + ", reading=" + reading);
+        mBusyList.add(preference.getKey());
+
+        if (mIsForeground) {
+              if (reading) {
+                  showDialog(BUSY_READING_DIALOG);
+              } else {
+                  showDialog(BUSY_SAVING_DIALOG);
+              }
+        }
+
+    }
+
+    @Override
+    public void onFinished(Preference preference, boolean reading) {
+        if (DBG) dumpState();
+        if (DBG) Log.d(LOG_TAG, "onFinished, preference=" + preference.getKey()
+                + ", reading=" + reading);
+        mBusyList.remove(preference.getKey());
+
+        if (mBusyList.isEmpty()) {
+            if (reading) {
+                dismissDialogSafely(BUSY_READING_DIALOG);
+            } else {
+                dismissDialogSafely(BUSY_SAVING_DIALOG);
+            }
+        }
+        preference.setEnabled(true);
+    }
+
+    @Override
+    public void onError(Preference preference, int error) {
+        if (DBG) dumpState();
+        if (DBG) Log.d(LOG_TAG, "onError, preference=" + preference.getKey() + ", error=" + error);
+
+        if (mIsForeground) {
+            showDialog(error);
+        }
+        preference.setEnabled(false);
+    }
+
+    @Override
+    public void onException(Preference preference, CommandException exception) {
+        if (exception.getCommandError() == CommandException.Error.FDN_CHECK_FAILURE) {
+            onError(preference, FDN_CHECK_FAILURE);
+        } else {
+            preference.setEnabled(false);
+            onError(preference, EXCEPTION_ERROR);
+        }
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        if (DBG) dumpState();
+        finish();
+    }
+
+    private void dismissDialogSafely(int id) {
+        try {
+            dismissDialog(id);
+        } catch (IllegalArgumentException e) {
+            // This is expected in the case where we were in the background
+            // at the time we would normally have shown the dialog, so we didn't
+            // show it.
+        }
+    }
+
+    /* package */ void dumpState() {
+        Log.d(LOG_TAG, "dumpState begin");
+        for (String key : mBusyList) {
+            Log.d(LOG_TAG, "mBusyList: key=" + key);
+        }
+        Log.d(LOG_TAG, "dumpState end");
+    }
+}
diff --git a/src/com/android/phone/Use2GOnlyCheckBoxPreference.java b/src/com/android/phone/Use2GOnlyCheckBoxPreference.java
new file mode 100644
index 0000000..a5a7a67
--- /dev/null
+++ b/src/com/android/phone/Use2GOnlyCheckBoxPreference.java
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.preference.CheckBoxPreference;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+
+public class Use2GOnlyCheckBoxPreference extends CheckBoxPreference {
+    private static final String LOG_TAG = "Use2GOnlyCheckBoxPreference";
+
+    private Phone mPhone;
+    private MyHandler mHandler;
+
+    public Use2GOnlyCheckBoxPreference(Context context) {
+        this(context, null);
+    }
+
+    public Use2GOnlyCheckBoxPreference(Context context, AttributeSet attrs) {
+        this(context, attrs,com.android.internal.R.attr.checkBoxPreferenceStyle);
+    }
+
+    public Use2GOnlyCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        mPhone = PhoneGlobals.getPhone();
+        mHandler = new MyHandler();
+        mPhone.getPreferredNetworkType(
+                mHandler.obtainMessage(MyHandler.MESSAGE_GET_PREFERRED_NETWORK_TYPE));
+    }
+
+    private int getDefaultNetworkMode() {
+        int mode = SystemProperties.getInt("ro.telephony.default_network",
+                Phone.PREFERRED_NT_MODE);
+        Log.i(LOG_TAG, "getDefaultNetworkMode: mode=" + mode);
+        return mode;
+    }
+
+    @Override
+    protected void  onClick() {
+        super.onClick();
+
+        int networkType = isChecked() ? Phone.NT_MODE_GSM_ONLY : getDefaultNetworkMode();
+        Log.i(LOG_TAG, "set preferred network type="+networkType);
+        android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                android.provider.Settings.Global.PREFERRED_NETWORK_MODE, networkType);
+        mPhone.setPreferredNetworkType(networkType, mHandler
+                .obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+   }
+
+    private class MyHandler extends Handler {
+
+        static final int MESSAGE_GET_PREFERRED_NETWORK_TYPE = 0;
+        static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 1;
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_GET_PREFERRED_NETWORK_TYPE:
+                    handleGetPreferredNetworkTypeResponse(msg);
+                    break;
+
+                case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
+                    handleSetPreferredNetworkTypeResponse(msg);
+                    break;
+            }
+        }
+
+        private void handleGetPreferredNetworkTypeResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception == null) {
+                int type = ((int[])ar.result)[0];
+                if (type != Phone.NT_MODE_GSM_ONLY) {
+                    // Back to default
+                    type = getDefaultNetworkMode();
+                }
+                Log.i(LOG_TAG, "get preferred network type="+type);
+                setChecked(type == Phone.NT_MODE_GSM_ONLY);
+                android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE, type);
+            } else {
+                // Weird state, disable the setting
+                Log.i(LOG_TAG, "get preferred network type, exception="+ar.exception);
+                setEnabled(false);
+            }
+        }
+
+        private void handleSetPreferredNetworkTypeResponse(Message msg) {
+            AsyncResult ar = (AsyncResult) msg.obj;
+
+            if (ar.exception != null) {
+                // Yikes, error, disable the setting
+                setEnabled(false);
+                // Set UI to current state
+                Log.i(LOG_TAG, "set preferred network type, exception=" + ar.exception);
+                mPhone.getPreferredNetworkType(obtainMessage(MESSAGE_GET_PREFERRED_NETWORK_TYPE));
+            } else {
+                Log.i(LOG_TAG, "set preferred network type done");
+            }
+        }
+    }
+}
diff --git a/src/com/android/phone/sip/SipEditor.java b/src/com/android/phone/sip/SipEditor.java
new file mode 100644
index 0000000..8145c94
--- /dev/null
+++ b/src/com/android/phone/sip/SipEditor.java
@@ -0,0 +1,657 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.sip;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.R;
+import com.android.phone.SipUtil;
+
+import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.net.sip.SipManager;
+import android.net.sip.SipProfile;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.preference.CheckBoxPreference;
+import android.preference.EditTextPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceGroup;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+/**
+ * The activity class for editing a new or existing SIP profile.
+ */
+public class SipEditor extends PreferenceActivity
+        implements Preference.OnPreferenceChangeListener {
+    private static final int MENU_SAVE = Menu.FIRST;
+    private static final int MENU_DISCARD = Menu.FIRST + 1;
+    private static final int MENU_REMOVE = Menu.FIRST + 2;
+
+    private static final String TAG = SipEditor.class.getSimpleName();
+    private static final String KEY_PROFILE = "profile";
+    private static final String GET_METHOD_PREFIX = "get";
+    private static final char SCRAMBLED = '*';
+    private static final int NA = 0;
+
+    private PrimaryAccountSelector mPrimaryAccountSelector;
+    private AdvancedSettings mAdvancedSettings;
+    private SipSharedPreferences mSharedPreferences;
+    private boolean mDisplayNameSet;
+    private boolean mHomeButtonClicked;
+    private boolean mUpdateRequired;
+    private boolean mUpdatedFieldIsEmpty;
+
+    private SipManager mSipManager;
+    private SipProfileDb mProfileDb;
+    private SipProfile mOldProfile;
+    private CallManager mCallManager;
+    private Button mRemoveButton;
+
+    enum PreferenceKey {
+        Username(R.string.username, 0, R.string.default_preference_summary),
+        Password(R.string.password, 0, R.string.default_preference_summary),
+        DomainAddress(R.string.domain_address, 0, R.string.default_preference_summary),
+        DisplayName(R.string.display_name, 0, R.string.display_name_summary),
+        ProxyAddress(R.string.proxy_address, 0, R.string.optional_summary),
+        Port(R.string.port, R.string.default_port, R.string.default_port),
+        Transport(R.string.transport, R.string.default_transport, NA),
+        SendKeepAlive(R.string.send_keepalive, R.string.sip_system_decide, NA),
+        AuthUserName(R.string.auth_username, 0, R.string.optional_summary);
+
+        final int text;
+        final int initValue;
+        final int defaultSummary;
+        Preference preference;
+
+        /**
+         * @param key The key name of the preference.
+         * @param initValue The initial value of the preference.
+         * @param defaultSummary The default summary value of the preference
+         *        when the preference value is empty.
+         */
+        PreferenceKey(int text, int initValue, int defaultSummary) {
+            this.text = text;
+            this.initValue = initValue;
+            this.defaultSummary = defaultSummary;
+        }
+
+        String getValue() {
+            if (preference instanceof EditTextPreference) {
+                return ((EditTextPreference) preference).getText();
+            } else if (preference instanceof ListPreference) {
+                return ((ListPreference) preference).getValue();
+            }
+            throw new RuntimeException("getValue() for the preference " + this);
+        }
+
+        void setValue(String value) {
+            if (preference instanceof EditTextPreference) {
+                String oldValue = getValue();
+                ((EditTextPreference) preference).setText(value);
+                if (this != Password) {
+                    Log.v(TAG, this + ": setValue() " + value + ": " + oldValue
+                            + " --> " + getValue());
+                }
+            } else if (preference instanceof ListPreference) {
+                ((ListPreference) preference).setValue(value);
+            }
+
+            if (TextUtils.isEmpty(value)) {
+                preference.setSummary(defaultSummary);
+            } else if (this == Password) {
+                preference.setSummary(scramble(value));
+            } else if ((this == DisplayName)
+                    && value.equals(getDefaultDisplayName())) {
+                preference.setSummary(defaultSummary);
+            } else {
+                preference.setSummary(value);
+            }
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mHomeButtonClicked = false;
+        if (mCallManager.getState() != PhoneConstants.State.IDLE) {
+            mAdvancedSettings.show();
+            getPreferenceScreen().setEnabled(false);
+            if (mRemoveButton != null) mRemoveButton.setEnabled(false);
+        } else {
+            getPreferenceScreen().setEnabled(true);
+            if (mRemoveButton != null) mRemoveButton.setEnabled(true);
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        Log.v(TAG, "start profile editor");
+        super.onCreate(savedInstanceState);
+
+        mSipManager = SipManager.newInstance(this);
+        mSharedPreferences = new SipSharedPreferences(this);
+        mProfileDb = new SipProfileDb(this);
+        mCallManager = CallManager.getInstance();
+
+        setContentView(R.layout.sip_settings_ui);
+        addPreferencesFromResource(R.xml.sip_edit);
+
+        SipProfile p = mOldProfile = (SipProfile) ((savedInstanceState == null)
+                ? getIntent().getParcelableExtra(SipSettings.KEY_SIP_PROFILE)
+                : savedInstanceState.getParcelable(KEY_PROFILE));
+
+        PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
+        for (int i = 0, n = screen.getPreferenceCount(); i < n; i++) {
+            setupPreference(screen.getPreference(i));
+        }
+
+        if (p == null) {
+            screen.setTitle(R.string.sip_edit_new_title);
+        }
+
+        mAdvancedSettings = new AdvancedSettings();
+        mPrimaryAccountSelector = new PrimaryAccountSelector(p);
+
+        loadPreferencesFromProfile(p);
+    }
+
+    @Override
+    public void onPause() {
+        Log.v(TAG, "SipEditor onPause(): finishing? " + isFinishing());
+        if (!isFinishing()) {
+            mHomeButtonClicked = true;
+            validateAndSetResult();
+        }
+        super.onPause();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        menu.add(0, MENU_DISCARD, 0, R.string.sip_menu_discard)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+        menu.add(0, MENU_SAVE, 0, R.string.sip_menu_save)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+        menu.add(0, MENU_REMOVE, 0, R.string.remove_sip_account)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        MenuItem removeMenu = menu.findItem(MENU_REMOVE);
+        removeMenu.setVisible(mOldProfile != null);
+        menu.findItem(MENU_SAVE).setEnabled(mUpdateRequired);
+        return super.onPrepareOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case MENU_SAVE:
+                validateAndSetResult();
+                return true;
+
+            case MENU_DISCARD:
+                finish();
+                return true;
+
+            case MENU_REMOVE: {
+                setRemovedProfileAndFinish();
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_BACK:
+                validateAndSetResult();
+                return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void saveAndRegisterProfile(SipProfile p) throws IOException {
+        if (p == null) return;
+        mProfileDb.saveProfile(p);
+        if (p.getAutoRegistration()
+                || mSharedPreferences.isPrimaryAccount(p.getUriString())) {
+            try {
+                mSipManager.open(p, SipUtil.createIncomingCallPendingIntent(),
+                        null);
+            } catch (Exception e) {
+                Log.e(TAG, "register failed: " + p.getUriString(), e);
+            }
+        }
+    }
+
+    private void deleteAndUnregisterProfile(SipProfile p) {
+        if (p == null) return;
+        mProfileDb.deleteProfile(p);
+        unregisterProfile(p.getUriString());
+    }
+
+    private void unregisterProfile(String uri) {
+        try {
+            mSipManager.close(uri);
+        } catch (Exception e) {
+            Log.e(TAG, "unregister failed: " + uri, e);
+        }
+    }
+
+    private void setRemovedProfileAndFinish() {
+        Intent intent = new Intent(this, SipSettings.class);
+        setResult(RESULT_FIRST_USER, intent);
+        Toast.makeText(this, R.string.removing_account, Toast.LENGTH_SHORT)
+                .show();
+        replaceProfile(mOldProfile, null);
+        // do finish() in replaceProfile() in a background thread
+    }
+
+    private void showAlert(Throwable e) {
+        String msg = e.getMessage();
+        if (TextUtils.isEmpty(msg)) msg = e.toString();
+        showAlert(msg);
+    }
+
+    private void showAlert(final String message) {
+        if (mHomeButtonClicked) {
+            Log.v(TAG, "Home button clicked, don't show dialog: " + message);
+            return;
+        }
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                new AlertDialog.Builder(SipEditor.this)
+                        .setTitle(android.R.string.dialog_alert_title)
+                        .setIconAttribute(android.R.attr.alertDialogIcon)
+                        .setMessage(message)
+                        .setPositiveButton(R.string.alert_dialog_ok, null)
+                        .show();
+            }
+        });
+    }
+
+    private boolean isEditTextEmpty(PreferenceKey key) {
+        EditTextPreference pref = (EditTextPreference) key.preference;
+        return TextUtils.isEmpty(pref.getText())
+                || pref.getSummary().equals(getString(key.defaultSummary));
+    }
+
+    private void validateAndSetResult() {
+        boolean allEmpty = true;
+        CharSequence firstEmptyFieldTitle = null;
+        for (PreferenceKey key : PreferenceKey.values()) {
+            Preference p = key.preference;
+            if (p instanceof EditTextPreference) {
+                EditTextPreference pref = (EditTextPreference) p;
+                boolean fieldEmpty = isEditTextEmpty(key);
+                if (allEmpty && !fieldEmpty) allEmpty = false;
+
+                // use default value if display name is empty
+                if (fieldEmpty) {
+                    switch (key) {
+                        case DisplayName:
+                            pref.setText(getDefaultDisplayName());
+                            break;
+                        case AuthUserName:
+                        case ProxyAddress:
+                            // optional; do nothing
+                            break;
+                        case Port:
+                            pref.setText(getString(R.string.default_port));
+                            break;
+                        default:
+                            if (firstEmptyFieldTitle == null) {
+                                firstEmptyFieldTitle = pref.getTitle();
+                            }
+                    }
+                } else if (key == PreferenceKey.Port) {
+                    int port = Integer.parseInt(PreferenceKey.Port.getValue());
+                    if ((port < 1000) || (port > 65534)) {
+                        showAlert(getString(R.string.not_a_valid_port));
+                        return;
+                    }
+                }
+            }
+        }
+
+        if (allEmpty || !mUpdateRequired) {
+            finish();
+            return;
+        } else if (firstEmptyFieldTitle != null) {
+            showAlert(getString(R.string.empty_alert, firstEmptyFieldTitle));
+            return;
+        }
+        try {
+            SipProfile profile = createSipProfile();
+            Intent intent = new Intent(this, SipSettings.class);
+            intent.putExtra(SipSettings.KEY_SIP_PROFILE, (Parcelable) profile);
+            setResult(RESULT_OK, intent);
+            Toast.makeText(this, R.string.saving_account, Toast.LENGTH_SHORT)
+                    .show();
+
+            replaceProfile(mOldProfile, profile);
+            // do finish() in replaceProfile() in a background thread
+        } catch (Exception e) {
+            Log.w(TAG, "Can not create new SipProfile", e);
+            showAlert(e);
+        }
+    }
+
+    private void unregisterOldPrimaryAccount() {
+        String primaryAccountUri = mSharedPreferences.getPrimaryAccount();
+        Log.v(TAG, "old primary: " + primaryAccountUri);
+        if ((primaryAccountUri != null)
+                && !mSharedPreferences.isReceivingCallsEnabled()) {
+            Log.v(TAG, "unregister old primary: " + primaryAccountUri);
+            unregisterProfile(primaryAccountUri);
+        }
+    }
+
+    private void replaceProfile(final SipProfile oldProfile,
+            final SipProfile newProfile) {
+        // Replace profile in a background thread as it takes time to access the
+        // storage; do finish() once everything goes fine.
+        // newProfile may be null if the old profile is to be deleted rather
+        // than being modified.
+        new Thread(new Runnable() {
+            public void run() {
+                try {
+                    // if new profile is primary, unregister the old primary account
+                    if ((newProfile != null) && mPrimaryAccountSelector.isSelected()) {
+                        unregisterOldPrimaryAccount();
+                    }
+
+                    mPrimaryAccountSelector.commit(newProfile);
+                    deleteAndUnregisterProfile(oldProfile);
+                    saveAndRegisterProfile(newProfile);
+                    finish();
+                } catch (Exception e) {
+                    Log.e(TAG, "Can not save/register new SipProfile", e);
+                    showAlert(e);
+                }
+            }
+        }, "SipEditor").start();
+    }
+
+    private String getProfileName() {
+        return PreferenceKey.Username.getValue() + "@"
+                + PreferenceKey.DomainAddress.getValue();
+    }
+
+    private SipProfile createSipProfile() throws Exception {
+            return new SipProfile.Builder(
+                    PreferenceKey.Username.getValue(),
+                    PreferenceKey.DomainAddress.getValue())
+                    .setProfileName(getProfileName())
+                    .setPassword(PreferenceKey.Password.getValue())
+                    .setOutboundProxy(PreferenceKey.ProxyAddress.getValue())
+                    .setProtocol(PreferenceKey.Transport.getValue())
+                    .setDisplayName(PreferenceKey.DisplayName.getValue())
+                    .setPort(Integer.parseInt(PreferenceKey.Port.getValue()))
+                    .setSendKeepAlive(isAlwaysSendKeepAlive())
+                    .setAutoRegistration(
+                            mSharedPreferences.isReceivingCallsEnabled())
+                    .setAuthUserName(PreferenceKey.AuthUserName.getValue())
+                    .build();
+    }
+
+    public boolean onPreferenceChange(Preference pref, Object newValue) {
+        if (!mUpdateRequired) {
+            mUpdateRequired = true;
+            if (mOldProfile != null) {
+                unregisterProfile(mOldProfile.getUriString());
+            }
+        }
+        if (pref instanceof CheckBoxPreference) {
+            invalidateOptionsMenu();
+            return true;
+        }
+        String value = (newValue == null) ? "" : newValue.toString();
+        if (TextUtils.isEmpty(value)) {
+            pref.setSummary(getPreferenceKey(pref).defaultSummary);
+        } else if (pref == PreferenceKey.Password.preference) {
+            pref.setSummary(scramble(value));
+        } else {
+            pref.setSummary(value);
+        }
+
+        if (pref == PreferenceKey.DisplayName.preference) {
+            ((EditTextPreference) pref).setText(value);
+            checkIfDisplayNameSet();
+        }
+
+        // SAVE menu should be enabled once the user modified some preference.
+        invalidateOptionsMenu();
+        return true;
+    }
+
+    private PreferenceKey getPreferenceKey(Preference pref) {
+        for (PreferenceKey key : PreferenceKey.values()) {
+            if (key.preference == pref) return key;
+        }
+        throw new RuntimeException("not possible to reach here");
+    }
+
+    private void loadPreferencesFromProfile(SipProfile p) {
+        if (p != null) {
+            Log.v(TAG, "Edit the existing profile : " + p.getProfileName());
+            try {
+                Class profileClass = SipProfile.class;
+                for (PreferenceKey key : PreferenceKey.values()) {
+                    Method meth = profileClass.getMethod(GET_METHOD_PREFIX
+                            + getString(key.text), (Class[])null);
+                    if (key == PreferenceKey.SendKeepAlive) {
+                        boolean value = ((Boolean)
+                                meth.invoke(p, (Object[]) null)).booleanValue();
+                        key.setValue(getString(value
+                                ? R.string.sip_always_send_keepalive
+                                : R.string.sip_system_decide));
+                    } else {
+                        Object value = meth.invoke(p, (Object[])null);
+                        key.setValue((value == null) ? "" : value.toString());
+                    }
+                }
+                checkIfDisplayNameSet();
+            } catch (Exception e) {
+                Log.e(TAG, "Can not load pref from profile", e);
+            }
+        } else {
+            Log.v(TAG, "Edit a new profile");
+            for (PreferenceKey key : PreferenceKey.values()) {
+                key.preference.setOnPreferenceChangeListener(this);
+
+                // FIXME: android:defaultValue in preference xml file doesn't
+                // work. Even if we setValue() for each preference in the case
+                // of (p != null), the dialog still shows android:defaultValue,
+                // not the value set by setValue(). This happens if
+                // android:defaultValue is not empty. Is it a bug?
+                if (key.initValue != 0) {
+                    key.setValue(getString(key.initValue));
+                }
+            }
+            mDisplayNameSet = false;
+        }
+    }
+
+    private boolean isAlwaysSendKeepAlive() {
+        ListPreference pref = (ListPreference)
+                PreferenceKey.SendKeepAlive.preference;
+        return getString(R.string.sip_always_send_keepalive).equals(
+                pref.getValue());
+    }
+
+    private void setCheckBox(PreferenceKey key, boolean checked) {
+        CheckBoxPreference pref = (CheckBoxPreference) key.preference;
+        pref.setChecked(checked);
+    }
+
+    private void setupPreference(Preference pref) {
+        pref.setOnPreferenceChangeListener(this);
+        for (PreferenceKey key : PreferenceKey.values()) {
+            String name = getString(key.text);
+            if (name.equals(pref.getKey())) {
+                key.preference = pref;
+                return;
+            }
+        }
+    }
+
+    private void checkIfDisplayNameSet() {
+        String displayName = PreferenceKey.DisplayName.getValue();
+        mDisplayNameSet = !TextUtils.isEmpty(displayName)
+                && !displayName.equals(getDefaultDisplayName());
+        Log.d(TAG, "displayName set? " + mDisplayNameSet);
+        if (mDisplayNameSet) {
+            PreferenceKey.DisplayName.preference.setSummary(displayName);
+        } else {
+            PreferenceKey.DisplayName.setValue("");
+        }
+    }
+
+    private static String getDefaultDisplayName() {
+        return PreferenceKey.Username.getValue();
+    }
+
+    private static String scramble(String s) {
+        char[] cc = new char[s.length()];
+        Arrays.fill(cc, SCRAMBLED);
+        return new String(cc);
+    }
+
+    // only takes care of the primary account setting in SipSharedSettings
+    private class PrimaryAccountSelector {
+        private CheckBoxPreference mCheckbox;
+        private final boolean mWasPrimaryAccount;
+
+        // @param profile profile to be edited; null if adding new profile
+        PrimaryAccountSelector(SipProfile profile) {
+            mCheckbox = (CheckBoxPreference) getPreferenceScreen()
+                    .findPreference(getString(R.string.set_primary));
+            boolean noPrimaryAccountSet =
+                    !mSharedPreferences.hasPrimaryAccount();
+            boolean editNewProfile = (profile == null);
+            mWasPrimaryAccount = !editNewProfile
+                    && mSharedPreferences.isPrimaryAccount(
+                            profile.getUriString());
+
+            Log.v(TAG, " noPrimaryAccountSet: " + noPrimaryAccountSet);
+            Log.v(TAG, " editNewProfile: " + editNewProfile);
+            Log.v(TAG, " mWasPrimaryAccount: " + mWasPrimaryAccount);
+
+            mCheckbox.setChecked(mWasPrimaryAccount
+                    || (editNewProfile && noPrimaryAccountSet));
+        }
+
+        boolean isSelected() {
+            return mCheckbox.isChecked();
+        }
+
+        // profile is null if the user removes it
+        void commit(SipProfile profile) {
+            if ((profile != null) && mCheckbox.isChecked()) {
+                mSharedPreferences.setPrimaryAccount(profile.getUriString());
+            } else if (mWasPrimaryAccount) {
+                mSharedPreferences.unsetPrimaryAccount();
+            }
+            Log.d(TAG, " primary account changed to : "
+                    + mSharedPreferences.getPrimaryAccount());
+        }
+    }
+
+    private class AdvancedSettings
+            implements Preference.OnPreferenceClickListener {
+        private Preference mAdvancedSettingsTrigger;
+        private Preference[] mPreferences;
+        private boolean mShowing = false;
+
+        AdvancedSettings() {
+            mAdvancedSettingsTrigger = getPreferenceScreen().findPreference(
+                    getString(R.string.advanced_settings));
+            mAdvancedSettingsTrigger.setOnPreferenceClickListener(this);
+
+            loadAdvancedPreferences();
+        }
+
+        private void loadAdvancedPreferences() {
+            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
+
+            addPreferencesFromResource(R.xml.sip_advanced_edit);
+            PreferenceGroup group = (PreferenceGroup) screen.findPreference(
+                    getString(R.string.advanced_settings_container));
+            screen.removePreference(group);
+
+            mPreferences = new Preference[group.getPreferenceCount()];
+            int order = screen.getPreferenceCount();
+            for (int i = 0, n = mPreferences.length; i < n; i++) {
+                Preference pref = group.getPreference(i);
+                pref.setOrder(order++);
+                setupPreference(pref);
+                mPreferences[i] = pref;
+            }
+        }
+
+        void show() {
+            mShowing = true;
+            mAdvancedSettingsTrigger.setSummary(R.string.advanced_settings_hide);
+            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
+            for (Preference pref : mPreferences) {
+                screen.addPreference(pref);
+                Log.v(TAG, "add pref " + pref.getKey() + ": order=" + pref.getOrder());
+            }
+        }
+
+        private void hide() {
+            mShowing = false;
+            mAdvancedSettingsTrigger.setSummary(R.string.advanced_settings_show);
+            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
+            for (Preference pref : mPreferences) {
+                screen.removePreference(pref);
+            }
+        }
+
+        public boolean onPreferenceClick(Preference preference) {
+            Log.v(TAG, "optional settings clicked");
+            if (!mShowing) {
+                show();
+            } else {
+                hide();
+            }
+            return true;
+        }
+    }
+}
diff --git a/src/com/android/phone/sip/SipProfileDb.java b/src/com/android/phone/sip/SipProfileDb.java
new file mode 100644
index 0000000..a51dfb9
--- /dev/null
+++ b/src/com/android/phone/sip/SipProfileDb.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.sip;
+
+import com.android.internal.os.AtomicFile;
+
+import android.content.Context;
+import android.net.sip.SipProfile;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Utility class that helps perform operations on the SipProfile database.
+ */
+public class SipProfileDb {
+    private static final String TAG = SipProfileDb.class.getSimpleName();
+
+    private static final String PROFILES_DIR = "/profiles/";
+    private static final String PROFILE_OBJ_FILE = ".pobj";
+
+    private String mProfilesDirectory;
+    private SipSharedPreferences mSipSharedPreferences;
+    private int mProfilesCount = -1;
+
+    public SipProfileDb(Context context) {
+        mProfilesDirectory = context.getFilesDir().getAbsolutePath()
+                + PROFILES_DIR;
+        mSipSharedPreferences = new SipSharedPreferences(context);
+    }
+
+    public void deleteProfile(SipProfile p) {
+        synchronized(SipProfileDb.class) {
+            deleteProfile(new File(mProfilesDirectory + p.getProfileName()));
+            if (mProfilesCount < 0) retrieveSipProfileListInternal();
+            mSipSharedPreferences.setProfilesCount(--mProfilesCount);
+        }
+    }
+
+    private void deleteProfile(File file) {
+        if (file.isDirectory()) {
+            for (File child : file.listFiles()) deleteProfile(child);
+        }
+        file.delete();
+    }
+
+    public void saveProfile(SipProfile p) throws IOException {
+        synchronized(SipProfileDb.class) {
+            if (mProfilesCount < 0) retrieveSipProfileListInternal();
+            File f = new File(mProfilesDirectory + p.getProfileName());
+            if (!f.exists()) f.mkdirs();
+            AtomicFile atomicFile =
+                    new AtomicFile(new File(f, PROFILE_OBJ_FILE));
+            FileOutputStream fos = null;
+            ObjectOutputStream oos = null;
+            try {
+                fos = atomicFile.startWrite();
+                oos = new ObjectOutputStream(fos);
+                oos.writeObject(p);
+                oos.flush();
+                mSipSharedPreferences.setProfilesCount(++mProfilesCount);
+                atomicFile.finishWrite(fos);
+            } catch (IOException e) {
+                atomicFile.failWrite(fos);
+                throw e;
+            } finally {
+                if (oos != null) oos.close();
+            }
+        }
+    }
+
+    public int getProfilesCount() {
+        return (mProfilesCount < 0) ?
+                mSipSharedPreferences.getProfilesCount() : mProfilesCount;
+    }
+
+    public List<SipProfile> retrieveSipProfileList() {
+        synchronized(SipProfileDb.class) {
+            return retrieveSipProfileListInternal();
+        }
+    }
+
+    private List<SipProfile> retrieveSipProfileListInternal() {
+        List<SipProfile> sipProfileList = Collections.synchronizedList(
+                new ArrayList<SipProfile>());
+
+        File root = new File(mProfilesDirectory);
+        String[] dirs = root.list();
+        if (dirs == null) return sipProfileList;
+        for (String dir : dirs) {
+            File f = new File(new File(root, dir), PROFILE_OBJ_FILE);
+            if (!f.exists()) continue;
+            try {
+                SipProfile p = deserialize(f);
+                if (p == null) continue;
+                if (!dir.equals(p.getProfileName())) continue;
+
+                sipProfileList.add(p);
+            } catch (IOException e) {
+                Log.e(TAG, "retrieveProfileListFromStorage()", e);
+            }
+        }
+        mProfilesCount = sipProfileList.size();
+        mSipSharedPreferences.setProfilesCount(mProfilesCount);
+        return sipProfileList;
+    }
+
+    private SipProfile deserialize(File profileObjectFile) throws IOException {
+        AtomicFile atomicFile = new AtomicFile(profileObjectFile);
+        ObjectInputStream ois = null;
+        try {
+            ois = new ObjectInputStream(atomicFile.openRead());
+            SipProfile p = (SipProfile) ois.readObject();
+            return p;
+        } catch (ClassNotFoundException e) {
+            Log.w(TAG, "deserialize a profile: " + e);
+        } finally {
+            if (ois!= null) ois.close();
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/phone/sip/SipSettings.java b/src/com/android/phone/sip/SipSettings.java
new file mode 100644
index 0000000..d58386c
--- /dev/null
+++ b/src/com/android/phone/sip/SipSettings.java
@@ -0,0 +1,514 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.sip;
+
+import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.CallFeaturesSetting;
+import com.android.phone.R;
+import com.android.phone.SipUtil;
+
+import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.net.sip.SipErrorCode;
+import android.net.sip.SipException;
+import android.net.sip.SipManager;
+import android.net.sip.SipProfile;
+import android.net.sip.SipRegistrationListener;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.os.Process;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceCategory;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The PreferenceActivity class for managing sip profile preferences.
+ */
+public class SipSettings extends PreferenceActivity {
+    public static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
+
+    private static final int MENU_ADD_ACCOUNT = Menu.FIRST;
+
+    static final String KEY_SIP_PROFILE = "sip_profile";
+
+    private static final String BUTTON_SIP_RECEIVE_CALLS =
+            "sip_receive_calls_key";
+    private static final String PREF_SIP_LIST = "sip_account_list";
+    private static final String TAG = "SipSettings";
+
+    private static final int REQUEST_ADD_OR_EDIT_SIP_PROFILE = 1;
+
+    private PackageManager mPackageManager;
+    private SipManager mSipManager;
+    private CallManager mCallManager;
+    private SipProfileDb mProfileDb;
+
+    private SipProfile mProfile; // profile that's being edited
+
+    private CheckBoxPreference mButtonSipReceiveCalls;
+    private PreferenceCategory mSipListContainer;
+    private Map<String, SipPreference> mSipPreferenceMap;
+    private List<SipProfile> mSipProfileList;
+    private SipSharedPreferences mSipSharedPreferences;
+    private int mUid = Process.myUid();
+
+    private class SipPreference extends Preference {
+        SipProfile mProfile;
+        SipPreference(Context c, SipProfile p) {
+            super(c);
+            setProfile(p);
+        }
+
+        SipProfile getProfile() {
+            return mProfile;
+        }
+
+        void setProfile(SipProfile p) {
+            mProfile = p;
+            setTitle(getProfileName(p));
+            updateSummary(mSipSharedPreferences.isReceivingCallsEnabled()
+                    ? getString(R.string.registration_status_checking_status)
+                    : getString(R.string.registration_status_not_receiving));
+        }
+
+        void updateSummary(String registrationStatus) {
+            int profileUid = mProfile.getCallingUid();
+            boolean isPrimary = mProfile.getUriString().equals(
+                    mSipSharedPreferences.getPrimaryAccount());
+            Log.v(TAG, "profile uid is " + profileUid + " isPrimary:"
+                    + isPrimary + " registration:" + registrationStatus
+                    + " Primary:" + mSipSharedPreferences.getPrimaryAccount()
+                    + " status:" + registrationStatus);
+            String summary = "";
+            if ((profileUid > 0) && (profileUid != mUid)) {
+                // from third party apps
+                summary = getString(R.string.third_party_account_summary,
+                        getPackageNameFromUid(profileUid));
+            } else if (isPrimary) {
+                summary = getString(R.string.primary_account_summary_with,
+                        registrationStatus);
+            } else {
+                summary = registrationStatus;
+            }
+            setSummary(summary);
+        }
+    }
+
+    private String getPackageNameFromUid(int uid) {
+        try {
+            String[] pkgs = mPackageManager.getPackagesForUid(uid);
+            ApplicationInfo ai =
+                    mPackageManager.getApplicationInfo(pkgs[0], 0);
+            return ai.loadLabel(mPackageManager).toString();
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(TAG, "cannot find name of uid " + uid, e);
+        }
+        return "uid:" + uid;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mSipManager = SipManager.newInstance(this);
+        mSipSharedPreferences = new SipSharedPreferences(this);
+        mProfileDb = new SipProfileDb(this);
+
+        mPackageManager = getPackageManager();
+        setContentView(R.layout.sip_settings_ui);
+        addPreferencesFromResource(R.xml.sip_setting);
+        mSipListContainer = (PreferenceCategory) findPreference(PREF_SIP_LIST);
+        registerForReceiveCallsCheckBox();
+        mCallManager = CallManager.getInstance();
+
+        updateProfilesStatus();
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        if (mCallManager.getState() != PhoneConstants.State.IDLE) {
+            mButtonSipReceiveCalls.setEnabled(false);
+        } else {
+            mButtonSipReceiveCalls.setEnabled(true);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        unregisterForContextMenu(getListView());
+    }
+
+    @Override
+    protected void onActivityResult(final int requestCode, final int resultCode,
+            final Intent intent) {
+        if (resultCode != RESULT_OK && resultCode != RESULT_FIRST_USER) return;
+        new Thread() {
+            @Override
+            public void run() {
+                try {
+                    if (mProfile != null) {
+                        Log.v(TAG, "Removed Profile:" + mProfile.getProfileName());
+                        deleteProfile(mProfile);
+                    }
+
+                    SipProfile profile = intent.getParcelableExtra(KEY_SIP_PROFILE);
+                    if (resultCode == RESULT_OK) {
+                        Log.v(TAG, "New Profile Name:" + profile.getProfileName());
+                        addProfile(profile);
+                    }
+                    updateProfilesStatus();
+                } catch (IOException e) {
+                    Log.v(TAG, "Can not handle the profile : " + e.getMessage());
+                }
+            }
+        }.start();
+    }
+
+    private void registerForReceiveCallsCheckBox() {
+        mButtonSipReceiveCalls = (CheckBoxPreference) findPreference
+                (BUTTON_SIP_RECEIVE_CALLS);
+        mButtonSipReceiveCalls.setChecked(
+                mSipSharedPreferences.isReceivingCallsEnabled());
+        mButtonSipReceiveCalls.setOnPreferenceClickListener(
+                new OnPreferenceClickListener() {
+                    public boolean onPreferenceClick(Preference preference) {
+                        final boolean enabled =
+                                ((CheckBoxPreference) preference).isChecked();
+                        new Thread(new Runnable() {
+                                public void run() {
+                                    handleSipReceiveCallsOption(enabled);
+                                }
+                        }).start();
+                        return true;
+                    }
+                });
+    }
+
+    private synchronized void handleSipReceiveCallsOption(boolean enabled) {
+        mSipSharedPreferences.setReceivingCallsEnabled(enabled);
+        List<SipProfile> sipProfileList = mProfileDb.retrieveSipProfileList();
+        for (SipProfile p : sipProfileList) {
+            String sipUri = p.getUriString();
+            p = updateAutoRegistrationFlag(p, enabled);
+            try {
+                if (enabled) {
+                    mSipManager.open(p,
+                            SipUtil.createIncomingCallPendingIntent(), null);
+                } else {
+                    mSipManager.close(sipUri);
+                    if (mSipSharedPreferences.isPrimaryAccount(sipUri)) {
+                        // re-open in order to make calls
+                        mSipManager.open(p);
+                    }
+                }
+            } catch (Exception e) {
+                Log.e(TAG, "register failed", e);
+            }
+        }
+        updateProfilesStatus();
+    }
+
+    private SipProfile updateAutoRegistrationFlag(
+            SipProfile p, boolean enabled) {
+        SipProfile newProfile = new SipProfile.Builder(p)
+                .setAutoRegistration(enabled)
+                .build();
+        try {
+            mProfileDb.deleteProfile(p);
+            mProfileDb.saveProfile(newProfile);
+        } catch (Exception e) {
+            Log.e(TAG, "updateAutoRegistrationFlag error", e);
+        }
+        return newProfile;
+    }
+
+    private void updateProfilesStatus() {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    retrieveSipLists();
+                } catch (Exception e) {
+                    Log.e(TAG, "isRegistered", e);
+                }
+            }
+        }).start();
+    }
+
+    private String getProfileName(SipProfile profile) {
+        String profileName = profile.getProfileName();
+        if (TextUtils.isEmpty(profileName)) {
+            profileName = profile.getUserName() + "@" + profile.getSipDomain();
+        }
+        return profileName;
+    }
+
+    private void retrieveSipLists() {
+        mSipPreferenceMap = new LinkedHashMap<String, SipPreference>();
+        mSipProfileList = mProfileDb.retrieveSipProfileList();
+        processActiveProfilesFromSipService();
+        Collections.sort(mSipProfileList, new Comparator<SipProfile>() {
+            @Override
+            public int compare(SipProfile p1, SipProfile p2) {
+                return getProfileName(p1).compareTo(getProfileName(p2));
+            }
+
+            public boolean equals(SipProfile p) {
+                // not used
+                return false;
+            }
+        });
+        mSipListContainer.removeAll();
+        for (SipProfile p : mSipProfileList) {
+            addPreferenceFor(p);
+        }
+
+        if (!mSipSharedPreferences.isReceivingCallsEnabled()) return;
+        for (SipProfile p : mSipProfileList) {
+            if (mUid == p.getCallingUid()) {
+                try {
+                    mSipManager.setRegistrationListener(
+                            p.getUriString(), createRegistrationListener());
+                } catch (SipException e) {
+                    Log.e(TAG, "cannot set registration listener", e);
+                }
+            }
+        }
+    }
+
+    private void processActiveProfilesFromSipService() {
+        SipProfile[] activeList = mSipManager.getListOfProfiles();
+        for (SipProfile activeProfile : activeList) {
+            SipProfile profile = getProfileFromList(activeProfile);
+            if (profile == null) {
+                mSipProfileList.add(activeProfile);
+            } else {
+                profile.setCallingUid(activeProfile.getCallingUid());
+            }
+        }
+    }
+
+    private SipProfile getProfileFromList(SipProfile activeProfile) {
+        for (SipProfile p : mSipProfileList) {
+            if (p.getUriString().equals(activeProfile.getUriString())) {
+                return p;
+            }
+        }
+        return null;
+    }
+
+    private void addPreferenceFor(SipProfile p) {
+        String status;
+        Log.v(TAG, "addPreferenceFor profile uri" + p.getUri());
+        SipPreference pref = new SipPreference(this, p);
+        mSipPreferenceMap.put(p.getUriString(), pref);
+        mSipListContainer.addPreference(pref);
+
+        pref.setOnPreferenceClickListener(
+                new Preference.OnPreferenceClickListener() {
+                    @Override
+                    public boolean onPreferenceClick(Preference pref) {
+                        handleProfileClick(((SipPreference) pref).mProfile);
+                        return true;
+                    }
+                });
+    }
+
+    private void handleProfileClick(final SipProfile profile) {
+        int uid = profile.getCallingUid();
+        if (uid == mUid || uid == 0) {
+            startSipEditor(profile);
+            return;
+        }
+        new AlertDialog.Builder(this)
+                .setTitle(R.string.alert_dialog_close)
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setPositiveButton(R.string.close_profile,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int w) {
+                                deleteProfile(profile);
+                                unregisterProfile(profile);
+                            }
+                        })
+                .setNegativeButton(android.R.string.cancel, null)
+                .show();
+    }
+
+    private void unregisterProfile(final SipProfile p) {
+        // run it on background thread for better UI response
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    mSipManager.close(p.getUriString());
+                } catch (Exception e) {
+                    Log.e(TAG, "unregister failed, SipService died?", e);
+                }
+            }
+        }, "unregisterProfile").start();
+    }
+
+    void deleteProfile(SipProfile p) {
+        mSipProfileList.remove(p);
+        SipPreference pref = mSipPreferenceMap.remove(p.getUriString());
+        mSipListContainer.removePreference(pref);
+    }
+
+    private void addProfile(SipProfile p) throws IOException {
+        try {
+            mSipManager.setRegistrationListener(p.getUriString(),
+                    createRegistrationListener());
+        } catch (Exception e) {
+            Log.e(TAG, "cannot set registration listener", e);
+        }
+        mSipProfileList.add(p);
+        addPreferenceFor(p);
+    }
+
+    private void startSipEditor(final SipProfile profile) {
+        mProfile = profile;
+        Intent intent = new Intent(this, SipEditor.class);
+        intent.putExtra(KEY_SIP_PROFILE, (Parcelable) profile);
+        startActivityForResult(intent, REQUEST_ADD_OR_EDIT_SIP_PROFILE);
+    }
+
+    private void showRegistrationMessage(final String profileUri,
+            final String message) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                SipPreference pref = mSipPreferenceMap.get(profileUri);
+                if (pref != null) {
+                    pref.updateSummary(message);
+                }
+            }
+        });
+    }
+
+    private SipRegistrationListener createRegistrationListener() {
+        return new SipRegistrationListener() {
+            @Override
+            public void onRegistrationDone(String profileUri, long expiryTime) {
+                showRegistrationMessage(profileUri, getString(
+                        R.string.registration_status_done));
+            }
+
+            @Override
+            public void onRegistering(String profileUri) {
+                showRegistrationMessage(profileUri, getString(
+                        R.string.registration_status_registering));
+            }
+
+            @Override
+            public void onRegistrationFailed(String profileUri, int errorCode,
+                    String message) {
+                switch (errorCode) {
+                    case SipErrorCode.IN_PROGRESS:
+                        showRegistrationMessage(profileUri, getString(
+                                R.string.registration_status_still_trying));
+                        break;
+                    case SipErrorCode.INVALID_CREDENTIALS:
+                        showRegistrationMessage(profileUri, getString(
+                                R.string.registration_status_invalid_credentials));
+                        break;
+                    case SipErrorCode.SERVER_UNREACHABLE:
+                        showRegistrationMessage(profileUri, getString(
+                                R.string.registration_status_server_unreachable));
+                        break;
+                    case SipErrorCode.DATA_CONNECTION_LOST:
+                        if (SipManager.isSipWifiOnly(getApplicationContext())){
+                            showRegistrationMessage(profileUri, getString(
+                                    R.string.registration_status_no_wifi_data));
+                        } else {
+                            showRegistrationMessage(profileUri, getString(
+                                    R.string.registration_status_no_data));
+                        }
+                        break;
+                    case SipErrorCode.CLIENT_ERROR:
+                        showRegistrationMessage(profileUri, getString(
+                                R.string.registration_status_not_running));
+                        break;
+                    default:
+                        showRegistrationMessage(profileUri, getString(
+                                R.string.registration_status_failed_try_later,
+                                message));
+                }
+            }
+        };
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        menu.add(0, MENU_ADD_ACCOUNT, 0, R.string.add_sip_account)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        menu.findItem(MENU_ADD_ACCOUNT).setEnabled(
+                mCallManager.getState() == PhoneConstants.State.IDLE);
+        return super.onPrepareOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        switch (itemId) {
+            case android.R.id.home: {
+                CallFeaturesSetting.goUpToTopLevelSetting(this);
+                return true;
+            }
+            case MENU_ADD_ACCOUNT: {
+                startSipEditor(null);
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/phone/sip/SipSharedPreferences.java b/src/com/android/phone/sip/SipSharedPreferences.java
new file mode 100644
index 0000000..e15db64
--- /dev/null
+++ b/src/com/android/phone/sip/SipSharedPreferences.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.sip;
+
+import com.android.phone.R;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+import android.text.TextUtils;
+import android.util.Log;
+
+/**
+ * Wrapper for SIP's shared preferences.
+ */
+public class SipSharedPreferences {
+    private static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
+    private static final String KEY_PRIMARY_ACCOUNT = "primary";
+    private static final String KEY_NUMBER_OF_PROFILES = "profiles";
+
+    private SharedPreferences mPreferences;
+    private Context mContext;
+
+    public SipSharedPreferences(Context context) {
+        mPreferences = context.getSharedPreferences(
+                SIP_SHARED_PREFERENCES, Context.MODE_WORLD_READABLE);
+        mContext = context;
+    }
+
+    public void setPrimaryAccount(String accountUri) {
+        SharedPreferences.Editor editor = mPreferences.edit();
+        editor.putString(KEY_PRIMARY_ACCOUNT, accountUri);
+        editor.apply();
+    }
+
+    public void unsetPrimaryAccount() {
+        setPrimaryAccount(null);
+    }
+
+    /** Returns the primary account URI or null if it does not exist. */
+    public String getPrimaryAccount() {
+        return mPreferences.getString(KEY_PRIMARY_ACCOUNT, null);
+    }
+
+    public boolean isPrimaryAccount(String accountUri) {
+        return accountUri.equals(
+                mPreferences.getString(KEY_PRIMARY_ACCOUNT, null));
+    }
+
+    public boolean hasPrimaryAccount() {
+        return !TextUtils.isEmpty(
+                mPreferences.getString(KEY_PRIMARY_ACCOUNT, null));
+    }
+
+    public void setProfilesCount(int number) {
+        SharedPreferences.Editor editor = mPreferences.edit();
+        editor.putInt(KEY_NUMBER_OF_PROFILES, number);
+        editor.apply();
+    }
+
+    public int getProfilesCount() {
+        return mPreferences.getInt(KEY_NUMBER_OF_PROFILES, 0);
+    }
+
+    public void setSipCallOption(String option) {
+        Settings.System.putString(mContext.getContentResolver(),
+                Settings.System.SIP_CALL_OPTIONS, option);
+    }
+
+    public String getSipCallOption() {
+        String option = Settings.System.getString(mContext.getContentResolver(),
+                Settings.System.SIP_CALL_OPTIONS);
+        return (option != null) ? option
+                                : mContext.getString(R.string.sip_address_only);
+    }
+
+    public void setReceivingCallsEnabled(boolean enabled) {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.SIP_RECEIVE_CALLS, (enabled ? 1 : 0));
+    }
+
+    public boolean isReceivingCallsEnabled() {
+        try {
+            return (Settings.System.getInt(mContext.getContentResolver(),
+                    Settings.System.SIP_RECEIVE_CALLS) != 0);
+        } catch (SettingNotFoundException e) {
+            Log.d("SIP", "ReceiveCall option is not set; use default value");
+            return false;
+        }
+    }
+
+    // TODO: back up to Android Backup
+}
diff --git a/tests/Android.mk b/tests/Android.mk
new file mode 100644
index 0000000..7356cb8
--- /dev/null
+++ b/tests/Android.mk
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+LOCAL_PACKAGE_NAME := TeleServiceTests
+LOCAL_CERTIFICATE := platform
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_INSTRUMENTATION_FOR := Phone
+
+include $(BUILD_PACKAGE)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
new file mode 100644
index 0000000..af3f7e4
--- /dev/null
+++ b/tests/AndroidManifest.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.phone.tests">
+
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
+
+    <application android:label="@string/app_name">
+        <uses-library android:name="android.test.runner" />
+
+        <!-- Miscellaneous phone app-related test activities -->
+
+        <!-- Test activity that mimics the behavior of 3rd party apps
+             firing off CALL and DIAL intents. -->
+        <!-- To run:
+                adb shell am start -n com.android.phone.tests/.CallDialTest
+        -->
+        <activity android:name="CallDialTest"
+                  android:label="@string/callDialTestLabel">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <!-- Test activity mimicking the PERFORM_CDMA_PROVISIONING behavior of
+             SetupWizard, useful for testing "non-interactive" OTASP. -->
+        <activity android:name="OtaspTestActivity"
+                  android:label="OtaspTest">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <service android:name="SendInstantTextTestService"
+                 android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE" >
+            <intent-filter>
+                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
+                <data android:scheme="sms" />
+                <data android:scheme="smsto" />
+            </intent-filter>
+        </service>
+    </application>
+
+    <!--
+        The prefered way is to use 'runtest':
+           runtest phone-unit
+
+         runtest is a wrapper around 'adb shell'. The low level shell command is:
+           adb shell am instrument -w com.android.phone.tests/android.test.InstrumentationTestRunner
+
+         To run a single test case:
+           adb shell am instrument -w com.android.phone.tests/android.test.InstrumentationTestRunner
+                                   -e com.android.phone.unit.FooUnitTest
+    -->
+    <instrumentation android:name="android.test.InstrumentationTestRunner"
+        android:targetPackage="com.android.phone"
+        android:label="Phone application tests." />
+</manifest>
diff --git a/tests/res/layout/call_dial_test.xml b/tests/res/layout/call_dial_test.xml
new file mode 100644
index 0000000..dd9af39
--- /dev/null
+++ b/tests/res/layout/call_dial_test.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<!-- Ultra-simple test activity for testing CALL and DIAL intents. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center_vertical|center_horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingTop="64dip"
+    >
+
+    <TextView android:id="@+id/label1"
+              android:text="@string/callDialTestLabel"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_marginTop="30dip"
+              android:textAppearance="?android:attr/textAppearanceLarge"
+              />
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="1" />
+
+    <!-- Phone number (or potentially a SIP address) to be used -->
+    <EditText android:id="@+id/number"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:paddingLeft="32dip"
+              android:paddingRight="32dip"
+              android:paddingTop="32dip"
+              android:paddingBottom="32dip"
+              android:textAppearance="?android:attr/textAppearanceLarge" />
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="2" />
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        >
+        <Button android:id="@+id/callButton"
+            android:text="@string/callCommand"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dip"
+            android:layout_marginRight="20dip"
+            android:paddingLeft="32dip"
+            android:paddingRight="32dip"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            />
+        <Button android:id="@+id/dialButton"
+            android:text="@string/dialCommand"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dip"
+            android:layout_marginRight="20dip"
+            android:paddingLeft="32dip"
+            android:paddingRight="32dip"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            />
+    </LinearLayout>
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="2" />
+
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        >
+        <Button android:id="@+id/itelephonyCallButton"
+            android:text="@string/itelephonyCallCommand"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dip"
+            android:layout_marginRight="20dip"
+            android:paddingLeft="32dip"
+            android:paddingRight="32dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            />
+        <Button android:id="@+id/itelephonyDialButton"
+            android:text="@string/itelephonyDialCommand"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dip"
+            android:layout_marginRight="20dip"
+            android:paddingLeft="32dip"
+            android:paddingRight="32dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            />
+    </LinearLayout>
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="4" />
+
+</LinearLayout>
diff --git a/tests/res/layout/otasp_test_activity.xml b/tests/res/layout/otasp_test_activity.xml
new file mode 100644
index 0000000..371a6d4
--- /dev/null
+++ b/tests/res/layout/otasp_test_activity.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<!-- Ultra-simple test activity for triggering an OTASP call. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center_vertical|center_horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingTop="64dip"
+    >
+
+    <TextView android:id="@+id/label1"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_marginTop="30dip"
+              android:textAppearance="?android:attr/textAppearanceLarge"
+              />
+
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="1" />
+
+    <ProgressBar android:id="@+id/progress_bar"
+              style="?android:attr/progressBarStyleHorizontal"
+              android:layout_width="240dip"
+              android:layout_height="wrap_content"
+              android:indeterminate="true"
+              android:visibility="invisible" />
+
+    <TextView android:id="@+id/result1"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:textAppearance="?android:attr/textAppearanceLarge"
+              android:visibility="invisible" />
+
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="1" />
+
+    <Button android:id="@+id/button1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dip"
+            android:layout_marginBottom="10dip"
+            android:paddingLeft="32dip"
+            android:paddingRight="32dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            />
+
+    <View android:layout_width="1dip"
+          android:layout_height="1dip"
+          android:layout_weight="1" />
+
+</LinearLayout>
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..d883518
--- /dev/null
+++ b/tests/res/values/donottranslate_strings.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<resources>
+    <!-- Application label -->
+    <string name="app_name">PhoneAppTests</string>
+
+    <!-- Strings for the CallDialTest activity -->
+    <string name="callDialTestLabel">CALL/DIAL test</string>
+    <string name="callCommand">CALL</string>
+    <string name="dialCommand">DIAL</string>
+    <string name="itelephonyCallCommand">ITelephony.call()</string>
+    <string name="itelephonyDialCommand">ITelephony.dial()</string>
+
+    <string name="instant_text_back_content">message: %s, Uri: %s, </string>
+</resources>
diff --git a/tests/src/com/android/phone/tests/CallDialTest.java b/tests/src/com/android/phone/tests/CallDialTest.java
new file mode 100644
index 0000000..5ea80d1
--- /dev/null
+++ b/tests/src/com/android/phone/tests/CallDialTest.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.tests;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.internal.telephony.ITelephony;
+import com.android.phone.Constants;
+
+/**
+ * Test activity that mimics the behavior of 3rd party apps firing off
+ * CALL and DIAL intents.
+ */
+public class CallDialTest extends Activity implements View.OnClickListener {
+    private static final String LOG_TAG = "CallDialTest";
+
+    // UI elements
+    private TextView mLabel;
+    private EditText mNumber;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Intent intent = getIntent();
+        log("onCreate: intent = " + intent);
+
+        // Construct our basic UI:
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.call_dial_test);
+
+        mLabel = (TextView) findViewById(R.id.label1);
+
+        mNumber = (EditText) findViewById(R.id.number);
+        mNumber.setText("6505551234");  // Preload it with something useful
+
+        ((Button) findViewById(R.id.callButton)).setOnClickListener(this);
+        ((Button) findViewById(R.id.dialButton)).setOnClickListener(this);
+        ((Button) findViewById(R.id.itelephonyCallButton)).setOnClickListener(this);
+        ((Button) findViewById(R.id.itelephonyDialButton)).setOnClickListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        log("onResume()...");
+        super.onResume();
+    }
+
+    @Override
+    protected void onPause() {
+        log("onPause()...");
+        super.onPause();
+    }
+
+    // View.OnClickListener implementation
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        log("onClick(View " + view + ", id " + id + ")...");
+
+        switch (id) {
+            case R.id.callButton:
+                log("onClick: CALL...");
+                fireIntent(Intent.ACTION_CALL);
+                break;
+            case R.id.dialButton:
+                log("onClick: DIAL...");
+                fireIntent(Intent.ACTION_DIAL);
+                break;
+            case R.id.itelephonyCallButton:
+                log("onClick: ITelephony.call()...");
+                doITelephonyCall();
+                break;
+            case R.id.itelephonyDialButton:
+                log("onClick: ITelephony.dial()...");
+                doITelephonyDial();
+                break;
+            default:
+                Log.wtf(LOG_TAG, "onClick: unexpected View: " + view);
+                break;
+        }
+    }
+
+    private void fireIntent(String action) {
+        log("fireIntent(action = '" + action + "')...");
+
+        // Get a phone number or SIP address from the EditText widget
+        String number = mNumber.getText().toString();
+        log("==> number: '" + number + "'");
+
+        // Based on the number, fire off a CALL or DIAL intent:
+        // - if it's a fully qualified URI (with scheme), use it directly
+        // - if it looks like a SIP address, prepend sip:
+        // - if it's just a number, prepend tel: automatically
+        // - if it's blank, fire off a blank CALL or DIAL intent
+
+        Uri uri = null;
+        if (!TextUtils.isEmpty(number)) {
+            if (number.contains(":")) {
+                uri = Uri.parse(number);
+            } else if (PhoneNumberUtils.isUriNumber(number)) {
+                uri = Uri.fromParts(Constants.SCHEME_SIP, number, null);
+            } else {
+                uri = Uri.fromParts(Constants.SCHEME_TEL, number, null);
+            }
+        }
+        log("==> uri: " + uri);
+
+        Intent intent = new Intent(action, uri);
+        log("==> intent: " + intent);
+
+        try {
+            startActivity(intent);
+            Toast.makeText(this, "Starting activity...", Toast.LENGTH_SHORT).show();
+        } catch (ActivityNotFoundException e) {
+            Log.w(LOG_TAG, "testCall: ActivityNotFoundException for intent: " + intent);
+            Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
+        } catch (Exception e) {
+            Log.w(LOG_TAG, "testCall: Unexpected exception from startActivity(): " + e);
+            Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
+        }
+    }
+
+    private void doITelephonyCall() {
+        log("doITelephonyCall()...");
+
+        // Get a phone number from the EditText widget
+        String number = mNumber.getText().toString();
+        log("==> number: '" + number + "'");
+
+        try {
+            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            log("- phone: " + phone);
+            log("- calling call()...");
+            phone.call(getPackageName(), number);
+            log("  Done.");
+        } catch (RemoteException ex) {
+            Log.w(LOG_TAG, "RemoteException!", ex);
+        }
+    }
+
+    private void doITelephonyDial() {
+        log("doITelephonyDial()...");
+
+        // Get a phone number from the EditText widget
+        String number = mNumber.getText().toString();
+        log("==> number: '" + number + "'");
+
+        try {
+            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            log("- phone: " + phone);
+            log("- calling dial()...");
+            phone.dial(number);
+            log("  Done.");
+        } catch (RemoteException ex) {
+            Log.w(LOG_TAG, "RemoteException!", ex);
+        }
+    }
+
+    private void log(String msg) {
+        Log.i(LOG_TAG, msg);
+    }
+}
diff --git a/tests/src/com/android/phone/tests/OtaspTestActivity.java b/tests/src/com/android/phone/tests/OtaspTestActivity.java
new file mode 100644
index 0000000..ead86c3
--- /dev/null
+++ b/tests/src/com/android/phone/tests/OtaspTestActivity.java
@@ -0,0 +1,267 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+package com.android.phone.tests;
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import com.android.phone.OtaUtils;
+
+/**
+ * Test activity that mimics the PERFORM_CDMA_PROVISIONING behavior of
+ * SetupWizard, useful for testing "non-interactive" OTASP.
+ * @see OtaUtils.startNonInteractiveOtasp
+ *
+ */
+public class OtaspTestActivity extends Activity implements View.OnClickListener {
+    private static final String LOG_TAG = "OtaspTestActivity";
+
+    // Request code used with startActivityForResult()
+    private static final int PERFORM_CDMA_PROVISIONING_REQUEST_CODE = 1;
+
+    // UI elements
+    private TextView mLabel;
+    private ProgressBar mProgressBar;
+    private TextView mResult;
+    private Button mButton;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Intent intent = getIntent();
+        Log.i(LOG_TAG, "##### onCreate: intent = " + intent);
+        Bundle extras = intent.getExtras();
+        if (extras != null) {
+            Log.i(LOG_TAG, "      - has extras: size = " + extras.size()); // forces an unparcel()
+            Log.i(LOG_TAG, "      - extras = " + extras);
+        }
+
+        // Construct our basic UI:
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.otasp_test_activity);
+
+        mLabel = (TextView) findViewById(R.id.label1);
+        mLabel.setText("OTA Test Activity");
+
+        mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
+        mResult = (TextView) findViewById(R.id.result1);
+
+        mButton = (Button) findViewById(R.id.button1);
+        mButton.setText("Make test call");
+        mButton.setOnClickListener(this);
+
+
+        // We can be launched either:
+        //
+        // (1) Directly from the launcher, in which case the current intent
+        //     will simply be an ACTION_MAIN intent
+        //
+        // (2) Via the PendingIntent that we sent along (when we originally
+        //     fired off the ACTION_PERFORM_CDMA_PROVISIONING intent) that
+        //     allows the phone app to send us back a result code.
+        //     We can identify this case by the presence of the
+        //     EXTRA_OTASP_RESULT_CODE extra.
+
+        if (intent.hasExtra(OtaUtils.EXTRA_OTASP_RESULT_CODE)) {
+            // Got a result from the OTASP call!
+            Log.i(LOG_TAG, "==> onCreate: got a result from the OTASP call!");
+
+            int resultCode = intent.getIntExtra(OtaUtils.EXTRA_OTASP_RESULT_CODE,
+                                                OtaUtils.OTASP_UNKNOWN);
+            Log.i(LOG_TAG, "    - resultCode = " + resultCode);
+
+            String resultString;
+            switch (resultCode) {
+                case OtaUtils.OTASP_USER_SKIPPED:
+                    resultString = "User skipped!";
+                    break;
+                case OtaUtils.OTASP_SUCCESS:
+                    resultString = "Success!";
+                    break;
+                case OtaUtils.OTASP_FAILURE:
+                    resultString = "FAILURE";
+                    break;
+                default:
+                    resultString = "Unexpected code: " + resultCode;
+                    break;
+            }
+            Log.i(LOG_TAG, "    - result: " + resultString);
+            mResult.setText(resultString);
+            mResult.setVisibility(View.VISIBLE);
+            mProgressBar.setVisibility(View.INVISIBLE);
+
+        } else {
+            // We must have gotten here directly from the launcher.
+            // Leave the UI in its initial state.
+            Log.i(LOG_TAG, "==> onCreate: entered from the launcher.");
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        Log.i(LOG_TAG, "onNewIntent: intent=" + intent);
+        Bundle extras = intent.getExtras();
+        if (extras != null) Log.i(LOG_TAG, "      - intent extras = " + extras);
+
+        // This method isn't actually used since this test activity is not
+        // launched in "singleTop" mode.
+
+        // Activities that *are* launched in singleTop mode, like the SetupWizard,
+        // would have to handle the various PendingIntents here just like
+        // we do above in onCreate().
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        Log.i(LOG_TAG, "onActivityResult: request " + requestCode
+              + " result " + resultCode + " data " + data);
+
+        // Note we receive this call immediately before onResume(), when
+        // we get re-started after launching the PERFORM_CDMA_PROVISIONING
+        // intent.
+
+        if (requestCode == PERFORM_CDMA_PROVISIONING_REQUEST_CODE) {
+            // The InCallScreenShowActivation activity can set the following
+            // result codes:
+            //
+            //   RESULT_INTERACTIVE_OTASP_STARTED
+            //   RESULT_NONINTERACTIVE_OTASP_STARTED
+            //   RESULT_NONINTERACTIVE_OTASP_FAILED
+            //
+            // but note that in practice we won't ever *get* the
+            // RESULT_INTERACTIVE_OTASP_STARTED result code, since the
+            // "interactive" OTASP sequence never actually finish()es;
+            // it ends by directly launching the Home activity.
+            //
+            // However, in non-interactive OTASP, the
+            // InCallScreenShowActivation activity will set one of the
+            // RESULT_NONINTERACTIVE_* codes and immediately
+            // finish(), so we *will* see that result here.
+            //
+            // Also, resultCode will be RESULT_CANCELED (= 0) if the
+            // InCallScreenShowActivation activity didn't return any
+            // result, or crashed.
+
+            switch (resultCode) {
+                case OtaUtils.RESULT_INTERACTIVE_OTASP_STARTED:
+                    Log.i(LOG_TAG, "==> onActivityResult: INTERACTIVE_OTASP_STARTED");
+                    break;
+                case OtaUtils.RESULT_NONINTERACTIVE_OTASP_STARTED:
+                    Log.i(LOG_TAG, "==> onActivityResult: NONINTERACTIVE_OTASP_STARTED");
+                    break;
+                case OtaUtils.RESULT_NONINTERACTIVE_OTASP_FAILED:
+                    Log.w(LOG_TAG, "==> onActivityResult: NONINTERACTIVE_OTASP_FAILED");
+                    // This means we couldn't even *initiate* an outgoing call
+                    // to start the OTASP process.  Not sure what could cause this.
+                    // TODO: Update UI to indicate the error.
+                    break;
+                case RESULT_CANCELED:
+                    Log.i(LOG_TAG, "==> onActivityResult: CANCELED");
+                    break;
+                default:
+                    Log.i(LOG_TAG, "==> onActivityResult: unknown result: " + resultCode);
+                    break;
+            }
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        Log.i(LOG_TAG, "onResume()...");
+        super.onResume();
+    }
+
+    @Override
+    protected void onPause() {
+        Log.i(LOG_TAG, "onPause()...");
+        super.onPause();
+    }
+
+    // View.OnClickListener implementation
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        Log.i(LOG_TAG, "onClick(View " + view + ", id " + id + ")...");
+
+        switch (id) {
+            case R.id.button1:
+                Log.i(LOG_TAG, "onClick: button1...");
+                makeTestCall();
+                break;
+            default:
+                Log.w(LOG_TAG, "onClick: unexpected View: " + view);
+                break;
+        }
+    }
+
+    private void makeTestCall() {
+        Log.i(LOG_TAG, "##### makeTestCall()...");
+
+        mProgressBar.setVisibility(View.VISIBLE);
+        mResult.setVisibility(View.INVISIBLE);
+
+        try {
+            Intent performProvisioningIntent =
+                    new Intent(OtaUtils.ACTION_PERFORM_CDMA_PROVISIONING);
+
+            // Set the magic extra to force "non-interactive mode" for the
+            // OTASP call.
+            performProvisioningIntent.putExtra(OtaUtils.EXTRA_OVERRIDE_INTERACTIVE_MODE, false);
+
+            // Pass a PendingIntent along with the
+            // ACTION_PERFORM_CDMA_PROVISIONING intent, which allows
+            // results to be sent back to us.
+            Intent resultIntent = new Intent(this, this.getClass());
+            PendingIntent pendingResultIntent =
+                    PendingIntent.getActivity(this, 0,
+                                              resultIntent, 0);
+            performProvisioningIntent.putExtra(OtaUtils.EXTRA_OTASP_RESULT_CODE_PENDING_INTENT,
+                                               pendingResultIntent);
+
+            Log.i(LOG_TAG, "- Firing off PERFORM_CDMA_PROVISIONING intent: "
+                  + performProvisioningIntent);
+            Bundle extras = performProvisioningIntent.getExtras();
+            if (extras != null) Log.i(LOG_TAG, "      - intent extras = " + extras);
+
+            // Originally, we would simply call
+            //     startActivity(performProvisioningIntent);
+            // to launch the InCallScreenShowActivation activity and *not* expect
+            // a result.  (Note that calling the plain startActivity()
+            // method *guarantees* that your onActivityResult() method
+            // will NOT be called at all.)
+
+            // Now, we ask for a result:
+            startActivityForResult(performProvisioningIntent,
+                                   PERFORM_CDMA_PROVISIONING_REQUEST_CODE);
+
+            // On a non-voice-capable device, the InCallScreenShowActivation activity
+            // will kick off the OTASP call and immediately return, passing
+            // the code RESULT_STARTED_NONINTERACTIVE_OTASP to our
+            // onActivityResult method.
+
+        } catch (ActivityNotFoundException e) {
+            Log.w(LOG_TAG, "Couldn't show activiation UI; ActivityNotFoundException: " + e);
+        }
+    }
+}
diff --git a/tests/src/com/android/phone/tests/SendInstantTextTestService.java b/tests/src/com/android/phone/tests/SendInstantTextTestService.java
new file mode 100644
index 0000000..c7ad2f7
--- /dev/null
+++ b/tests/src/com/android/phone/tests/SendInstantTextTestService.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.phone.tests;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.widget.Toast;
+
+/**
+ * Service which receives instant text responses from in-call UI and shows the message using
+ * {@link Toast}.
+ */
+public class SendInstantTextTestService extends IntentService {
+    private static final String TAG = SendInstantTextTestService.class.getSimpleName();
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            showMessageWithToast((Intent) msg.obj);
+        }
+    };
+
+    public SendInstantTextTestService() {
+        super("send_instant_text_test_service");
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        String action = intent.getAction();
+        Uri uri = intent.getData();
+        String message = intent.getStringExtra(Intent.EXTRA_TEXT);
+        Log.i(TAG, "Received instant response message. action=" + action
+                + ", uri=" + uri + ", message=\"" + message + "\"");
+        // Phone app uses Toast to show confirmation, which overlaps with this message.
+        // Let's delay showing this one for 5sec.
+        mHandler.sendMessageDelayed(Message.obtain(mHandler, 0, intent), 5 * 1000);
+    }
+
+    private void showMessageWithToast(Intent intent) {
+        Uri uri = intent.getData();
+        String message = intent.getStringExtra(Intent.EXTRA_TEXT);
+        String toastText = getString(R.string.instant_text_back_content, message, uri.toString());
+        Toast.makeText(this, toastText, Toast.LENGTH_LONG).show();
+    }
+}
\ No newline at end of file
diff --git a/tests/src/com/android/phone/unit/CnapTest.java b/tests/src/com/android/phone/unit/CnapTest.java
new file mode 100644
index 0000000..7161ba8
--- /dev/null
+++ b/tests/src/com/android/phone/unit/CnapTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+
+// Need to be in this package to access package methods.
+package com.android.phone;
+import android.content.Context;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+import com.android.internal.telephony.CallerInfo;
+import com.android.phone.PhoneUtils;
+import static com.android.internal.telephony.PhoneConstants.PRESENTATION_ALLOWED;
+import static com.android.internal.telephony.PhoneConstants.PRESENTATION_PAYPHONE;
+import static com.android.internal.telephony.PhoneConstants.PRESENTATION_RESTRICTED;
+import static com.android.internal.telephony.PhoneConstants.PRESENTATION_UNKNOWN;
+
+// Test suite for the Caller Name Presentation (CNAP) handling.
+// See AndroidManifest.xml how to run these tests.
+public class CnapTest extends AndroidTestCase {
+    private static final String TAG = "CnapTest";
+    private Context mContext;
+    private CallerInfo mCallerInfo;
+    // TODO: This string should be loaded from the phone package and
+    // not hardcoded.
+    private String mUnknown = "Unknown";
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mContext = getContext();
+        mCallerInfo = new CallerInfo();
+    }
+
+    // Checks the cnap 'ABSENT NUMBER' is mapped to the unknown presentation.
+    @SmallTest
+    public void testAbsentNumberIsMappedToUnknown() throws Exception {
+        String num = modifyForSpecialCnapCases("ABSENT NUMBER", PRESENTATION_ALLOWED);
+        assertIsUnknown(num);
+    }
+
+    // HELPERS
+
+    /**
+     * Checks the number and CallerInfo structure indicate the number
+     * is unknown.
+     */
+    private void assertIsUnknown(String number) {
+        assertEquals(mUnknown, number);
+        assertEquals(PRESENTATION_UNKNOWN, mCallerInfo.numberPresentation);
+        // TODO: cnapName and name presentation should be set to
+        // unknown. At least I cannot see why it shouldn't be the case
+        // assertEquals(mUnknown, mCallerInfo.cnapName);
+        // assertEquals(PRESENTATION_UNKNOWN, mCallerInfo.namePresentation);
+    }
+
+    /**
+     * Shorthand for PhoneUtils.modifyForSpecialCnapCases(mContext, mCallerInfo, ...)
+     */
+    private String modifyForSpecialCnapCases(String number, int presentation) {
+        return PhoneUtils.modifyForSpecialCnapCases(
+            mContext, mCallerInfo, number, presentation);
+    }
+}
